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) |
|---|---|
PluginLogic | Plugin |
PluginExport | PluginScanner |
AudioBuffer | AudioBuffer |
EventList | EventList |
ProcessContext | ProcessContext |
BusLayout | BusLayout |
PluginInfo | PluginInfo |
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
Plugintrait 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_unwindhelpers for FFI boundaries between rack and plugin code.