Expand description
Audio Unit v2 host for the truce-rack framework. Apple-only.
Built on objc2-audio-toolbox — the modern Rust bindings
that replace the C++ AudioToolbox scanner the legacy rack 0.4
relied on. No cmake, no bridging-header step.
§Status
- Scan via
AudioComponentFindNextacross the AU v2 type families (Effect,MusicDevice, Generator, Mixer,MusicEffect,MIDIProcessor). Each match yields one [PluginInfo] with the AU’s four-CC packed as a"type:sub:mfr"unique_id. - Load via
AudioComponentInstanceNew. - Process via
AudioUnitRenderinto a per-blockAudioBufferListwhose buffers point directly at the host’s output planes (see [AuPlugin::process]). - MIDI via
MusicDeviceMIDIEvent. Routes channel-voice messages with sample-accurate offsets; raw bytes pass through the same call. Non-MIDI-accepting effects no-op silently. - Editor via the
AUv2Cocoa view (kAudioUnitProperty_CocoaUI).
AU v3 plugins that set kAudioComponentFlag_RequiresAsyncInstantiation
still need the async path and are not yet loadable through this
crate; truce-rack-au3 forwards them here regardless.