LV2 host implementation for the truce-rack framework.
Built on lilv-sys — the Rust FFI for lilv, the standard
LV2 host library. lilv handles URI resolution, TTL parsing, and
the Turtle world load that LV2 demands; truce-rack-lv2 is the layer
that turns those C-API queries into [PluginInfo] entries and
drives lilv_plugin_instantiate / lilv_instance_run from the
truce-rack-core trait surface.
Status
- Scan via
lilv_world_load_all. - Load instantiates the plugin into a
LilvInstancewith the LV2urid#mapfeature. Each plugin owns its own world (instance pointers reference world-owned data). - Process connects audio / control / atom-sequence ports
per block and calls
lilv_instance_run. Audio ports point straight at the host's planes (zero-copy); control ports carry their declared default value; the MIDI input atom port is rebuilt each block from the truce-rack [EventList]. - MIDI in via atom sequence ports tagged
midi:MidiEvent. MIDI out is not yet drained back to the truce-rack host.
Build dependency
lilv-sys links against the system lilv-0 library. On macOS,
brew install lilv. On Debian/Ubuntu, apt install liblilv-dev.
Without those, cargo build -p truce-rack-lv2 will fail at link
time.