The built-in plugins had no subharmonic synthesizer. Subharmonic (`subharmonic`, Harmonic category, also offline as AudioSuite) adds the octave below a lower and an upper band of the input. The Range picks the two band frequencies (120-180, 80-120, 60-90 or 40-60 Hz). Each band band-passes the input at its frequency and multiplies it by a flip-flop that changes sign on every rising zero crossing, which moves the band an octave down at a level that follows the band. A direct band adds the input's own bass. Each band has a gain from -120 to +24 dB and a solo; a solo also mutes the dry signal. Drive raises the summed bands into one of six saturation characters, and HP and LP filters (5 to 1000 Hz, Q 0.1 to 5) shape the result. Below 50 % Mix the dry signal stays at full level, above 50 % the wet signal does, and Wet Solo mutes the dry signal. Input and Output run from -18 to +18 dB. The Total row in docs/plugin-parity.md now counts 25 processors and 3 instruments, the entries in the built-in registry, and its Instruments row lists `sampler` and no longer lists the Sampler as missing.
5.4 KiB
Plugin parity: built-in processors and plugin hosting
Last reviewed: 2026-10-10 · Last updated: 2026-10-24 · Change: trivial (Subharmonic; previously trivial: Sampler ping-pong loop phase (#463); previously minor: plugin editors on Windows) · Target: Avid Pro Tools Ultimate 2026.4.1
Pro Tools users live in plugins: the bundled set covers everyday mixing, and third-party plugins cover the rest. This doc tracks both. Our plugins have our own names and are written from scratch (clean-room rule): Avid plugin names are not used here, only categories.
Built-in plugins and AudioSuite: breadth ~40 %, ready ~35 % (80–120 h). Third-party hosting: breadth ~70 %, ready ~45 % (40–60 h). Both estimated.
Built-in processors (measured from crates/dsp/src/plugins)
| Category | Pro Tools bundles (approx., by category) | SoundCraft (ids) | Gap |
|---|---|---|---|
| EQ | 1-band and 7-band EQ, channel strip, vintage EQ models | eq_1band, eq_7band, channel_strip |
Vintage models, linear phase, dynamic EQ; parametric UI (#139) |
| Dynamics | compressor/limiter, expander/gate, de-esser, maximizer, vintage compressors, multiband | compressor, expander_gate, de_esser, maximizer |
Vintage/opto models, multiband, sidechain input (no key input anywhere) |
| Reverb | algorithmic room/plate/hall; convolution (paid tier) | room_reverb, plate_reverb |
Hall/chamber, convolution, early-reflection editor |
| Delay | modulated delay, tape/analog delays | mod_delay |
Tape, ping-pong, multi-tap, tempo-sync depth |
| Modulation | chorus, flanger, phaser, tremolo, ring/frequency shift | chorus, flanger, phaser |
Tremolo, auto-pan, ring modulation |
| Harmonic | lo-fi, rectifier, amp simulation, saturation, tape, subharmonic synthesis | lofi, rectifier, saturator, subharmonic (octave-down bass from a lower and an upper band, direct bass, drive characters, HP and LP filters) |
Amp and cabinet models, tape; subharmonic MIDI tuning and surround (LFE) version |
| Pitch and time | pitch shift, varispeed effects, time shift | pitch_shifter, time_shift |
Formant control, varispeed effect, pitch correction |
| Utility | trim, gain, invert, DC offset, signal generator, dither, time adjuster | trim, gain, invert, dc_offset_removal, signal_generator, dither |
Time adjuster, meter/analyzer plugins, noise shaping options |
| Instruments | several virtual instruments (multi-sampler, piano, drum machine, organ, synths, sample player; Massive X Player added in 2026.4) | subtractive_synth, drum_synth, sampler; mix.instrument takes the instrument's parameters in params and refuses unknown fields (#265). The sampler's ping-pong loop keeps its phase when a step is wider than the loop (#463). |
Piano, organ, wavetable, content library |
| Total | ≈ 80 processors and instruments (estimate from Avid's bundle documentation) | 25 processors + 3 instruments |
AudioSuite: every catalog AudioSuite leaf maps to one of our processes (AUDIOSUITE in
crates/ui-egui/src/menus.rs), so the AudioSuite menu is 100 % present. Depth: no preview,
handles, "clip by clip / entire selection" and multi-input modes beyond the basics; hosted
plugins can't be used offline as AudioSuite yet.
Fidelity: unmeasured. Nothing compares a SoundCraft processor's frequency response, gain
reduction curve or reverb tail with the Pro Tools equivalent (G-07 in gaps.md).
User report #152: a saved instrument level does not reach the bounce.
Third-party plugin hosting
| Feature | Pro Tools | SoundCraft | Notes |
|---|---|---|---|
| Plugin format | AAX only (Native and DSP) | CLAP, VST3, Audio Units (macOS) | Users' libraries mostly ship VST3/AU too. AAX (#109) needs Avid's SDK licence and PACE signing: owner decision, likely never |
| VST2, LV2, LADSPA | — | ❌ (#30) | Beyond Pro Tools; VST2 SDK is no longer licensable |
| Scan, vendor menus, instrument picker | ✅ | ✅ | #23 |
| Audio, parameters, automation, latency (PDC) | ✅ | ✅ | |
| Notes / MIDI to instruments | ✅ | ✅ | But no live MIDI input (G-02) |
| State saved in sessions, presets | ✅ | ✅ | |
| Create/destroy off the audio thread | ✅ | ✅ | |
| Editors: CLAP | — | 🟡 floating windows; embedded editors on Windows | Embedded on macOS/Linux missing |
| Editors: VST3 | — | 🟡 macOS (verified with a commercial pitch editor) and Windows (verified with a free JUCE compressor) | Linux views missing |
| Editors: AU | — | ❌ | Cocoa view hosting missing |
| Multiple editor pages | ✅ | 🟡 | #6 |
| macOS hardened-runtime entitlement for third-party code | ✅ | ❌ | #153, #149 — signed builds refuse third-party VST3 |
| Sidechain / key input | ✅ | ❌ | All three hosts |
| ARA 2 (pitch/time editors in the timeline) | ✅ | ❌ | Menu leaves Track/Clip/Window ▸ ARA still missing |
| Crash isolation | in-process (DSP on HDX) | in-process | Out-of-process hosting would beat Pro Tools |
| Plugin delay reporting changes on the fly | ✅ | 🟡 | Aux insert latency bug #103 (PR #133) |
Revision history
| Date | Change | Summary |
|---|---|---|
| 2026-10-24 | trivial | Harmonic: Subharmonic (subharmonic) |
| 2026-10-13 | trivial | Sampler ping-pong loop phase (#463) |
| 2026-10-13 | trivial | mix.instrument sets built-in instrument parameters in params (#265) |
| 2026-10-12 | minor | Editors: VST3 and embedded CLAP editors on Windows |
| 2026-10-10 | major | Created: built-in processor inventory by category and third-party hosting checklist |