Complete gain reference programmes¶
ravet_gain::GAIN_PROGRAMS and factory_program_bank() provide Unity, Silence
and Bypass as complete physical gain/bypass [1,0], [0,0], [1,1], with permanent
IDs 1..3 and MIDI bank 0/numbers 0..2. These are selection proposals; the portable
processors ignore raw MIDI program changes and have no current program identity.
Consumers restore a complete state or schedule both control events under their
existing lifecycle/timing/smoothing rules. The unchanged complete state codec
persists actual controls, including custom edits, rather than a catalogue index.
Native SDK consumers use RavetGainPrograms.h: immutable count and atomic copied
metadata include stable ID, complete controls/address and zero-padded 128-byte
UTF8 name. Results 0/1/2 mean success/rejection/contained panic. A failed call
preserves every output field; callers own live aligned writable ranges. Normal
validation/copy is heap-free with no locks/I/O or live DSP access. This reference
ABI does not generate host menu/selection/publication policy. See
decision 0083.