IntercomServer binds web server (8080) and media port (50000) to the clinic
interface only. Phones post an SDP offer and receive talkback (Opus) and the
PGM preview (H.264 constrained baseline, 960x540, 25 fps).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Single cipher suite (ECDHE-ECDSA-AES128-GCM-SHA256), client certificate
checked against the SDP fingerprint, extended master secret.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Building blocks for a minimal WebRTC stack on CryptoKit/CommonCrypto,
verified against RFC 5769, RFC 3711 and OpenSSL vectors.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Scene = control config + config per node; screens matched by name, then position
- Remote module: length-prefixed JSON messages, NodeServer (Bonjour on the
technical interface), NodeBrowser with auto-reconnect
- ChannelSelection moves to MusubiCore
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- NDIReceiver captures audio (audio-only bandwidth for sound routes)
- AUHAL output per device, mic input via AUHAL, fan-out to routes
- Drift-compensated, allocation-free render path; backlog trimmed on start
- Global talk key (Ctrl-Option-Space, hold or toggle) gates mic routes
- Sound tab with channel strips, meters, gain, mute, L/R/L+R
- --audio-route launch argument, per-minute audio CSV, 10 s diagnostics log
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Senders like NDI Test Patterns send a still image once; a held NDI connection
now counts as alive so the receiver does not reconnect in a loop.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- NDIReceiver: per-source receive thread, IOSurface pixel buffers, watchdog reconnect
- VideoOutput: borderless output window above menu bar, AVSampleBufferVideoRenderer,
50 Hz display mode for app lifetime, display sleep assertion
- Screen cards with drag and drop, live fps and frame loss
- Per-minute stats CSV in ~/Library/Logs/Musubi for long-run tests
- --route launch argument for scripted tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- XcodeGen project: macOS 14, universal (arm64 + x86_64), studio.zielke.musubi
- MusubiKit package: MusubiCore, NDIKit (+ CNDI module map), VideoOutput,
AudioMatrix, DesignSystem (symlink to design/Theme.swift)
- Main window with NDI source list, NDI version logged at launch
- Swift Testing suite for MusubiCore models
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>