soundcraft/docs/hardware-parity.md

4.7 KiB
Raw Blame History

Hardware parity

Last reviewed: 2026-10-10 · Last updated: 2026-10-12 · Change: minor (audio device, rate and buffer choice; ASIO feature) · Target: Avid Pro Tools Ultimate 2026.4.1

A DAW is judged by how it drives audio interfaces, MIDI gear, control surfaces and sync. This is SoundCraft's weakest dimension. Ours is measured from crates/playback (cpal) and the absence of any MIDI-device or control-surface code; Pro Tools' from its documentation and Setup menus.

Hardware: ~12 % ready (estimated). Performance: ~35 % (estimated; nothing benchmarked against Pro Tools). Remaining ≈ 110–180 h for hardware, 40–70 h for performance.

Legend: ✅ works · 🟡 partial · ❌ missing.

Audio interfaces

Feature Pro Tools (macOS / Windows) SoundCraft macOS Windows Linux FreeBSD Web
Driver API Core Audio / ASIO 🟡 Core Audio via cpal 🟡 WASAPI shared via cpal; ASIO with the opt-in asio build feature (verified with an SSL 2+) 🟡 ALSA/Pulse via cpal; no JACK 🟡 cpal (ALSA layer) 🟡 Web Audio
Choose playback device ✅ Playback Engine 🟡 Setup › Playback Engine (not yet verified on macOS) ✅ Setup › Playback Engine (WASAPI, ASIO) 🟡 (not yet verified) 🟡 (not yet verified) ❌
Choose input device ✅ 🟡 Setup › Playback Engine (not yet verified on macOS) ✅ (WASAPI, ASIO) 🟡 (not yet verified) ❌ no recording ❌
Buffer size (32–2048) ✅ 🟡 device buffer when the driver allows it (not yet verified); mix in 512-sample blocks 🟡 device buffer 16–8192 (verified 128 on ASIO, 256 on WASAPI); mix in 512-sample blocks 🟡 (not yet verified) 🟡 ❌
Duplex stream on one clock ✅ ❌ separate input/output streams ❌ ❌ ❌ ❌
Hardware I/O mapping (I/O Setup to physical channels) ✅ 🟡 multichannel output in order; no per-channel map 🟡 🟡 🟡 ❌
Low-latency monitoring ✅ ❌ (options.low_latency_monitoring is a stored flag) ❌ ❌ ❌ ❌
Latency reporting and record offset compensation ✅ ❌ ❌ ❌ ❌ ❌
Sample rate follows the session; resample when it can't ✅ (switches device) 🟡 resamples (input pitch bug fixed, #28) 🟡 🟡 🟡 🟡
Avid HDX / HD Native DSP, Hybrid Engine DSP mode ✅ ❌ (out of reach: Avid hardware) ❌ ❌ ❌ ❌
Disk allocation / record to disk ✅ ❌ recording into RAM (PR #84) ❌ ❌ ❌ ❌

MIDI

Feature Pro Tools SoundCraft (all platforms)
MIDI input devices (keyboards, pads) ✅ ❌ no MIDI device layer at all (setup.midi_input_devices stores names)
MIDI output to external gear ✅ ❌
MIDI Thru, input filter ✅ ❌ (stored flags only)
MIDI Beat Clock out, MTC generate/chase ✅ ❌
MIDI learn / controller mapping ✅ (via surfaces and plug-in maps) ❌
Virtual MIDI keyboard ✅ (MIDI Keyboard window) 🟡 window exists, no live audition path

Control surfaces

Feature Pro Tools SoundCraft
EUCON (S1/S3/S4/S6, Dock, Control app) ✅ ❌ Avid-proprietary SDK; owner decision
HUI ✅ ❌
Mackie Control Universal ✅ (via HUI emulation and personalities) ❌
Generic MIDI controller personalities ✅ ❌

Sync and video hardware

Feature Pro Tools SoundCraft
LTC / MTC chase, 9-pin machine control ✅ (Ultimate) ❌
Word clock / video reference awareness ✅ via interface ❌
Video output to a second display or video card ✅ ❌ (video window only)
Satellite linking of systems ✅ ❌

Performance

Feature Pro Tools SoundCraft Evidence
Parallel mixing across cores ✅ ✅ soundcraft-mix renders independent strips in parallel (rayon)
Plugin delay compensation ✅ ✅
Disk streaming of long sources ✅ ❌ Whole files decoded into the SourcePool
Track count (Ultimate: 2,048 voices) ✅ unmeasured No benchmark exists; add cargo xtask bench
Real-time audio thread discipline ✅ ✅ No blocking/allocation in steady state, audio-thread-aware logger
Freeze / commit to save CPU ✅ 🟡 track.commit renders; track.freeze only sets a flag (no CPU saved)
GPU-accelerated UI — ✅ (wgpu/glow via eframe) llvmpipe X11 issue #107

Revision history

Date Change Summary
2026-10-12 minor Audio device settings: system, output, input, sample rate and buffer size; opt-in ASIO
2026-10-10 major Created: audit of audio interface, MIDI, control-surface, sync and performance support against Pro Tools 2026.4.1