Validation and levels

Four checks, in order, and six level conventions. Together they are why a design you did not write yourself can be allowed near your speakers.

The four checks

CHECKWHEN IT RUNSWHAT IT LOOKS AT
ShapeWhen the file is readField names, types, ranges, what is required. An unknown field comes back with the candidates listed
CoefficientsOn save, and on loadDesigns the coefficients from your values and confirms them at both internal rates
SimulationOn load, only for a chain containing something nonlinearPasses three stimuli through it and measures what comes out
ArmingImmediately before sound startsThat the simulation passed, and that the limiter and soft start are in place

Shape and coefficients must pass before a design enters the library at all, so the list never offers something that is certain to fail when picked.

  • A failure names the stage, the code and the numbers that were measured. It is one of the two expected answers, not an error.
  • Passing the shape check does not mean it will play. Shape is only shape; the verdict starts at the coefficients.
  • If anything fails, playback falls back to passing the signal through untouched.
  • The same verdict can be taken without making a sound, which is how an assistant can check its own work before you load it.

What the simulation measures

STIMULUSWHAT IT REVEALS
Sine at the reference level, whole periodsPass-through gain, the compensation, and the DC component
Logarithmic sweep across the audible bandHow much harmonic content lands above the audible band, and the peak
Band-limited noiseIntermodulation, and any invalid numbers

None of the three contains ultrasonic content, so anything measured up there was made by your chain.

  • DC is judged from the sine alone. On the other two the estimation error is larger than what is being judged, so their numbers are reported but not used to refuse.
  • A chain containing a long convolution is warmed up before it is measured, so loading one takes longer.
  • Read the results in order. Invalid numbers upstream make everything downstream meaningless.
  • Ultrasonic content is refused because it cannot be heard.

    A full-scale tone above the audible band reaches your amplifier and tweeter unchanged, and you cannot notice it the way you would notice an audible fault. What is refused is amplifying it, judged in absolute terms, so a properly windowed high-pass filter passes.

  • DC is refused because it pushes a driver and holds it there.

    Asymmetric shaping and even-order harmonics create it. Put the DC blocker after the stage that creates it; in front of it nothing is removed.

  • A linear chain is not put through this.

    Simulation, the limiter and the soft start apply only to chains containing a nonlinear node. Applying them to everything would mean the path closest to a straight wire is the one most interfered with.

Level conventions

Fixed by the specification version. They do not change under you.

#CONVENTION
11.0 is 0 dBFS. There is no hidden gain anywhere
2The analogue reference point is -20 dBFS RMS as 1.0 V RMS, at the input node of the circuit being modelled
3Every module passes the reference level at unity, within 0.1 dB. The checks confirm it
4Drive on a nonlinear node is compensated at its output: the tone changes, the loudness does not
5Nothing clips inside, because the signal is floating point. The limiter exists only at the final stage
6A/B switching matches loudness automatically, against the pass-through as 0 dB

Conventions 4 and 6 are why an A/B comparison does not become a test of which side is louder.