RaineAllDay f28b8f06c6
Some checks failed
Deploy / Check & Build (push) Successful in 1m28s
Deploy / Deploy to Production (push) Has been cancelled
again... fixing deployment actions
2026-03-18 04:55:29 -06:00
2026-03-18 04:22:42 -06:00
2026-03-18 04:22:42 -06:00
2026-03-18 03:06:27 -06:00
2026-03-18 03:06:27 -06:00
2026-03-18 03:06:27 -06:00
2026-03-18 03:06:27 -06:00
2026-03-18 03:06:27 -06:00
2026-03-18 03:06:27 -06:00
2026-03-18 03:06:27 -06:00
2026-03-18 03:06:27 -06:00
2026-03-18 03:06:27 -06:00
2026-03-18 03:06:27 -06:00
2026-03-18 03:06:27 -06:00
2026-03-18 03:06:27 -06:00

ETC PRS Viewer & Editor (Web-Based)

A modern, web-based viewer and editor for ETC Expression .prs personality files. This tool allows you to inspect, modify, and export fixture personalities using an intuitive UI with support for 16-bit channel pairing, drag-and-drop reordering, and local file history.

🚀 Application Functionality

Core Features

  • Open & View PRS Files
    • Load .prs files directly from your system
    • Clean visual layout with card or table views
    • Accurate parsing based on reverse-engineered binary structure
  • Edit Personalities
    • Modify channel attributes, flags, and home values
    • Support for:
      • Independent
      • LTP
      • 16-bit
      • Flipped
    • 16-bit channels are represented as a single unified card
  • 16-bit Channel Handling
    • Proper pairing based on actual binary flags (no heuristics)
    • Editing applies correctly across paired channels
    • Home/display values follow ETCs storage behavior (stored in second channel)
  • Drag-and-Drop Reordering
    • Reorder channels using a dedicated drag handle
    • 16-bit pairs move together as a single unit
    • Prevents accidental dragging while editing inputs
  • Export PRS Files
    • Export valid .prs files from both:
      • Viewer page
      • Editor page
    • Output matches ETC Personality Editor structure

UI Features

  • Global Menu Bar
    • Open PRS File (auto-load on selection)
    • Create New PRS File
    • Previously Opened Files
    • Snapshot Versions
  • Secondary Control Bar (Contextual)
    • Viewer:
      • Switch to Editor
      • Toggle Card/Table view
      • Export PRS
    • Editor:
      • Add Channel
      • Save Snapshot
      • Export PRS
      • Exit Editor
      • Toggle Card/Table view
  • View Modes
    • Card-based layout for intuitive editing
    • Table view for compact overview

Data Persistence

Uses browser localStorage for: Recently opened files

  • Snapshot history
  • No backend required

🛠️ How to Run the Program

Requirements:

  • Node.js (v18+ recommended)
  • npm

Setup

Install dependencies

npm install

Run Development Server

npm run dev

Then open your browser to: http://localhost:5173

Build for Production

npm run build
npm run preview

⚠️ Ethical Disclosure

This project includes the use of AI-assisted development and reverse engineering techniques.

AI Usage

Portions of this application—including:

  • UI implementation
  • Data handling logic
  • Iterative refinement of features

were developed with the assistance of an AI system (ChatGPT). All outputs were reviewed, tested, and refined by a human developer before inclusion.

Reverse Engineering

The .prs file format used by ETC Expression lighting consoles is not publicly documented in full detail. To support this application:

  • The file format was analyzed through:
    • Inspection of real .prs files
    • Behavioral comparison with ETCs Personality Editor
    • Static analysis of the Personality Editor executable
  • No proprietary source code was accessed or used.
  • The reverse engineering was limited to understanding file structure for interoperability.

Intent

This project is intended for:

  • Educational purposes
  • Interoperability and tooling
  • Supporting legacy systems

It is not affiliated with or endorsed by ETC (Electronic Theatre Controls).

📌 Notes

  • All file handling is local to your machine/browser
  • No data is transmitted externally
  • The application is designed to faithfully replicate ETC behavior where possible
Description
No description provided
Readme 249 KiB
Languages
Svelte 61.1%
JavaScript 24.4%
Shell 12.4%
CSS 1.9%
HTML 0.2%