Commit Graph
120 Commits
Author SHA1 Message Date
christianandClaude Opus 5.5 412b0413c0 NA: NA Ingest out of the Tracks Mac's MIDI session in auto-fix hours (rehearsals, services); back after
User 2026-10-26: Ingest's notes did odd things in Ableton; the link is needed for programming only. An
automatic switch (bypass auto autofix_hours, names_only so ProdDash Lighting on the same Mac stays) takes it
out and keeps it out, and puts it back when the hours end. bypass_tick now takes turns over every switch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 12:00:37 -04:00
christianandClaude Opus 5.5 55615dd971 Resi cues connection errors are amber (check option amber): 'Poll failed' is not the stream down
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 11:36:07 -04:00
christianandClaude Opus 5.5 0da1c20a17 A cloud account throttled (429 / rate-limit) is amber RATE LIMITED, not red OFFLINE
2026-10-25: RESI showed OFFLINE 15 times during services while the stream was fine: Resi's cloud was
rate-limiting the account Companion's resi-studio-cues (player every 3 s, cues every 5 s) shares with
ProdDash's Resi cues.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 11:25:29 -04:00
christianandClaude Opus 5.5 c471ac2c92 False alarms between services at NA: RESI AUDIO SILENT only while recording; TRACKS MIDI waits 2 min
2026-10-25 09:00 between services NA showed 2 DOWN while everything was fine: the Resi send is quiet
between services (the silence check now judges only while a HyperDeck records), and the NA Tracks
Bonjour advert blips for 10-70 s (24 times on record) while the real MIDI links stay up (its check now
waits 120 s). Applied on NA between services together with the queued RESI VOX.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 09:06:55 -04:00
christianandClaude Opus 5.5 b6221e0d63 prop_guard: keep a song's timeline running and the stage on Worship (Southcoast, live 2026-10-25)
SC loses lyrics and lights when timecode drops, and the first slide's macro (a communication action to
Companion, which sets the look and stage layout) sometimes misses the stage layout. A small LaunchAgent on
the ProPresenter Mac (org.waterschurch.prop-guard) watches ProPresenter's own API: a song's timeline that
stops mid-song is started again at once (left alone if stopped again right after, or on the last slide),
and in a song's first seconds the Stage Display is put on Worship if it is not on a worship layout.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 08:06:29 -04:00
christianandClaude Opus 5.5 b6d47b7549 RESI VOX: two leads - the song's Audio note in PCO says whose mic goes out
User 2026-10-25: 'check the notes if there's 2 people on a song'. 'V3' or a lead's name in the Audio
note picks; without one it stays flagged and nothing switches.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 07:57:26 -04:00
christianandClaude Opus 5.5 8753451830 RESI VOX: the lineup counts; a PCO Audio note naming another VOX is only mentioned
User 2026-10-25: 'V2 was a mistake, lineup is right.'

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 07:55:24 -04:00
christianandClaude Opus 5.5 32e071e169 READY: RESI VOX - the Resi song goes out with its lead singer's mic
PCO's song description names the lead ('Genesis lead', RESI marks the song, else the last before the
message), the lineup screen gives their VOX, and the Resi AJA's Lead Vocal channel (21) is read from
the card with Dante's own read-only query. Wrong: red, and the hold / auto-fix presses that VOX's AJA
button on page 13 and reads the card back. Two leads, a lead not on the lineup, a PCO Audio note naming
another VOX, or VOX 5+ are flagged only. Checked on 2026-10-25's real data: Genesis, VOX 4, AJA on VOX 4;
the Audio note says V2, so it is flagged and nothing switches. Applied on NA after the services.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 07:30:36 -04:00
christianandClaude Opus 5.5 0ecec5f112 ABLESET switch (Restart page): hold to stop AbleSet being watched and opened
The user has an AbleSet bug and needs auto-open off for now. A bypass key can now hold off fixes
(bypass.fixes): their checks stay green and nothing runs them. The status page is full, so a Restart
page key with toggle shows the switch and its hold flips it. Switched off live 2026-10-25 07:18.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 07:19:51 -04:00
christianandClaude Opus 5.5 0f3471bf51 AUTO-FIX: a pause never lasts past midnight
2026-10-22 10:14 a tap paused NA's auto-fix 'through the next hours', which were all of Sunday's services,
and nothing fixed itself on 10/25. The user: alarms on means auto-fix on. A pause now holds through the
hours it is in (or ones starting later that day) and ends at midnight at the latest. Deployed to NA,
and patched into WS and SC's copies (they still run 51a1414 otherwise).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 06:49:46 -04:00
christianandClaude Opus 5.5 49acb08157 APPS: AbleSet on the Tracks Mac watched; hold and auto-fix open it minimized
The user keeps AbleSet open (minimized) so ProdDash shows it. mac_start gets a Minimized option:
open -g, then once the program has a window, System Events minimizes it. Tested live: quit AbleSet,
APPS showed ABLESET NOT RUNNING within seconds, the hold reopened it with its window minimized.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 06:44:08 -04:00
christianandClaude Opus 5.5 e5587cb109 ATEM: RESI AUDIO SILENT when input 16 has no audio for 30 s; log what the switcher has wrong
2026-10-25 the Resi AJA passed no Dante audio and the panel stayed green (DANTE only sees the card on the
network). atem_watch.js now asks the switcher for its Fairlight meters and reports a metered input
stuck at the floor (-100 dB); the ATEM key turns red in auto-fix's hours or while a deck records.
Differences (audio, camera, silence) are logged when they change, so a fault says what it was.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 06:18:52 -04:00
christianandClaude Opus 5.5 0d655bff3c READY: START builds the week's Ableton sets (Sunday and special services) from Planning Center
Hold START on Monday: last weekend's songs go to Finished Songs (a changed one parks the version it
came from as z...), then each service PCO lists this week (weekend + Special Services / Morning
Worship...; First / Together Tuesday in Projects/FIRST TUESDAY) gets 'YYMMDD NA Project' built from
the newest weekend set: locators, tempo map and TEMPO clips, Waves Tune cues, songs from Finished
Songs (transposed Complex Pro when only another key exists), markers / guide / lighting cues on the
dedicated tracks, pads, routing and send A at 0 dB, audio copied in with an Ableton Project Info folder.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 12:38:09 -04:00
christianandClaude Opus 5.5 e2add3b27e PROP OUT: keep Location Assets mounted on the ProP Mac; SHARE NOT MOUNTED; hold remounts
- remote-access/mac-keep-mounted.sh: a user LaunchAgent that keeps a share mounted (every minute and at
  login; Keychain login; unmount + remount only when the share hangs), installed on NA ProP for
  Chronicles' Location Assets
- PROP OUT says SHARE NOT MOUNTED instead of NOT IN <weekend> when the share is gone; its hold (and
  auto-fix) starts the agent and waits for the share

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 11:22:07 -04:00
christianandClaude Opus 5.5 11ac8aa8e0 LIGHT TIMING: the hold saves the set; what is under a cue includes the stem's lag
- After moving cues, the hold clicks File > Save Live Set in Live (System Events; osascript has
  Accessibility on the Tracks Mac), only when the set open in Live is the one checked
- "Under the cue" now looks from 10 ms before to 25 ms after it: a cue on a hit whose stem starts
  10-15 ms after the grid read as a quiet spot (Name Above All Names 737.1.1 was moved by mistake
  and has been put back)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 10:50:05 -04:00
christianandClaude Opus 5.5 625d424bda LIGHT TIMING: the real offset up to a full 16th, no flag on a cue already on a solid hit, hold moves the cues
- Detection in 2.5 ms steps; where a hit starts is halfway up its rise; each song's cues on solid hits
  set its "on time"; a cue already on a solid hit is never named; "about a 16th" when it is
- Hold: moves the off cues onto their hit in the open set through a status panel command added to
  AbletonOSC (tools/abletonosc), keeping each cue's end; the key asks for a save until the set is saved

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 10:31:33 -04:00
christianandClaude Opus 5.5 d4e4092a9d READY: LIGHT TIMING (flash and FX cues against the drum hits); auto-fix on for testing
- LIGHT TIMING: every blinder flash / FX cue is timed against the Drums (Live) stem under it
  (deactivated clips count) on the Tracks Mac; cues a strong hit is more than 25 ms away from are named
  with song and bar
- Settings Overview: "Auto-fix on for testing" for 15 min to 2 h, outside the hours and over a pause;
  the AUTO-FIX key says TESTING, and it goes back to the hours by itself

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 10:18:46 -04:00
christianandClaude Opus 5.5 f179df59f1 READY page: song keys, Waves Tune, live routing and in-ear sends
- SONG KEYS: each song's PCO key against the set's locator, the pad under it and Finished Songs
- W TUNE: the Waves Tune clip starting each song is the PCO key (and sends that key's program)
- ROUTING / IN EARS: read live over AbletonOSC (then handed back to Companion); the hold, and
  auto-fix in its hours, put stems back on the routing template (from 261025 NA Project) and
  raise in-ear sends at -inf to 0 dB

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 10:03:49 -04:00
christianandClaude Opus 5.5 51a14140cc MIDI hold and auto-fix move a link joined by name to the owning Mac's wired address
- WS 2026-10-21: FOH Mac mini joined ProPresenter's session by name; hold said "no automatic fix". Now the
  address comes from the link's own check, else the Mac that owns that session (wired SSH / ingest address +
  session port); auto-fix does it too, never while a HyperDeck records
- WS: FOH Mac mini <-> ProPresenter watched (FOH PROP); auto-fix moved it to 10.2.1.12:5004 by itself

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 20:52:42 -04:00
christianandClaude Opus 5.5 afd2758d87 PC set-up: one line per PC (/setup/<name>.ps1), the admin laptop always let in, and the admin check no longer breaks the script
- the inserted administrator check split the header comment, leaving '} for ... run ONCE' as code: WS and SC
  join.ps1 failed to parse (Windows' parser: Missing opening '(' after keyword 'for'); now after the whole line
- site.admin_ips / admin_keys (laptop 10.6.7.38, fixed in UniFi) go into every PC script's firewall rule and key
  files, and into the Mac join line, so running a set-up again never shuts the laptop out
- scripts verified by Windows' own PowerShell parser on the NA Lighting PC

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 16:29:36 -04:00
christianandClaude Opus 5.5 0813734e78 NA page-number key: hold 2 s = status page, keep holding to 3 s = LOCATIONS page
- nav_hold_more: longer holds go further (tested on NA's Companion emulator: 2.5 s -> 19, 3.5 s -> 98, tap -> 1)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 16:06:04 -04:00
christianandClaude Opus 5.5 99a25e5da2 AUTO-FIX pauses through the hours (also when pressed outside them); MIDI links without a state judged by the Mac
- AUTO-FIX: tap = pause / resume; a pause lasts through the current or the next auto-fix hours; key says ON TIL,
  OFF / ON <start>, PAUSED TIL; forcing auto-fix on outside the hours is gone
- MIDI: macOS 26 reports every live link's state, so no state there = NO ANSWER; on macOS 14/15 a link put back after
  a drop counts only after 20 s (macOS drops an unanswered one at ~12 s): no more OK/LOST flicker
- WS and SC PROP ignore the rc4 module's harmless warnings, as NA

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 15:38:56 -04:00
christianandClaude Opus 5.5 bf9afcbc84 Operator mode clears the flapping history of the links it takes out
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 15:18:43 -04:00
christianandClaude Opus 5.5 3428bd81a2 NA: ALL AUTO-FIX key pauses or resumes auto-fix at every location; page keys keep their words under the band; rc4 ProP module at WS/SC
- LOCATIONS page key at 3,1: shows ALL ON or the paused locations; tap pauses all, tap again sends each back to its hours
- autofix auto: back to the auto-fix hours
- the page name and number shrink into the top 60% while the locations band shows
- WS and SC Propresenter-API on renewedvision-propresenter-api 1.2.0-rc4 (pinned manual, as NA)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 15:12:10 -04:00
christianandClaude Opus 5.5 a201d51db2 NA: READY page on 21, archives on 30-31, location pages back on 98/99
- Apply's import message names the READY page by its own number

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 15:00:58 -04:00
christianandClaude Opus 5.5 48a754a118 NA's page keys name the other locations with a problem in a blue band; PROP OUT reads Chronicles
- campuses.remote_summary -> custom variable sp_remote; band flashes until acknowledged there, steady after, "SC?" when silent
- nav_locations_band (NA only); red stays for NA's own problems
- PROP OUT: /Volumes/Location Assets/{date} on NA ProP (Chronicles share)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 14:57:45 -04:00
christianandClaude Opus 5.5 ee7326a6eb PROP OUT looks in this weekend's Location Assets folder, read on NA Ingest
- prop_bundle_folder takes {date} (the plan's weekend, as the tracks folders): any bundle there counts
- readiness scripts for this Mac run here (NA ProP's Google Drive showed 261025 empty)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 14:40:18 -04:00
christianandClaude Opus 5.5 42b325e927 ProPresenter updates are safe: any installed copy counts as running, the newest version opens
- newest_of picks by CFBundleShortVersionString, not file name (ProPresenter.app sorted after ProPresenter 20.1.app)
- mac_start takes newest_of; auto-setup uses it for programs on the Companion Mac
- WS and SC switched over; NA's ProP restart re-rendered (same pick today)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 14:33:39 -04:00
christianandClaude Opus 5.5 5db1d93732 Companion keeper: after a restart the panel opens the Companion that ran last if it is not running
- only in the watchdog's first 10 minutes, never another version, never during an upgrade
- SC verified end to end; laptop SSH to the SC Macs; configs synced

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 14:26:18 -04:00
christianandClaude Opus 5.5 176e8e9073 SC Lighting PC joined: VISTA key and Restart key, rtpMIDI watched on MIDI
- a helper program (rtpMIDI) on a computer that joins after the MIDI key exists is added to it
  (it was marked seen and never added)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 14:10:42 -04:00
christianandClaude Opus 5.5 a54b6b6276 The PC join line says to run it as administrator before anything else runs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 13:58:24 -04:00
christianandClaude Opus 5.5 cc9d752287 Tests follow NA's AUTO-FIX key and moved ARENA; stored NA pages refreshed from NA
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 13:49:06 -04:00
christianandClaude Opus 5.5 7068244ba4 "Location", never "campus", in everything people read; SC FOH joined with its MIDI links
- pages (NA 98 Locations / 99 Location, re-imported via PAGES_VERSION), keys, settings page, setup and
  install messages, alerts, docs, the Apollo Beach kit; python3 -m settings.location and /location/...
  addresses (the old names still answer for installed Macs)
- Apply reads the before settings from the file: an in-place edit skipped the watchdog restart
- SC: SUPERRACK (+SoundGrid) and X32 EDIT from SC FOH; FOH TRACKS and TRACKS LIGHTS MIDI links watched

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 13:42:22 -04:00
christianandClaude Opus 5.5 d0c755824b ALARMS and AUTO-FIX as two keys; LIGHTS at Southcoast hands the lights to an operator
- kind autofix: its own switch on the auto-fix hours; ALARMS then only silences (NA keeps the old
  combined key until it has room for one)
- kind bypass: hold takes every network MIDI link to a peer out (here and on listed Macs), checks stop
  calling it lost, re-taken every 10 s; hold again puts back exactly what was taken plus every watched link
- a MIDI peer with no address is never called (it connected SC Tracks to itself)
- holds from NA's CAMPUS page flip switch keys; a rebuild keeps them; new campuses get AUTO-FIX
- key kind changes restart the watchdog; settings page has separate alarm / auto-fix buttons
- WS and SC configs: AUTO-FIX at 3,1; SC LIGHTS at 1,3; NA config synced from live

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 13:33:48 -04:00
christianandClaude Opus 5.5 2f8e3d47a3 Apollo Beach on its own: a standalone panel to send them
- tools/standalone.py builds dist/<Name> Status Panel.zip: program, install.command, READ ME FIRST.txt
- setup --standalone: campuses.json standalone, tells nobody, no hub, no NA key
- Standalone backs itself up nightly to ~/Documents/Status Panel Backups/<id>
- upgrade-companion --from <.dmg/.zip from bitfocus.io> (no NA needed)
- Only the hub lists campuses or shows other campuses' install lines

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 13:12:30 -04:00
christianandClaude Opus 5.5 bea587cfad Southcoast matches NA, per its startup checklist: X32s, ProPresenter to Lighting MIDI, pages 19/20
- An explicit look or rebuild may apply inside the auto-fix hours (never while live)
- A page move clears the page left behind when only our keys are on it
- A rebuild keeps MIDI links that are down now; first-setup import waits for the keys to land
- ProPresenter port drift fixed automatically (kind propresenter_port)
- sites/sc/config.json kept with the others

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 13:07:15 -04:00
christianandClaude Opus 5.5 ee4c97c699 Woonsocket: ProPresenter's MIDI session connected to Lights, and watched
ProPresenter (on the Companion Mac) now reaches Lighting at 10.2.2.2:5004; Lights sees ProPresenter at
10.2.2.210:5004, both running. The MIDI key watches it (PROP LIGHTS). Auto-setup counts a link to the
Companion Mac's own session once (it had listed it from both ends).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 12:29:14 -04:00
christianandClaude Opus 5.5 6d1cfea2f7 Every campus matches NA, tailored: Restart page, Companion-Mac programs, NA's auto-fix hours, nightly backups, restart from NA
- Auto-setup: programs on the Companion Mac itself (ProPresenter at Woonsocket) get a local process
  check and local start/restart fixes; every campus gets a Restart page (keys arrive as computers
  join); NA's auto-fix hours (Tue, Wed, Sun); a program found after its Companion connection joins
  that key instead of making a second one. settings.campus rebuild remakes a campus from what is
  found now, keeping its name, PIN and pages; upgrade-companion brings Companion to 5.0.7 from NA's
  copy (/campus/companion.zip), as Woonsocket was; setup stops with that advice on an older one.
- NA's CAMPUSES page has a RESTART key per campus; the CAMPUS page shows that campus's Restart page
  and a hold there restarts it at that campus.
- Backups: backup/backup-campuses.sh, nightly 04:30 on NA (installed everywhere, acts on the hub),
  into Drive > Waters Creative > Apps > Status Panel Backups/<campus>, 30 kept, alert email via the
  checklist's alert.js. Campuses report the account to back up with. sites/ws/config.json in the repo.
- Woonsocket rebuilt: 9 keys (PROP with ProPresenter on its Mac), Restart page 20 (SUPERRACK, VISTA,
  ABLETON, PROP), auto-fix on NA's hours; all OK. Both campuses backed up to Drive by the job.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 17:17:04 -04:00
christianandClaude Opus 5.5 b793490d90 Hold Woonsocket's keys from NA; MIDI links moved and fixed on Macs without python; one check per link
- NA's CAMPUS page (99): tap = acknowledge, hold = fix, at the campus shown. NA's settings page
  turns the cell into that campus's key and writes the command into that campus's Companion
  (sp_cmd), exactly as a press on its own deck does. Logged on both sides.
- coremidi.JXA_CONNECT: connect_peer in JavaScript for Automation, used when a Mac has no python
  (no Command Line Tools): a MIDI hold now reconnects Woonsocket's Tracks, FOH and Lights.
- Woonsocket's MIDI links are on wired addresses now (Tracks to Lighting 10.2.2.2, Tracks to FOH
  10.2.1.12; the other ends list Tracks at 10.2.1.219), and the wired-network rule is back on there.
- Auto-setup keeps one check per MIDI link (the end that reports the link's state): two pulled
  links read 4 DOWN before.

Tried live: a hold sent from NA's page 99 reconnected the FOH link at Woonsocket.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 17:00:31 -04:00
christianandClaude Opus 5.5 457335bc96 Woonsocket's startup list covered: M32, SoundGrid link, MIDI on Macs without python
From the WS Production Startup checklist (check.watersmedia.org):
- M32 (the "X32" there is a Midas M32 at 10.2.1.146): Woonsocket's Companion got the X32/M32
  module (imported from NA's copy through Companion's own API) and an m32 connection; auto-setup
  names a single M32 connection's key M32.
- SuperRack's link to the Waves SoundGrid server: a soundgrid check builder (SuperRack's control
  connection on port 19000) inside every SUPERRACK key.
- MIDI ("Open Audio MIDI"): Macs without the Command Line Tools have their sessions read with
  JavaScript for Automation (coremidi.JXA_SESSIONS) - by the watchdog every 2 s and by discovery. A
  peer with no state (older macOS) counts as configured. A peer joined by name or IPv6 gets the
  wired address of the Mac whose session it is (matched by session name), at that session's port.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 16:48:28 -04:00
christianandClaude Opus 5.5 e1c9b2f974 Auto-setup knows Vista on a Mac (Woonsocket's Lights Mac mini)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 16:37:10 -04:00
christianandClaude Opus 5.5 93805cb723 No developer-tools pop-ups on the computers; apps found where they really are; SuperRack and X32-Edit
On a Mac without the Command Line Tools, /usr/bin/python3 is a stub that opens Apple's installer on
that Mac's screen: Woonsocket's Tracks and FOH Macs showed it after joining (and would every ten
minutes). Python now runs on another Mac only when xcode-select says it is there (MIDI reads, MIDI
reconnects, the Computers probe); without it those Macs' own MIDI sessions are simply not read.

The app list used a glob that zsh (the Macs' login shell) turns into an error when one pattern
matches nothing, so no app was ever found there: find instead, and a running program's app path is
taken from the program itself. New recipes: SuperRack SoundGrid and X32-Edit (AUDIO).
Woonsocket now has ABLETON, SUPERRACK and X32 EDIT keys, all OK, and NA's page 99 shows them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 16:33:28 -04:00
christianandClaude Opus 5.5 777afac0b1 NA's CAMPUS page always shows a campus, and says which
Opened directly (nothing tapped), page 99 was all purple: no campus chosen. It now shows the first
other campus until one is tapped, and the back key reads WS / ALL SITES.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 16:28:21 -04:00
christianandClaude Opus 5.5 4dac76f703 Campus hello: the same address under a new name replaces its old entry
Woonsocket reported as "new" before its first setup finished, then as ws: NA kept both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 16:18:15 -04:00
christianandClaude Opus 5.5 d7dc931bd4 NA sees every campus; SSH from the admin laptop to every machine
Campuses set up from NA's install line tell NA where they are and learn nothing back (no campus
ever shows another). NA alone reads each campus's key states every two seconds and keeps two pages
in its Companion (added at the end, 98 and 99, since every other page is in use): CAMPUSES, a key
per campus (its ALL key, purple when it stops answering), and CAMPUS, the tapped campus's status
page drawn live in the same places, view only. Tried on NA with a test campus pointing at NA
itself, then removed.

tools/fleet.py: an Apple Remote Desktop command that turns on Remote Login, adds the laptop's key
and reports each Mac to NA, and the laptop SSH shortcuts made from those reports (tried on NA
Translation).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 14:57:18 -04:00
christianandClaude Opus 5.5 3976667bba Other campuses set themselves up: one install line, one join line per computer, keys made from what is found
settings/discover.py reads Companion's connections (and their addresses and channel counts), the
Dante devices, the network MIDI sessions here and on joined Macs, this Mac's wired network, and
what runs on each joined computer. settings/autoconf.py turns that into keys, checks, start and
restart fixes and a page layout the way North Attleboro's were made (group keys only when not
everything fits; receivers fold first), all through the existing builders and rules.
settings/campus.py prepares Companion through its internal API (the panel's custom variables and
the blink trigger), picks free pages, applies the first config, serves the program kit, the
campus install line and the Mac/PC join lines, and looks every ten minutes to add new gear
(discover.auto; never during a service or a recording, never removes, never re-adds what someone
took off). Settings > Auto-setup shows what was found and the lines to paste. install.sh keeps the
kit and makes the panel's login key.

Checked on North Attleboro read-only: discovery finds all 43 connections, 19 Dante devices, four
Macs' MIDI sessions and seven computers, and a from-scratch build reproduces NA's layout. The
Companion calls were tried with a throwaway variable and a disabled trigger, then removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 14:31:32 -04:00
christianandClaude Opus 5.5 6ae17e5b90 Every MIDI link by wired address: flag links joined by name, hold MIDI moves them, refuse non-wired addresses
Tracks had joined NA Ingest, Lighting PC and Studio B by Bonjour name: macOS picks the network
each time, so a reconnect could land on Wi-Fi or Dante. The wired check now also names a link
joined by name; holding MIDI moves it to the wired address its own MIDI check names (a hold
only: auto-fix never moves a working link). Reconnects prefer a wired address over a Wi-Fi or
by-name one they last saw. The settings refuse a MIDI link whose address is a name or off the
wired network, and the add-a-link screen fills in the wired address. Studio B's link now has its
wired address, and Tracks' link to NA Ingest is watched (TRK INGEST). All links on the four Macs
were moved and checked: wired IPv4, running.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 10:38:22 -04:00
christianandClaude Opus 5.5 340100b5bb Wired-MIDI test: one check, whether or not config.json already has it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 10:10:51 -04:00
christianandClaude Opus 5.5 79318976c5 MIDI key: every network MIDI peer must come over the wired network
The Macs are also on Wi-Fi and the Dante networks, and Bonjour lists each MIDI session once per
network. ProdDash's Vista Cues module had Tracks and Companion set to their Wi-Fi addresses, so
lighting MIDI rode Wi-Fi. A midi_wired check now names any peer, in NA Ingest's session or the
other Macs', whose address is outside the wired network (10.1.0.0/16 at NA).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 10:09:34 -04:00
christianandClaude Opus 5.5 b41b8a49d2 ALARMS key stops every auto-fix too, and says so
Muted, nothing fixes itself at all: no Spotify exception (while_muted is gone) and no any-hour
READY fix; holds still fix and the Sunday stream-audio failover still switches. The key reads
ALARMS OFF / AUTO-FIX OFF / TIL 12AM, and its note says both. The settings page's switch says the same.

The mute's end is worked out at the press and kept: a watchdog that was not running at 23:59 no
longer leaves the alarms muted until the next schedule change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 14:46:20 -04:00