Skip to main content

Crate truce_utils

Crate truce_utils 

Source
Expand description

Dependency-free utilities shared across the truce workspace.

  • cast — numeric-cast helpers for the audio-plugin → host FFI boundary (usizeu32 length casts, host f64 ↔ DSP f32, discrete-index ↔ normalized).
  • midi — MIDI value-domain normalize / denormalize between wire-native integers and f32 ranges, plus the spec’s MIDI 1.0 ↔ MIDI 2.0 bit-replication bridges.
  • shell_sidecar — sidecar-file path resolution shared by cargo-truce (writes the sidecar at install-time) and the truce::plugin! macro (reads it at runtime to locate the logic dylib for hot-reload).
  • slugify — ASCII-safe filesystem / IRI slug used by the LV2 staging path and runtime bundle-name derivation.

truce-core re-exports the modules above so consumers that pull truce-core don’t need a second dependency. Crates that want to avoid truce-core’s truce-params chain (notably cargo-truce) depend on truce-utils directly.

Modules§

cast
Numeric-cast helpers for the audio-plugin → host FFI boundary.
midi
MIDI value-domain helpers: normalize / denormalize between wire-native integers and f32 ranges.
shell_sidecar
Sidecar file that pins the --shell logic dylib path at install time.

Functions§

slugify
Slug a plugin’s display name into a lowercase, hyphenated, ASCII-safe identifier suitable for filesystem paths, LV2 bundle names, and IRI components.