Setup > Playback Engine now chooses the audio system (cpal host), output and input device, device sample rate and buffer size, kept per machine with the UI preferences and applied by reopening the devices (refused while recording; the transport position is kept). ui.audio_device does the same for agents and lists every system with its devices, channels, rates and buffer range. Player and recorder open the chosen device, fall back to the defaults for anything unavailable (unplugged device, unsupported rate), retry with the device's default buffer when the chosen one is refused, and convert 32/16-bit integer devices from and to the f32 mix through scratch buffers allocated up front (no allocation in the callbacks). ASIO is behind an opt-in 'asio' feature (playback and app): building it downloads Steinberg's ASIO SDK (proprietary licence or GPLv3) and needs LLVM, so it stays off by default. Verified on Windows with an SSL 2+: WASAPI output/input switching and buffer 256, ASIO duplex at 128. Docs: G-01 shrunk, hardware-parity rows, roadmap log. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
12 KiB
Where SoundCraft falls short of Pro Tools
Last reviewed: 2026-10-10 · Last updated: 2026-10-12 · Change: minor (G-01: audio device settings and opt-in ASIO) · Target: Avid Pro Tools Ultimate 2026.4.1
Every known shortfall, one entry each, ranked by how much it stops a Pro Tools user from doing
real work in SoundCraft. This is the work list: pick from the top. Rows marked alpha blocker
fail the core-workflow gate in roadmap.md and keep SoundCraft pre-alpha. Numbers and weights live in
target-app-parity.md; the plan that orders these into milestones is
roadmap.md. Hours are Opus 5.5 agent-hours (calibration in target-app-parity.md).
Estimates marked "≈" are judgements; issue numbers are storytold/soundcraft GitHub issues.
When you close a gap, delete its entry (or shrink it) in the same PR, and bump the timestamp.
Ranked gaps
| # | Gap | Dimension | Doc | Est. (h) |
|---|---|---|---|---|
| G-01 | Alpha blocker. No channel routing or duplex low-latency path (device, rate and buffer choice done; ASIO opt-in) | Hardware | hardware-parity.md | 15–25 |
| G-02 | Alpha blocker. No MIDI device input or output | Hardware / MIDI | hardware-parity.md | 20–35 |
| G-03 | Alpha blocker. Cannot exchange sessions with Pro Tools (no AAF/OMF, no .ptx) |
File formats | file-format-parity.md | 50–90 |
| G-04 | Open correctness bugs in features counted as done (~25 issues) | Stability | this file | 25–40 |
| G-05 | (Entitlement part: alpha blocker for the mix row) Third-party VST3s blocked in the signed macOS build; AU editors missing | Ecosystem | plugin-parity.md | 15–25 |
| G-06 | (Record-to-disk part: alpha blocker for the tracking row) Sources decoded whole into RAM; recording into RAM | Performance | hardware-parity.md | 15–25 |
| G-07 | Nothing is compared against Pro Tools' output (no fidelity harness) | Features | this file | 20–30 |
| G-08 | Built-in plugin catalogue thin and unverified | Features | plugin-parity.md | 80–120 |
| G-09 | English only, no string catalog, no CJK/RTL rendering | Localization | localization-parity.md | 70–110 |
| G-10 | No control surfaces (HUI/MCU, EUCON) | Hardware | hardware-parity.md | 40–70 |
| G-11 | No external sync (MTC, LTC, MIDI clock, video reference) | Hardware | hardware-parity.md | 15–25 |
| G-12 | Immersive delivery: no Dolby Atmos/ADM BWF, MPEG-H, binaural | Features | file-format-parity.md | 50–80 |
| G-13 | Sidechain inputs, ARA, out-of-process plugin sandboxing | Ecosystem | plugin-parity.md | 30–50 |
| G-14 | Windows/Linux/Web exercised only lightly at runtime; no PR CI running the tests | Platforms / Stability | this file | 20–40 |
| G-15 | Elastic Audio depth: one algorithm, no Elastic Pitch | Features | target-app-parity.md | 30–45 |
| G-16 | Session templates, track presets, workspace browser, batch rename | Features | target-app-parity.md | 25–40 |
| G-17 | Video: HEVC/DNx decode, video export, external timecode | Features / Formats | file-format-parity.md | 30–50 |
| G-18 | Speech-to-text transcription | AI | this file | 30–50 |
| G-19 | UI feel: generic plugin windows, shortcut collisions, pro-grade meters and scaling | UI/UX | ui-parity.md | 60–100 |
| G-20 | MIDI/instrument depth: MIDI learn, sampler, notation editing | Features | target-app-parity.md | 40–60 |
| G-21 | Compressed export (MP3, AAC/M4A, Ogg/Opus) | File formats | file-format-parity.md | 10–20 |
| G-22 | Avid cloud services (collaboration, Sketch, Splice, sign-in) | Ecosystem | — | not estimated (owner decision) |
Details
G-01. Audio interface support
- Done (2026-10-12): Setup › Playback Engine chooses the audio system, output and input
device, sample rate and device buffer size (kept with the preferences, per machine;
ui.audio_devicefor agents); f32 and 16/32-bit integer devices; ASIO behind the opt-inasiobuild feature (verified on Windows with an SSL 2+ at 128 samples). - Missing: routing to physical channels (I/O Setup), one duplex stream on one clock (input and
output are still separate cpal streams), latency reporting and record-offset compensation, ASIO
in official builds (owner decision: Steinberg's SDK is proprietary or GPLv3), JACK, and
verification on macOS and Linux. The mix still runs in fixed 512-sample blocks.
setup.playback_enginestill storesdevice/buffer_sizein the session, unused. - Evidence: code above; Playback Engine window says "Mix block size: 512 samples"; issue #42 (no input device selection, forced monitoring feedback with virtual routing).
- Impact: blocks tracking with any multichannel interface; latency makes overdubs hard.
- Estimate: ≈ 25–40 h (device enumeration and selection, buffer size, duplex stream with one clock, ASIO feature build, per-channel I/O mapping into I/O Setup, latency reporting and record-offset compensation). Needs hands-on hardware testing.
G-02. MIDI devices
- Missing: all MIDI hardware I/O. No
midir/CoreMIDI/WinMM/ALSA sequencer code exists;setup.midi_input_devicesandsetup.midi_studioonly store names. You cannot record from a keyboard, play a hosted instrument live, drive external synths, or send MIDI clock/MTC.midi_editor.rs:288notes audition "needs a live MIDI input path". - Impact: MIDI production is limited to drawing notes and importing SMF.
- Estimate: ≈ 20–35 h (device layer, realtime input to armed tracks and instruments with timestamps, MIDI record/merge/loop, thru, output tracks, clock out).
G-03. Session interchange with Pro Tools
- Missing: opening or saving
.ptx/.ptf, AAF and OMF import and export (#40), Media Composer–compatible sessions. Our session format is.scraftJSON. - Impact: the standard's main-format bar for beta. A Pro Tools user cannot bring a project in or hand one back; post-production (picture editors deliver AAF) is blocked.
- Estimate: AAF/OMF import + export ≈ 50–90 h (FilmCraft already writes AAF/OMF; we can learn
from it but not share code).
.ptxis proprietary and undocumented: owner decision on whether black-box format study is in the clean-room rules; not included in the estimate.
G-04. Correctness bugs in "done" features
Open on 2026-10-10 (several have PRs open): editing #3, #5, #140, #144; clip/session #86 (PR #123), #88 (PR #130), #91 (PR #124), #92 (PR #132); automation #104 (PR #134); mix/bounce #59 (PR #131), #103 (PR #133), #152; playback #101 (PR #129); MIDI #87, #98 (PR #125); import #89 (PR #128); CLI #95, #96 (PR #126, #127); MCP #145 (PR #146); web #63, #64, #136; Clip List #4 (PR #75); plugin view #6; shortcuts #7, #41; launch #142; Linux #45, #107.
- Impact: each one is small, but together they say "presence is not parity": an outside contributor found seven in one sitting (#116–#122).
- Estimate: ≈ 25–40 h at 0.5–1.5 h each, plus review of the open PRs.
G-05. Plugin hosting on macOS
- Missing: the
com.apple.security.cs.disable-library-validationentitlement in the signed build, so hardened runtime refuses third-party VST3 bundles (#153, #149). AU editor views (crates/au-host/src/lib.rsheader: "Not hosted yet: Audio Unit editor views"). Embedded CLAP GUIs; VST3 editors on Windows/Linux. - Estimate: ≈ 15–25 h (entitlement ≈ 1 h; AU Cocoa views and VST3 HWND/X11 views most of it).
G-06. Memory-bound media
- Missing: streaming sources from disk; recording to disk. Every source is decoded whole into
the
SourcePool; takes accumulate in RAM until stop (PR #84 open). - Impact: hour-long multitrack sessions and long takes exhaust memory; a crash during a long take loses it.
- Estimate: ≈ 15–25 h.
G-07. Fidelity harness against Pro Tools
- Missing: any measured comparison: null tests of bounces of the same material, fade curve
and pan-law checks, plugin frequency/dynamics responses, elastic-audio quality, automation
timing. Pro Tools is installed; it can be driven black-box with synthetic sessions (outputs kept
under
plan/, never committed). - Estimate: ≈ 20–30 h for the harness and the first 20 scored cases; turns many "≈" in target-app-parity.md into measurements.
G-08. Built-in plugins
See plugin-parity.md: 26 processors + 2 instruments against Pro Tools'
roughly 80 bundled processors and instruments; no fidelity checks; generic parameter UIs; EQ
parametric request #139. ≈ 80–120 h.
G-09. Localization
See localization-parity.md: no catalog, every string literal in code;
egui has no complex-script shaping or RTL; no CJK font fallback (PR #141 open). ≈ 70–110 h plus
native-speaker review.
G-10. Control surfaces
None: no HUI or Mackie Control, no EUCON (Avid-proprietary, needs Avid's SDK: owner decision), no generic MIDI controller mapping. Pro Tools users on S1/S3/S4/S6/Dock or HUI devices can't switch. ≈ 40–70 h for HUI/MCU plus a mapping layer; hardware needed to verify.
G-11. Sync
No MTC/LTC chase or generation, no MIDI Beat Clock (setup.midi_beat_clock stores a flag only),
no video reference or word clock awareness, no Satellite-style linking. ≈ 15–25 h after G-01/G-02.
G-12. Immersive delivery
No Dolby Atmos renderer integration, ADM BWF import/export, re-renders, binaural monitoring, MPEG-H (new in Pro Tools 2026.4), surround/object automation. ≈ 50–80 h; Dolby's renderer and SDKs are licensed, so we'd write our own ADM and object renderer.
G-13. Plugin ecosystem depth
No sidechain (key input) buses for any host; no ARA (Melodyne-style editing is a menu in Pro Tools); plugins run in-process, so a crashing plugin can take the session down. ≈ 30–50 h. AAX cannot be hosted (#109): Avid's AAX SDK licence and PACE signing; owner decision, likely never.
G-14. Platforms and CI
Only freebsd.yml and windows-arm64.yml run on pull requests, and only for manifest paths;
nothing runs cargo xtask ci on PRs. Windows and Linux have startup and rendering reports
(#41, #45, #107, #142). ≈ 20–40 h (a PR CI matrix plus runtime smoke tests on three OSes).
G-15. Elastic Audio depth
One warp algorithm; Pro Tools offers several per track (polyphonic, rhythmic, monophonic, varispeed, high-quality offline) plus Elastic Pitch and warp-marker editing depth. ≈ 30–45 h.
G-16. Session management
No session templates, track presets, workspace/sound browser with previews, batch rename (new in 2026.4), disk-usage and relink depth. ≈ 25–40 h.
G-17. Video and post
No HEVC, DNxHD/HR or AV1 decode; no bounce with video; no external timecode/9-pin; no iXML field-recorder conform. ≈ 30–50 h.
G-18. Speech-to-text
Pro Tools transcribes dialogue to a searchable transcript (upgraded in 2026.4). We have a settings command only. Needs an openly licensed local speech model. ≈ 30–50 h.
G-19. UI feel
See ui-parity.md. ≈ 60–100 h.
G-20. MIDI and instrument depth
MIDI learn, a sampler (PR #108), drum machine depth, notation editing (tuplets, lyrics, articulations, parts). ≈ 40–60 h.
G-21. Compressed export
Bounce writes WAV/BWF/RF64, AIFF and FLAC; Pro Tools also writes MP3 and AAC/M4A in Bounce Mix. ≈ 10–20 h (pure-Rust encoders).
G-22. Avid cloud services
Collaboration, cloud projects, Sketch, Splice, Learn, sign-in: 11 of the 30 menu leaves still missing. Out of scope unless the owner decides otherwise.
Revision history
| Date | Change | Summary |
|---|---|---|
| 2026-10-12 | minor | G-01 shrunk: audio device, rate and buffer choice; opt-in ASIO |
| 2026-10-10 | minor | Marked the alpha blockers (G-01, G-02, G-03; parts of G-05 and G-06) from the core-workflow gate |
| 2026-10-10 | major | Created from the full re-measure against Pro Tools Ultimate 2026.4.1: 22 ranked gaps with evidence and estimates |