Skip to main content

Crate truce_rack_core

Crate truce_rack_core 

Source
Expand description

Host-side core for the rack audio-plugin framework.

truce-rack-core defines the contracts every format wrapper (truce-rack-clap, truce-rack-vst3, truce-rack-au, …) implements: the Plugin trait, the AudioBuffer / EventList / ProcessContext passed into process, the BusLayout that declares bus topology, and the FFI-edge catch_unwind helpers in wrapper.

No FFI lives here. The crate compiles on every platform with no system dependencies — a consumer that depends on truce-rack-core and on a single format wrapper picks up exactly that format’s transitive deps.

§Mapping from truce

truce-rack-core mirrors truce-core on the host side. The names parallel deliberately:

truce (plugin)rack (host)
PluginLogicPlugin
PluginExportPluginScanner
AudioBufferAudioBuffer
EventListEventList
ProcessContextProcessContext
BusLayoutBusLayout
PluginInfoPluginInfo
wrapper::run_*wrapper::run_*

A host targeting one format depends on truce-rack-core plus that format’s wrapper crate; a multi-format host depends on truce-rack-core plus each wrapper it needs.

Re-exports§

pub use buffer::AudioBuffer;
pub use bus::BusKind;
pub use bus::BusLayout;
pub use bus::ChannelConfig;
pub use editor::PluginEditor;
pub use editor::WindowHandle;
pub use error::Error;
pub use error::Result;
pub use events::Event;
pub use events::EventBody;
pub use events::EventList;
pub use events::MidiData;
pub use info::ParameterInfo;
pub use info::PluginCategory;
pub use info::PluginInfo;
pub use info::PresetInfo;
pub use plugin::Plugin;
pub use plugin::PluginCore;
pub use plugin::ProcessContext;
pub use plugin::ProcessStatus;
pub use sample::Sample;
pub use scanner::PluginScanner;
pub use state::StateEnvelope;
pub use state::StateLoadError;
pub use transport::TransportInfo;

Modules§

buffer
Planar audio buffer passed into crate::Plugin::process.
bus
Bus topology declaration.
editor
Host-side editor (GUI) hosting interface.
error
Errors surfaced by the host framework.
events
Sample-accurate event list shared between MIDI / parameter automation / transport flags.
info
Metadata types — what scanners hand back, what plugins report about themselves.
plugin
The host-facing Plugin trait and its supporting per-block types.
sample
Audio sample type abstraction.
scanner
Plugin discovery trait.
state
Versioned envelope around plugin state blobs.
transport
Host transport snapshot passed into crate::Plugin::process.
wrapper
catch_unwind helpers for FFI boundaries between rack and plugin code.