#Known gaps
- Resize. Host-driven (drag-to-resize) round-trips through
CLAP, VST3, AU v3, and LV2.
- VST2. Resizable editors aren't wired, so a VST2 editor
opens (and stays) at its natural size.
- AU v2. Resizable editors round-trip under AU v3 but not
the AU v2 component, so an AU v2 editor opens at its natural
size. Use AU v3 for resizable GUIs on macOS.
- AAX (Pro Tools). A plugin can resize its own editor (the
GUI's
request_resize forwards to
AAX_IViewContainer::SetViewSize()), but the reverse
direction isn't wired: AAX's AAX_CEffectGUI exposes no
inbound size-change callback like VST3's onSize or CLAP's
gui_set_size, so dragging the Pro Tools window edge doesn't
resize the editor.
truce-vizia. Editor resize is a no-op: set_size records
the new logical size but vizia's WindowHandle exposes no
resize entry point callable from outside its event loop, so the
view doesn't repaint at it. Ship vizia plugins fixed-size.
Pending a vizia_baseview upstream patch.
- Factory presets. Ship to CLAP, VST3, AU (macOS + iOS), and LV2.
- VST2. No
.fxp emission yet.
- AAX (Pro Tools). Not emitted as AAX
.tfx yet, so they
don't appear in Pro Tools' preset menu.
- Sidechain / aux inputs. A
with_sidechain_input(...) layout gives
the plugin a separate sidechain bus on CLAP, VST3, AU (v2 + v3), AAX,
VST2, and the standalone host.
- LV2. Sidechain plugins run main-only. The LV2
.ttl port list is
generated at compile time from the plugin category, so it can't yet
read the sidechain ports from bus_layouts(); declaring them only at
runtime would shift every port index past the main bus. The wrapper
drops the sidechain to keep the runtime port map aligned with the
.ttl (a one-time log notes this), so the plugin loads and processes
its main bus normally - it just receives no sidechain signal. Full
support requires install-time .ttl rendering from the real layout.
- Signing & distribution.
- Retail iLok / PACE round-trip. PACE wraptool is wired and
exercised against a dev iLok account; we haven't yet
round-tripped through a retail iLok + retail Pro Tools install.
- iOS GUI backends.
truce-vizia. vizia hard-pins vizia_baseview at a rev that
doesn't build for aarch64-apple-ios* (baseview has no UIKit
platform impl), so the crate is gated
#![cfg(not(target_os = "ios"))]. Use the built-in editor,
truce-egui, truce-iced, or truce-slint on iOS.
- Bring-your-own container.
cargo truce install --ios
always emits the bundled Swift container template (title,
Play, status, hamburger overlay). Plug-ins that need a bespoke
shell hand-author it outside the pipeline and load the
.appex truce builds.
- MIDI 2.0. Full MIDI 2.0 (UMP channel-voice, high-resolution and
per-note controllers) only round-trips on CLAP and AU v3, and
only when the host negotiates the 2.0 protocol. A plugin that declares
a MIDI 2.0 port still receives MIDI 1.0 from a host that offers only
1.0 - most DAWs today - with the host down-converting on the way in.
- VST3. No UMP transport. Per-note messages round-trip through
VST3 note expression, but a MIDI 2.0 channel-voice message with no
note-expression equivalent (an unmapped per-note CC, say)
down-converts to a MIDI 1.0 channel message on output.
- VST2, AU v2, AAX, LV2. MIDI 1.0 only - 3-byte packets on VST2 /
AU v2 / AAX, MIDI 1.0 byte streams in the LV2 Atom. Input is always
MIDI 1.0, and 2.0 channel-voice output down-converts to 1.0. Any
message with no 1.0
form (per-note controllers, per-note pitch bend) is dropped.
- MPE / per-note expression. Per-note expression - MPE (per-note
pitch bend + CC spread across MIDI channels) and MIDI 2.0 per-note
controllers - round-trips on CLAP, VST3, and AU hosts that route
multi-channel MIDI to an instrument.
- Pro Tools (AAX). Pro Tools treats each MIDI channel as a
separate track, so multi-channel MIDI does not survive on a single
instrument track: notes reaching an instrument collapse onto one
channel (a multi-channel file even imports as one track per
channel). A note effect that fans notes across channels into an
instrument on the same track (an MPE-style voice allocator) loses
the spread in Pro Tools, though the same chain works in CLAP, VST3,
and AU hosts. This is a Pro Tools MIDI-routing limitation, not a
wrapper gap - truce emits and preserves the per-note channels
correctly on the AAX wire. AAX-specific note expression has not been
wired, so there is no per-note-expression path to Pro Tools today.
- Standalone Settings / Presets menu on Linux. The X11
standalone has no native menu bar, so the audio / MIDI Settings
pickers and the Presets menu aren't drawn on Linux. Drive those
from the keyboard shortcuts (Cmd/Ctrl+S and Cmd/Ctrl+Shift+S for
Save / Save As, transport and octave keys) and the CLI flags
(
--preset, --output, --midi-input, ...) instead; macOS and
Windows get the full menus.
#Future