You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c6fe097
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: doc/README.md
+40-2Lines changed: 40 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,7 @@ Open showCo on the show network at the configured address and port. The Health p
12
12
13
13
| Page | Use it for |
14
14
| --- | --- |
15
+
| Lighting cues | Named lighting looks, Go/Back, current/next cue position, and live lyte state. |
15
16
| Performance | Manual song cues, large marker and pause/resume controls, recording destination and capacity, stream state, pinned inputs, dimming, and optional screen-awake mode. |
16
17
| Set list | Prepare and reorder songs, notes, and expected durations. |
17
18
| Soundcheck | Save measured checks and explicit playback, lighting, and stream confirmations. |
@@ -35,7 +36,7 @@ Recording-input checks cover channels currently recording and flag silence or cl
35
36
36
37
Open **Performance** for large controls that advance the set list, mark a moment, or pause/resume recording. Moment markers use the label `performance moment`. The page shows recording state, destination, remaining capacity, stream state, and connection age. Pin important inputs and enable dimming for this browser. Screen-awake mode is opt-in and reports whether the browser and connection support it. Controls are disabled when status is unavailable; an action with an unknown outcome is never automatically retried.
37
38
38
-
Enable **Performance lock** from any page before a show. It blocks web requests for cable and lighting tests, calibration, recorder shutdown, new sessions, track names, stereo grouping, mutable attributes, noise-floor changes, key labels, profile reloads, set-list replacement, soundcheck, and recovery restarts. Manual cues, ordinary markers, pause/resume, and recovery verification remain available. An older tab receives the same server-side rejection. To unlock, select **Confirm unlock** and press **Unlock protected actions**; submit any previously rejected action again yourself.
39
+
Enable **Performance lock** from any page before a show. It blocks web requests for cable and lighting tests, calibration, recorder shutdown, new sessions, track names, stereo grouping, mutable attributes, noise-floor changes, key labels, profile reloads, set-list and lighting-cue replacement, soundcheck, and recovery restarts. Manual cues, ordinary markers, pause/resume, and recovery verification remain available. An older tab receives the same server-side rejection. To unlock, select **Confirm unlock** and press **Unlock protected actions**; submit any previously rejected action again yourself.
39
40
40
41
Lock state persists in `~/.local/state/showco/performance.json`. If that file cannot be read, protected actions remain blocked until an explicit unlock can be saved successfully. The lock does not affect separate CLI or deployment commands, and it never starts or stops services itself. Rehearsal uses temporary in-memory lock and incident state and observes services when status is requested.
41
42
@@ -47,6 +48,43 @@ On **Performance**, **Start next song** sends `song start: TITLE` to recs. Skip
47
48
48
49
Repeated requests carrying the same list revision are rejected. If recs may have accepted a marker but its reply was lost, the cue remains pending through restart. Resolve it explicitly: keep the cue without resending, with delivery marked unverified, or retry knowing that a duplicate marker is possible. The recs API cannot guarantee exactly-once delivery across a lost reply.
49
50
51
+
### Lighting cues
52
+
53
+
showCo owns the ordered lighting cue list, Go/Back, and cue position. lyte owns
54
+
lighting execution through its existing `select_animation` RPC. Open **Lighting
55
+
cues**, expand **Edit lighting cues**, give each cue a name and an installation
56
+
look, then save. Look suggestions come from lyte. Cues can repeat the same look.
57
+
Saving resets the cursor without changing the lights; it requires performance
58
+
protection to be unlocked. Unsaved edits survive polling; stale saves are rejected.
59
+
60
+
**Go** selects the first or next cue. **Back** selects the previous cue; at the
61
+
first cue it is unavailable. Neither end wraps. Both controls cut immediately
62
+
and remain available under performance lock. Song markers and lighting cues are
63
+
independent manual actions. There are no timed cues, automatic resends, or changes
64
+
to recording or streaming. This Go button is unrelated to the `showco go`
65
+
deployment command.
66
+
67
+
Current cue means the last selection acknowledged by lyte, or a pending cue
68
+
explicitly kept by the operator. It does not prove physical output. The page
69
+
also displays live active/queued looks, blackout, and test overrides. MIDI or
70
+
another client can change lighting without changing showCo's cue position.
71
+
Reconnecting only reads status. Production state persists in
72
+
`~/.local/state/showco/lighting.json`, including unresolved selections. A restart
73
+
restores the cursor without selecting a look.
74
+
75
+
A lost or unsuccessful reply leaves the selection pending and blocks further
76
+
Go/Back. Inspect the live look, then explicitly keep the pending cue, keep the
77
+
previous position, or retry. Keeping either position sends nothing; retrying may
78
+
restart an already-running look. Saving pending state must succeed before sending
79
+
any selection, so a disk failure prevents that new cue while existing lighting
80
+
continues.
81
+
82
+
The existing `showco run --rehearsal` mode supplies in-memory `idle`, `circle`,
83
+
and `square` looks without contacting lyte or output hardware; its cue list lasts
84
+
for that process. These names also match lyte's `examples/installation-laser.toml`.
85
+
Try Opening/circle, Finale/square, and End/idle, then Go, Go, Back and refresh the
86
+
page. This tests cue operation only, not laser output or physical readiness.
87
+
50
88
### Guided soundcheck
51
89
52
90
Open **Soundcheck**, select the expected recording inputs, and begin. This clears earlier results without starting output. Confirm the intended disk, then make sound on all selected inputs and check their measured signal/clipping state. Disk confirmation requires fresh recs status, available space without an active disk alert, and a readable Linux mount identity. On systems without that identity, disk verification remains unsuccessful.
@@ -170,4 +208,4 @@ The web UI is for a trusted show network and has no login. Every client that can
170
208
171
209
The mixer state combines recs-reported audio and MIDI input names with an optional TCP or UDP probe. For X18, the UDP probe sends `/xremote` and waits for a reply. It is a reachability hint only; confirm mixer control with the tablet application or real OSC feedback. X18 `/xremote` subscriptions are renewed for feedback, but successful renewals are not recording events.
172
210
173
-
The web service limits ordinary requests to eight concurrent connections and waveform event streams to four. Its browser routes are `/` and `/channels`, `/performance`, `/setlist`, `/soundcheck`, `/recovery`, `/health`, `/playback`, `/attributes`, `/actions`, `/errors`, `/status` and `/workflow-status` (JSON), `/diagnostics` (download), and `/waveforms` (server-sent events). Form posts go to `/actions`; requests that accept JSON receive the action result directly.
211
+
The web service limits ordinary requests to eight concurrent connections and waveform event streams to four. Its browser routes are `/` and `/channels`, `/performance`, `/setlist`, `/lighting`, `/soundcheck`, `/recovery`, `/health`, `/playback`, `/attributes`, `/actions`, `/errors`, `/status` and `/workflow-status` (JSON), `/diagnostics` (download), and `/waveforms` (server-sent events). Form posts go to `/actions`; requests that accept JSON receive the action result directly.
0 commit comments