Skip to content

Host Compatibility Matrix

Tracks which DAWs Pulp plug-ins have been validated against, per format and capability. Maintained alongside planning/production-readiness/STATUS.md — when an entry moves from unvalidated to stable here, the corresponding row in STATUS can claim production_validated: true.

The point of the matrix is to prevent optimism drift: "it compiled" ≠ "it works in Cubase." Adding a row here means a human loaded a Pulp plug-in in that host and exercised the capability.

Status legend: - ✅ stable — validated on latest host release, no known issues - 🟡 usable — loads and runs; at least one known quirk documented below - 🔴 broken — loads but produces incorrect results - — unvalidated — nobody has tried yet - n/a unsupported by host or format — the DAW or plug-in format does not expose that capability

Each non-placeholder update must cite durable evidence. For manual DAW sessions, store the filled-in script and .daw-bench.json manifest under docs/validation/daw-bench/results/YYYY-MM-DD/ and run:

python3 tools/scripts/check_daw_bench_evidence.py \
    docs/validation/daw-bench/results/YYYY-MM-DD \
    --require-any
python3 tools/scripts/check_host_matrix_evidence.py
python3 tools/scripts/summarize_daw_bench_results.py \
    docs/validation/daw-bench/results \
    --require-any

The summary's missing-lane section is a backlog of scripted host/format benches that still need checked-in manifests. Do not treat those rows as validation evidence or promote matrix cells from them.

When closing the host-lab roadmap item, run the stricter completion gate:

python3 tools/scripts/summarize_daw_bench_results.py \
    docs/validation/daw-bench/results \
    --require-any \
    --require-complete-scripted-lanes

It must pass before claiming that every scripted DAW-bench lane has checked-in evidence.

If a capability stays n/a, name the host or format reason in the Notes column. If it stays , do not infer support from adapter unit tests, pluginval, clap-validator, or a successful build.


VST3

Host Version Load Params MIDI Sidechain Multi-bus ARA Notes
Cubase 13 ARA validation target for 6.3
Studio One 7 ARA validation target for 6.3
Reaper 7.74 🟡 🟡 🟡 🟡 VST3 bench evidence: docs/validation/daw-bench/results/2026-06-12/
Live 12 n/a Live doesn't support ARA
FL Studio 21 n/a
Bitwig 5 n/a Prefers CLAP path

CLAP

Host Version Load Params MIDI Sidechain Multi-bus ARA Notes
Bitwig 5 Bitwig's ARA extension for CLAP is in progress
Reaper 7.74 🟡 🟡 🟡 CLAP bench evidence: docs/validation/daw-bench/results/2026-06-12/
Studio One 7 CLAP-ARA bridge available

AU (macOS)

Host Version Load Params MIDI Sidechain ARA Notes
Logic Pro 11 ARA validation target for 6.4
GarageBand 10 n/a
Live 12 n/a
MainStage 3 n/a

AUv3 (iOS + iPadOS)

Host Version Load Params MIDI Notes
AUM iPadOS Primary target; PR #227 example
GarageBand iOS 2.4+
Cubasis 3
Logic Pro iPad 1.1+

LV2 (Linux)

Host Version Load Params MIDI Notes
Ardour 8
Carla 2.5
Reaper 7 LV2 support varies by distro

Validation recipe

For a (host, format, capability) row:

  1. Build the reference plug-in with PULP_ENABLE_ARA=ON (if the capability is ARA) or the plain profile otherwise.
    cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DPULP_ENABLE_ARA=ON -DPULP_ARA_SDK_DIR=$PWD/external/ara-sdk
    cmake --build build --target AraPitchTracker-CLAP PulpCompressor-VST3 PulpSynth-CLAP
    
  2. Install to the host's scan path (~/Library/Audio/Plug-Ins/VST3, ~/.clap, etc.).
  3. Launch the host; confirm the plug-in appears in its browser.
  4. For each capability column: load a project that exercises it.
  5. Params: automate one from the host, confirm roundtrip.
  6. MIDI: route from a MIDI track; confirm note-on reaches process().
  7. Sidechain: activate a second bus; confirm sidechain_input() returns non-null.
  8. Multi-bus: instantiate with multiple output buses, verify channel assignment.
  9. ARA: for Cubase/Studio One/Logic — drop an audio clip on the plug-in's track, open the ARA editor, confirm begin_editing logs (see examples/ara-pitch-tracker/).
  10. Update the cell in this file from to ✅/🟡/🔴 and, if non-stable, add a "Notes" entry below.

Known quirks

Quirk notes must point to the durable DAW-bench result folder or to a focused adapter/runtime issue. Keep this section scoped to behavior observed in a real host session; speculative accommodations belong in the host-quirks catalog until bench evidence exists.

Current checked-in matrix state has one usable REAPER VST3 row backed by the dated DAW-bench evidence above and one usable REAPER CLAP row backed by the same dated evidence folder. Do not promote any additional row or capability cell out of until the matching evidence manifest validates and confirms that capability.

See also

  • planning/production-readiness/STATUS.md — per-workstream rollup with production_validated flags that mirror this table's ✅ rows.
  • docs/validation/daw-bench/README.md — manual DAW-bench scripts and evidence manifest workflow.
  • docs/reference/host-quirks-policy.md — runtime host-quirk policy, tiers, and opt-in/opt-out controls.
  • .agents/skills/ara/SKILL.md — automation-side ARA usage recipes.
  • docs/guides/ara.md — Pulp's ARA integration overview.
  • examples/ara-pitch-tracker/ — the canonical smoke-test plug-in for the CLAP-ARA path.