AUDIO
Source snapshot · 12 October 2026

Prepared native planar processing

Immutable cached parameter mapping

NativeParameterCache<N>::new(schema, roles) prepares immutable native metadata, static schema/ranges and a sorted ID/index lookup on control. At most 1024 descriptors are supported; metadata retains native 255/63-byte UTF-8 limits and declared order. All u32 IDs are preserved. Cached info, normalize and denormalize use existing Foundation finite clamp/log/discrete/ties-up semantics, without consumer provider calls, heap actions, locks, I/O or DSP access. Role declarations do not suppress values implicitly. Cache creation/drop may allocate/ deallocate; shared readers must stop before retirement, and schema references/ library must remain alive. The safe Rust constructor does not catch provider panic.

NativeCachedParameters<P, S, N>::entry() supplies a separate paired companion, keeping previous native table layouts stable. Entry acquisition and cache factory run on control, containing provider failures; invalid metadata/provider panic returns None/null without poisoning existing caches or DSP. Cached callbacks can run concurrently on any owner and do not reacquire provider metadata. Gain exposes ravet_native_cached_parameters_v1 for both precisions; layouts and foreign obligations are in include/RavetCachedParameters.h. Exact table/cache/precision/ library pairing, live aligned disjoint ranges and stopped destruction remain caller obligations. Callback codes are 0 success and 1 rejection, preserving failed output fields.

NativeNormalizedParameterEventV1 stores offset/ID and f64 normalized intent. Complete conversion validates known IDs, finite 0..1 values, ordered offsets and destination capacity before mutation. Intent explicitly narrows to the global normalized f32 contract; physical f32 widens exactly into tagged parameter-value records. Equal-offset input order and destination tails survive. Conversion uses two bounded passes and cached binary lookup, with <=1024 input/output capacity, <=65536 frames and offset zero on zero-frame calls. Unknown IDs reject atomically; format consumers explicitly filter/route unsupported IDs after host validation. No scoped modulation, host queues/notifications/scheduling, arbitrary consumer callback or deadline guarantee follows. See decision0151.