soundcraft/docs/gaps.md

12 KiB
Raw Permalink Blame History

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_device for agents); f32 and 16/32-bit integer devices; ASIO behind the opt-in asio build 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_engine still stores device/buffer_size in 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_devices and setup.midi_studio only store names. You cannot record from a keyboard, play a hosted instrument live, drive external synths, or send MIDI clock/MTC. midi_editor.rs:288 notes 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 .scraft JSON.
  • 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). .ptx is 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-validation entitlement in the signed build, so hardened runtime refuses third-party VST3 bundles (#153, #149). AU editor views (crates/au-host/src/lib.rs header: "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