Expand description
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-rackEventList. - 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.
Structs§
- Lv2Plugin
- One loaded LV2 plugin.
- Lv2Scanner
- LV2 scanner.
Constants§
- FORMAT
- Format identifier used on returned
PluginInfo.