Repository navigation
Verification
Quesynth treats the original Synth1 plugin as a behavioral reference. The goal is not merely to produce a similar patch in isolation, but to identify parameter laws and signal structures that remain valid across notes, levels, sample rates, and control settings.
tools/s1probe hosts the reference VST and Quesynth, supplies identical patch and
event data, and records their outputs. A typical investigation follows this order:
- Isolate one parameter or signal stage.
- Hold unrelated parameters at controlled values.
- Render a sweep over the relevant range.
- Align latency, note timing, level, and polarity.
- Compare waveform, spectrum, envelope, stereo behavior, and residual.
- Fit the simplest model that explains held-out measurements.
- Add an independent regression test before changing the engine.
| Metric | Purpose | Common failure mode |
|---|---|---|
| Sample null | Measures total sample-domain residual | Timing or phase error dominates the result |
| Harmonic spectrum | Identifies waveform, nonlinear, and filter differences | Windows miss detuned or non-bin-centered components |
| RMS/peak level | Measures gain behavior and headroom | Silence or release tails bias whole-render RMS |
| Envelope contour | Separates timing from level behavior | Threshold choice changes reported segment time |
| Stereo correlation/width | Evaluates pan, phase, and unison structure | Mono energy is mistaken for independent stereo layers |
For aligned signals r[n] and q[n], the residual e[n] = r[n] - q[n] may be
reported relative to the reference:
null_dB = 20 log10(RMS(e)/RMS(r))
A more negative result is better, but it is not a diagnosis. Spectral and temporal measurements are required to determine why a null is limited.
A test must not generate its input through the same representation that it is intended to validate.
This rule applies to binary event layouts, patch serialization, display-keyed states, and host bridges. If producer and consumer share the same defect, their agreement provides false confidence. Fixture bytes, external host captures, and hand-verified parameter cases are used where the representation itself is under test.
Several plausible metrics can produce systematically incorrect conclusions:
- Short-window autocorrelation may classify low fundamentals as less tonal because too few cycles fit in the analysis window.
- Whole-render RMS understates percussive sounds because the window contains a large silent region.
- Fixed-width harmonic windows measured in hertz become progressively narrower in cents at higher harmonics and can reject detuned energy.
- A single operating point cannot distinguish two nonlinear transfer functions that happen to share one harmonic ratio.
Every fitted curve should therefore include validation points that were not used for fitting, and each metric should be tested with signals whose expected answer is known analytically.
An audible compatibility claim should record:
- reference plugin version and host configuration;
- patch or raw stored parameter values;
- note, velocity, sample rate, block size, and transport tempo;
- render duration and analysis window;
- alignment and normalization steps;
- metric definition and numerical result;
- command or test that reproduces the result.
The detailed campaign, current match quality, and known outliers are maintained in
docs/null-test.md.
← Architecture · Home →
Operation
Sound design
Technical reference