Skip to main content

Crate truce_rack_vst3

Crate truce_rack_vst3 

Source
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:

  1. dlopen the binary inside the bundle.
  2. bundleEntry() on macOS (no-op elsewhere).
  3. GetPluginFactory()IPluginFactory.
  4. createInstance(cid, IComponent::IID)IComponent.
  5. IPluginBase::initialize(host_context) on the component.
  6. Cast to IAudioProcessor.
  7. IComponent::getControllerClassId(&mut cid2) — if separate, factory.createInstance(cid2, IEditController::IID) and initialize it. Otherwise cast the component itself.
  8. Connect the component and controller IConnectionPoints (separate-controller case only).

Activate calls setBusArrangements, setupProcessing, setActive(true), setProcessing(true). Deactivate reverses.

Structs§

Vst3Plugin
One loaded VST3 plugin instance.
Vst3Scanner
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.