Display the form of a piece of music by highlighting and labeling various regions. Assign colors and text to each region to show differences and similarities.
- Node.js (tested with 23.x)
- Python 3 (3.10+ recommended)
- Run the first-time setup script:
npm run first-run
- Run the app:
npm start
If you're on Windows, you can run:
powershell -ExecutionPolicy Bypass -File scripts/first-run.ps1
- Install Node dependencies:
npm install
- Create a Python virtual environment and install Python deps:
python3 -m venv venv
./venv/bin/pip install -r requirements.txt
- Run the app:
npm start
Windows manual install:
python -m venv venv
.\venv\Scripts\pip install -r requirements.txt
- The app starts a local Flask server on port 5001 by default.
- You can override the Python interpreter with
PYTHON=/path/to/python npm start. - You can override the port with
PY_SERVER_PORT=5001.
ModuleNotFoundError: flask: install Python deps in the venv (./venv/bin/pip install -r requirements.txtor.\venv\Scripts\pip install -r requirements.txton Windows).OSError: [Errno 48] Address already in use: another server is on port 5001. Stop it or changePY_SERVER_PORT.
This project uses Electron Forge for packaging.
- macOS:
resources/icons/EAMIR.icns - Windows:
resources/icons/EAMIR.ico
npm run make
./build-and-sign.sh runs the full macOS release flow (package, make, codesign, notarize, DMG).
- Store credentials in Keychain (one time):
xcrun notarytool store-credentials "eamir-notary" \
--apple-id "YOUR_APPLE_ID_EMAIL" \
--team-id "YOUR_APPLE_TEAM_ID" \
--password "YOUR_APP_SPECIFIC_PASSWORD"
- Create a
signing.envfile (seesigning.env.example) if you want to override the Keychain profile name. - If you're signing under your own Apple Developer account, update the signing identity in
codesign-song-slicer.sh(TEAM_IDandIDENTITY) to match your certificate. - Run:
./build-and-sign.sh
Notes for signing yourself:
- Replace the Keychain profile by re-running
notarytool store-credentialswith your Apple ID/team and a new app-specific password. - Update
signing.envto point at your newNOTARY_PROFILEname if you changed it.
Using System.css project
- should be all set to be used offline. If there's gaps in the ui use the internet version with the link.
- Some icons used from https://iconoir.com/
Original authors:
- Vincent Boothroyd (@vboothroyd)
- Seth Frank (@sethbfrank)
- Gibson Phillips (@gibsonPhillips)
This project is now adapted and part of EAMIR, co-authored by V.J. Manzo (@vjmanzo)
Released under the AGPLv3 license.
Original upstream components were released under the ISC License (see NOTICE).
Navigate to the CONTRIBUTING.md file for guidelines on how to contribute to the project.