The previous commit wrote these seven lines with literal em-dashes, ellipses and curly apostrophes where the app's source has — / … / ’ escapes. JavaScript reads both identically, so nothing behaved differently — but a reference fork that differs from its upstream by thirty bytes reports phantom drift every time the two are compared, which is the one job this snapshot has.
Band Lineup
Stage lineup photos with mic/pack labels, for the backstage screen. Electron, packaged for Windows.
It also carries the ProPresenter Now / Next feature, which exists in two forms that share one engine:
BandLineupDisplay/
├── main.js, preload.js, index.html, renderer.js, styles.css the Band Lineup app
├── propresenter-core/ the shared ProPresenter 7/20 client — no deps, no Electron
└── propresenter-app/ the standalone Now/Next display + the page the band app serves
| Want | Do this |
|---|---|
| Run the backstage app | npm start |
| Show Now/Next on screens around the building | In the app: People panel → Studio Displays → Turn On, then bookmark the address it gives you |
| Host the display without the Band Lineup app | cd propresenter-app && node server.js |
| Build the Windows installer | npm run dist |
propresenter-core is the single home for every ProPresenter quirk — runtime route discovery on
PP20, arrangement-expanded slide totals, uuid-then-name matching for the live item. Fix a quirk
there and both programs get it.
Details on the display, the bookmark that survives DHCP, and the Windows firewall gotcha: propresenter-app/README.md.
Testing without ProPresenter
tmp/pp-mock.js is a mock of the ProPresenter network API that advances slides on a timer,
including the tricky case where an arrangement repeats a section (43 cues over 41 master slides):
node tmp/pp-mock.js 1599
Then point either program at 127.0.0.1 port 1599.