Expand description
Safe Rust bindings for the Celemony ARA2 SDK v2.3.0.
ARA2 (Audio Random Access) lets audio plugins access DAW audio regions directly — not just streaming audio at the insert point. This crate wraps the C API as Rust traits with vtable builders.
§Supported interfaces
| Side | Trait | Status |
|---|---|---|
| Plugin | DocumentController (25 methods) | Full vtable |
| Host | PlaybackRegionHost | Trait defined |
| Host | ModelUpdateController | Trait defined |
| Host | ArchiveReaderHost / ArchiveWriterHost | Trait defined |
Host-side vtables are instantiated by the ARA2 SDK/library, not by this crate. This crate provides the Rust trait definitions that host implementations (like GAW) implement. The C↔Rust bridge lives in the host application. directly — not just streaming audio at the insert point. This crate wraps the C API as Rust traits with vtable builders.
§How ARA2 Works
The DAW calls into your plugin through C structs of function pointers
(vtables). Each vtable has a structSize field that tells the host
which functions are present; null entries mean “not supported.”
Built against ARA2 SDK v2.3.0. This crate implements 25 of 55 vtable entries for the plugin side. Host-side vtables are constructed by the ARA2 SDK’s C++ library via VST3/CLAP/AU factory queries.
§Quick Start
use ara2_bridge::*;
use ara2_bridge_sys::*;
struct MyPlugin;
impl DocumentController for MyPlugin {
// ... implement all 25 methods
}
// Build the C-compatible instance for the DAW
let controller = Box::new(MyPlugin);
let instance = build_document_controller_instance(controller);Traits§
- Archive
Reader Host - Host-side archive reader interface.
- Archive
Writer Host - Host-side archive writer interface.
- Document
Controller - Plugin-side document controller.
- Model
Update Controller - Host-side model update interface.
- Playback
Region Host - Host-side playback region interface.