3.5 KiB
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 ETC’s 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
- Export valid .prs files from both:
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
- Viewer:
- 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 ETC’s 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