AUDIO
Source snapshot · 12 October 2026

Parameters, state, bypass and metering

Borrowed CLAP metadata registration

ravet-clap::ClapParameterRegistration validates a portable schema with an ordered array of ClapParameterOptions, then provides complete count/info metadata for a product's PluginMainThreadParams implementation. Preparation borrows storage, without allocation; repeated metadata reads are heap-free. Physical f32 bounds/defaults promote exactly to CLAP f64 plain values, including continuous logarithmic schemas. Normalized editor mappings remain separate.

There are 0..1024 parameters. Names must fit 255 UTF-8 bytes and module paths 1023 bytes without NUL; the CLAP invalid ID is rejected. Discrete schemas need unit-spaced integer bounds; fractional/coarser steps require an explicit separate wire mapping. At most one bypass is allowed, with stepped 0/1 range. Automatable flags come from the schema; requires_process is explicit consumer policy. Explicit global/scoped modulation/automation flags are described below. No cookies, value storage, display formatting, flush, rescan or lifecycle scheduler is generated. The gain reference consumes the registration and advertises that active gain/bypass changes require processing.

Acceptance checks complete metadata, continuous/logarithmic/negative integer ranges, exact flags, wire/string/ID/bypass/capacity rejection, 10,000 heap-free reads and the linked actual gain host extension. See decision 0073.