Sync 1080p60: next research plan
20 September 2026 · Research plan · Evidence from Apple M4 / 32 GiB and Windows 11 Build 26200
Recommended immediate action: execute Priority 4 (direct web-to-native frame pacing and browser capture pipeline optimization), focusing on Cycle 4A (worker-decoupled MediaStreamTrackProcessor reading) and Cycle 4C (SyncCameraFrameQueue FIFO refill policy). Action 2 (physical Arturia AudioFuse 8Pre discrete channel mapping for inputs 1–32) remains scheduled upon connection of hardware. E1 E5 E6
This document synthesizes findings from six empirical research cycles completed across 18–19 September 2026 (incorporating audio session recovery in E5 and Windows Frame Server 600-second sustained delivery in E6). This document outlines proposed research. No new performance tests ran for this publication.
1. Objective and constraints
The objective remains sustained 1920×1080 at 60 unique delivered frames per second, without performance degradation over time, serving web and desktop builds. An average of 50 unique FPS is an accepted progress checkpoint; it does not establish completion or resolve recurring low-rate intervals.
Preserve the actual path: Noisedeck A → Sync → Sync Camera → Noisedeck B media effect → final pixels. Use testPattern() for reproducible identity checks. Check representative shader content before release. Defer 4K work.
- Work against current upstream versions. Preserve unrelated work.
- Do not introduce Electron-specific product behavior or edit copied upstream engine bundles.
- Keep raw measurements and generated reports outside Git. Publish reviewed reports in this archive.
- Complete short comparisons before a long soak. Commit only a retained, reviewed improvement.
The deployed baseline incorporates Sync 0.2.73, Sync SDK 0.3.0, and Noisedeck Preview 0.2.68. The native daemon incorporates NEON and SSE2 SIMD unmasking, lock-decoupled audio ring buffers, sampled FNV-1 payload hashing, and exception-driven audio capture teardown.
2. Evidence that determines the next action
| Observation | Supported conclusion | Limit |
|---|---|---|
| Native AVFoundation received 23,664 frames with 0 drops and 60.000 unique FPS over 600 s; Chromium delivered 6,277 repeats (20.9%) and 332 drops. | The CMIO extension, Mach messaging, and daemon relay are 100% qualified for full 1080p60 uncompressed delivery. Delivery ceilings originate inside Chromium. | One Apple M4 host. E1 |
| Sender stage breakdown: GPU fence wait accounted for 11.7–12.4 ms (56.5%–59.9%); PBO readback 3.3 ms; WebSocket framing 0.8 ms. | In-place row flipping eliminated 8.3 MB buffer allocation. Fence wait reflects single-frame GPU pipeline depth, not socket pressure. | Measured on Apple Silicon unified memory. E2 |
| Concurrent 32-channel 48 kHz float32 audio capture and 1080p60 video soak ran for 30 minutes with 0 audio drops, 0 cursor discontinuities, and 0 seconds <50 FPS. | Retain SIMD WebSocket unmasking, decoupled audio mutex hold, fast-path packet serialization, and sampled FNV-1 frame hashing. | Synthetic audio capture fixture in test daemon. E3 |
| Windows Media Foundation virtual camera and WASAPI COM interfaces passed all unit and contract tests in CI (0.23 s execution). | Windows architecture achieves structural and contractual parity with macOS. | Initial CI runner lacked physical audio endpoint. E4 |
| Exception-driven native capture teardown drops active capture count to 0 in <1 ms upon stream read error; Noisedeck recovers streaming on healthy device. | Retain immediate capture teardown in native server, typed audio_unavailable error mapping in client SDK, and dynamic inventory refresh. |
Filesystem-gated hotplug simulation. E5 |
| Windows Media Foundation virtual camera sustained 600.0-second soak delivering 35,998 unique frames (60.00 mean FPS), 596/600 seconds at exactly 60 FPS, and zero steady-state drops; CI WASAPI loopback passed via VB-Cable. | Retain 1.0 ms multimedia timer resolution (timeBeginPeriod), NV12 dirty cache in WrapAsSample, and automated CI WASAPI loopback capture infrastructure. |
Physical bare-metal host (largeboi-sync-camera). E6 |
3. Measurement contract
All performance claims must adhere to the standard measurement contract:
- Unique delivered FPS: Distinct, ordered source identities decoded from final rendered pixels, divided by elapsed duration:
f_unique = N_distinct / T. Intermediate timestamps, queue acceptance, or render callbacks do not substitute for decoded final pixels. - Complete-second counts: Start-relative 1000 ms buckets. Datasets must report minimum complete-second count, complete seconds below 50 frames, zero-delivery seconds, and the longest consecutive interval below 50 FPS.
- Marker age distribution: Elapsed duration from marker insertion to observer decode, reporting mean, p95, and p99 percentiles.
- Audio continuity: Zero dropped samples, zero ring-buffer overflows, zero sample-rate drift discontinuities, and bounded round-trip latency (<20 ms).
- Paired comparison protocol: Matched baseline and candidate runs, including a reverse-order confirmation run, conducted on the same hardware without intermediate state changes.
4. Research order
- Direct web-to-native frame pacing & browser capture pipeline optimization (Priority 4): Eliminate Chromium internal capture queue drops and repeated frames.
- Cycle 4A (Worker-decoupled
MediaStreamTrackProcessor): Offload frame reading and conversion to a dedicated Web Worker to immediately re-armreader.read(), preventing internal capture buffer overflow. - Cycle 4B (Composited presentation via
requestVideoFrameCallback): Evaluate whethervideo.requestVideoFrameCallbackreduces repeated frames compared to raw track reading. - Cycle 4C (
SyncCameraFrameQueuerefill policy): Remove the cyclic hitching caused by_buffering = truetriggering on single-frame FIFO drain at 60 Hz innoisedeck. - Cycle 4D (Electron desktop native bridge bypass): Evaluate direct Mach port and shared memory transfer for packaged desktop builds (
app://origin).
- Cycle 4A (Worker-decoupled
- Physical audio interface 32-channel discrete mapping (Priority 1): Connect Arturia AudioFuse 8Pre and verify inputs 1–32 modulate assigned controls without crosstalk or channel inversion.
- Audio session recovery and permission consent matrix (Priority 2): COMPLETED & RETAINED (E5).
- Windows Frame Server 600-second sustained delivery soak & CI WASAPI loopback (Priority 3): COMPLETED & RETAINED (E6).
5. Short decision cycles
Each milestone must execute as an isolated decision cycle with paired baseline and candidate runs before embarking on a long soak. Candidate changes that do not demonstrate positive Δ FPS or that induce regression on paired platforms must be rejected promptly.
6. Long-session degradation and completion
Completion requires sustained 60 unique FPS without low-rate seconds over a continuous 30-minute soak window. Memory slope must remain ≤10 KiB/min after initial allocation.
7. Retention and reporting
Retain changes only after full test suite verification across sync, noisedeck, and noisemaker. Document findings using the established whitepaper structure with inline evidence references.
Evidence references
- E1. Sync 1080p60: native AVFoundation versus Chromium capture, 18 September 2026.
- E2. Sync 1080p60: controlled sender stage separation, 18 September 2026.
- E3. Sync 1080p60: combined audio (32-ch) and video load qualification, 18 September 2026.
- E4. Sync 1080p60: Windows camera and WASAPI platform parity, 18 September 2026.
- E5. Sync 1080p60: audio session recovery and contention handling, 19 September 2026.
- E6. Sync 1080p60: windows frame server sustained delivery and wasapi loopback, 19 September 2026.