Expand description
VST3 host implementation for the truce-rack framework.
Built on the community vst3 Rust bindings — no Steinberg SDK
submodule, no cmake. A fresh checkout builds in seconds.
§Lifecycle
Each .vst3 bundle exports GetPluginFactory (and on macOS
bundleEntry / bundleExit). Loading walks:
dlopenthe binary inside the bundle.bundleEntry()on macOS (no-op elsewhere).GetPluginFactory()→IPluginFactory.createInstance(cid, IComponent::IID)→IComponent.IPluginBase::initialize(host_context)on the component.- Cast to
IAudioProcessor. IComponent::getControllerClassId(&mut cid2)— if separate,factory.createInstance(cid2, IEditController::IID)and initialize it. Otherwise cast the component itself.- Connect the component and controller
IConnectionPoints (separate-controller case only).
Activate calls setBusArrangements, setupProcessing,
setActive(true), setProcessing(true). Deactivate reverses.
Structs§
- Vst3
Plugin - One loaded VST3 plugin instance.
- Vst3
Scanner - VST3 scanner.
Constants§
- FORMAT
- Format identifier used on returned
PluginInfo. - VST3_
EXTENSION - Bundle directory suffix every VST3 plugin uses.
Functions§
- default_
vst3_ paths - Standard VST3 install locations for the current OS.