Skip to main content

Crate ara2_bridge

Crate ara2_bridge 

Source
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

SideTraitStatus
PluginDocumentController (25 methods)Full vtable
HostPlaybackRegionHostTrait defined
HostModelUpdateControllerTrait defined
HostArchiveReaderHost / ArchiveWriterHostTrait 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§

ArchiveReaderHost
Host-side archive reader interface.
ArchiveWriterHost
Host-side archive writer interface.
DocumentController
Plugin-side document controller.
ModelUpdateController
Host-side model update interface.
PlaybackRegionHost
Host-side playback region interface.

Functions§

build_araarchivingcontroller_vtable
build_araaudioaccesscontroller_vtable
build_aracontentaccesscontroller_vtable
build_aramodelupdatecontroller_vtable
build_araplaybackcontroller_vtable
build_document_controller_instance
Build a C-compatible ARADocumentControllerInstance from a trait object.