Repository navigation
Parameter Storage
Quesynth stores 99 integer parameters. The interpretation of an integer is not uniform across parameters, so patch generators must use the parameter metadata rather than assume a shared indexing rule.
- Positional — the stored integer is an index into the parameter's list of states. Value 0 is the first state.
-
Display-keyed — the stored integer is the number shown on the display. If a control shows
1–4, there is no state0.
Which one applies was measured per parameter, not inferred. Oscillator 1's waveform is display-keyed showing 0–3; oscillator 2's is display-keyed showing 1–4. Written 0-based like its neighbour, every oscillator 2 waveform in an early version of the factory bank named the wrong shape, and the ones set to 0 fell off the bottom of the table entirely.
Two behaviours, again measured per parameter:
-
Clamp_To_Top— saturate at the top state, at both ends. This is why an out-of-range oscillator 2 waveform becomes noise: it clamps to state 4. -
Continue_Grid— keep walking the uniform grid, which runs past 1.0. Amplitude sustain works this way, and its own default of 107 is already past the table's top of 100 — so a sustain above "full" is a legitimate setting, not a mistake.
Neither behavior necessarily produces a parsing error. Programmatically generated patches must therefore be validated against each parameter's actual state list.
Display tables are not necessarily uniform. Oscillator 2's pitch table repeats
entries, so 64 + 12 resolves to +11 semitones; +12 is stored at 77. Resolve
the required display value through the table rather than by arithmetic offset.
Operation
Sound design
Technical reference