zebra-report/web
Russell Ballestrini 0cbbc37393
zebra-spaces: default-on DJ mode for listeners + 4s RTC playout buffer
Fox: 'I want the sound to be epic and to fucking choppy ever.'

Two changes that compose:

 1. Default-on DJ mode for listeners. On role landing (or transition
    INTO listener), auto-flip every speaker's playback path off the
    WebRTC subscribe and onto the existing HTTP Ogg/Opus tap from
    the SFU. The browser's <audio> element keeps a deep media buffer
    (~30s in Chrome) that absorbs glitches WebRTC can't. Speakers
    stay on WebRTC for low-latency conversational audio. Listener
    can still opt-out per-speaker via the stream button — gating
    expanded from {self|host} to {self|host|listener}.

    Auto-enrol triggers at:
     - onRoleEntered (initial join as listener)
     - peer-joined (new speaker arrives while we're listening)
     - role-change of OTHER peer (they became speaker)
     - onRoleChanged self speaker → listener
    Auto-disable: onRoleChanged self listener → speaker
    (cannot afford 2s+ buffer when you have to talk back).

 2. RECV_PLAYOUT_DELAY_SEC 2.0 → 4.0 on both mesh and SFU receive
    paths. Conversational latency is now ~4s for speakers; this is
    the cheap-but-real win against chop on the WebRTC path for
    everyone who still uses it. Music/DJ rooms generally don't care
    about 4s — the room's already committed to a stream-mode 2s+.
2026-06-03 19:19:39 -04:00
..
blog phase 1: unfirehose reconstruction from session JSONL ingest 2026-05-27 13:51:14 -04:00
fonts phase 2: gap analysis — cat>> append + binary asset recovery 2026-05-27 13:54:19 -04:00
chat.html zebra-spaces: boot-error logging + watchFirstFrame keyframe diagnostic 2026-06-03 15:51:18 -04:00
host-your-own.html zebra-spaces: boot-error logging + watchFirstFrame keyframe diagnostic 2026-06-03 15:51:18 -04:00
how-it-works.html zebra-spaces: boot-error logging + watchFirstFrame keyframe diagnostic 2026-06-03 15:51:18 -04:00
index.html web: bump mobile body padding from 1rem to 1.25rem so the right edge has visible breathing room 2026-05-31 14:13:25 -04:00
kernel.html web: bump mobile body padding from 1rem to 1.25rem so the right edge has visible breathing room 2026-05-31 14:13:25 -04:00
stamp.js web: stamp each zebra-report page with build date + md5/sha256 2026-05-28 17:50:12 -04:00
zebra-audio.html zebra-spaces: boot-error logging + watchFirstFrame keyframe diagnostic 2026-06-03 15:51:18 -04:00
zebra-spaces.html zebra-spaces: default-on DJ mode for listeners + 4s RTC playout buffer 2026-06-03 19:19:39 -04:00