initial deployment v1.0
This commit is contained in:
124
README.md
Normal file
124
README.md
Normal file
@@ -0,0 +1,124 @@
|
||||
# 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
|
||||
## 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
|
||||
```sh
|
||||
npm install
|
||||
```
|
||||
### Run Development Server
|
||||
|
||||
```sh
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Then open your browser to:
|
||||
http://localhost:5173
|
||||
|
||||
## Build for Production
|
||||
```sh
|
||||
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
|
||||
Reference in New Issue
Block a user