Skip to content

test(xone43c): characterize vendor-specific multichannel transport - #5

Draft
pvurda wants to merge 1 commit into
tests/xone43c-hardware-evidencefrom
tests/xone43c-active-characterization
Draft

test(xone43c): characterize vendor-specific multichannel transport#5
pvurda wants to merge 1 commit into
tests/xone43c-hardware-evidencefrom
tests/xone43c-active-characterization

Conversation

@pvurda

@pvurda pvurda commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • add an administrator-only Windows capture workflow for one Xone:43C (22f0:000f) using the official ASIO driver, USBPcap, Wireshark/tshark, Mixxx, and Python
  • generate eight deterministic 12-second S24_3LE marker WAVs (four stereo decks at 48/96 kHz, -24 dBFS) with pinned SHA-256 values
  • capture initialization/open-close separately from address-scoped playback and silent-input scenarios, then normalize only bounded USB metadata
  • add a deterministic Python analyzer producing session.json, control-transfers.tsv, iso-summary.json, playback-channel-map.json, and capture-summary.json
  • add fixture-only Windows CI, privacy/provenance gates, raw PCAP/WAV signature rejection, and adversarial Python/PowerShell coverage

Evidence boundary

Raw PCAPs, marker WAVs, normalized event streams, serials, usernames, private paths, USB payloads, and captured audio are not committed. The workflow keeps raw material outside the repository under a user-only ACL, records only source hashes, deletes broad/merged captures as soon as possible, and deletes the remaining exact-address material only after successful analysis and validation. On failure it retains only eligible exact-address diagnostic material and prints its location.

Tool provenance is bound to the repository analyzer and marker generator. Physical evidence is rejected unless both rates, all four playback pairs, endpoints 0x02/0x81, descriptor-backed altsettings, unambiguous markers, continuous sustained-stream timing, and zero unexpected USB errors are present.

Facts and hypotheses

Facts carried forward from PR 5: the standard UAC1 topology exposes stereo 48 kHz playback on interface 1/alt 1 (0x02, feedback 0x85), stereo 48 kHz capture on interface 2/alt 1 (0x81), and standard MIDI on interface 3. Vendor-specific altsetting 2 on interfaces 1 and 2 has 512-byte isochronous endpoints.

The vendor-specific altsettings remain a multichannel hypothesis until a real Windows run aligns the official ASIO controls, 48/96 kHz framing, and all eight synthetic playback markers. Capture is intentionally transport-only and always reports physical_channel_map: not-tested.

Validation

  • python3 -B -m unittest discover -s tests/xone43c -p 'test_*.py' — 50 tests passed
  • pwsh -NoProfile -File tests/xone43c/Test-CaptureXone43C.ps1 — passed
  • make -C tests/ploytec test — 18 TAP cases / 43,140 assertions passed
  • make -C tests/ploytec sanitize — ASan + UBSan passed
  • inherited report and PR 5 capture fixture suites passed
  • adversarial ordering, provenance, privacy, lifecycle, cross-document, and minimum-frame corpora passed; 100,000 deterministic binary-payload fuzz cases produced zero false positives
  • local W=1 module builds passed against Ubuntu 6.8 and 6.14 headers in a temporary path without spaces; ELF/module metadata remained unchanged
  • git diff --check passed; no tracked PCAP, WAV, build artifact, Linux runtime change, or new driver USB ID

The existing Linux CI remains the independent 5.15/6.8/6.14, GCC/Clang, sanitizer, shellcheck, and checkpatch gate.

Physical run status

This PR is intentionally opened as a draft. The physical Windows/Xone:43C/official-ASIO capture has not been run in this environment. Before marking ready, run the documented 48/96 kHz procedure and commit only the five validator-approved derived artifacts. The PR must remain draft unless the four deck pairs are unequivocal and every physical acceptance criterion passes.

No runtime or device-support changes. This PR does not register 22f0:000f, detach snd-usb-audio, implement isochronous transport in Ozzy, or claim a physical capture-channel map.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant