Skip to main content

Crate truce_rack_au

Crate truce_rack_au 

Source
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 AudioComponentFindNext across 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 AudioUnitRender into a per-block AudioBufferList whose 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 AUv2 Cocoa 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.