Sound
Sibilance

Extreme validation, to an industry-grade bar.

SND-01 · Validation roadmap

A roadmap from the current gate suite to the rigor a top-tier plugin house ships behind: bit-transparent by construction, standards-compliant, real-time-safe, perceptually verified, and regression-locked across every format, host, and platform. Grounded in the 146-check harness, the strict end-to-end validator, and the 17-gate SibilanceEval rubric.

146 harness checks
strict two-sided validator
17 gated eval metrics
pluginval strictness 10
real-audio + rate-invariance + robustness torture
01

The bar

What industry grade means.

The bar is not a feeling about quality. It is a set of measurable properties, each with a standard behind it, that a plugin either meets or does not.

PropertyBypass/Amount 0Industry-grade barBit-transparent, residual below noise floor
PropertyAliasing & imagingIndustry-grade bar< −90 dBFS on a full-band sweep through every nonlinearity
PropertyReal-time safetyIndustry-grade barzero audio-thread allocations/locks, worst-case block ≪ deadline
PropertyStandardsIndustry-grade barITU-R BS.1770-4 loudness & true-peak, AES17 THD+N/dynamic range
PropertyPerceptualIndustry-grade barPEAQ-transparent on non-sibilant material, human ABX-verified
PropertyHost/formatIndustry-grade barpluginval 10, auval, VST3 & CLAP validators, real-DAW matrix
PropertyPlatformIndustry-grade barmacOS (ARM+Intel), Windows, Linux, deterministic per config
PropertyRegressionIndustry-grade bargolden-reference renders, any output change caught bit-for-bit
02

The five pillars

Where we are, and where it has to get to.

Every property above lives in one of five pillars. Each row is a metric with a definition, an honest read of where it stands today, the target, and the tool that settles it.

1Signal correctness
MetricBypass nullDefinition/standardHost-bypass output − input residualNowpartialTarget< −140 dBToolnull diff
MetricAmount-0 nullDefinition/standardZero-macro output is exact inputNowhaveTargetexactToolharness
MetricAliasing/imagingDefinition/standardLog sweep 20 Hz→Nyquist, folded energyNownoneTarget< −90 dBFSToolswept-sine FFT
MetricTHD+N (bypass)Definition/standardAES17 clean-path distortion+noiseNownoneTarget= noise floorToolAES17 rig
MetricImpulse/stabilityDefinition/standardImpulse decays, no self-oscillationNowtail onlyTarget< −120 dBToolIR capture
MetricDenormalsDefinition/standardFTZ, quiet-tail CPU == active CPUNowhaveTargetassert equalTooleval perf
MetricNaN/Inf faultDefinition/standardNon-finite input → zero non-finite outNowhaveTarget0Toolharness
MetricDeterminismDefinition/standardSame config → identical outputNowboundedTargetbit-exact/configToolgolden refs
2Perceptual quality
MetricDe-ess depth (real)Definition/standardReduction on real esses, multi-speakerNow1 fixtureTarget≥20 speakersToolcorpus + eval
MetricTransparencyDefinition/standardVowel-HF/body/air two-sided |Δ|NowhaveTarget< 0.4 dBToolvalidator
MetricPEAQ ODGDefinition/standardITU-R BS.1387 objective difference gradeNownoneTargetODG > −1ToolGstPEAQ
MetricPumpingDefinition/standardGain-reduction coeff-of-variationNowhaveTarget< 0.10Tooleval
MetricTransient smearDefinition/standardAttack-to-half + pre-ring energyNowattack onlyTargetno pre-ringTooleval
MetricWarmth harmonicsDefinition/standardTHD/H2/H3 per flavour across bandNowhaveTargetgatedTooleval
MetricHuman listeningDefinition/standardABX/MUSHRA (ITU-R BS.1116/1534)NownoneTargettransparentToolpanel protocol
3Standards compliance
MetricLoudness (LUFS)Definition/standardITU-R BS.1770-4 integrated/short/momentaryNownoneTargetspec-exactToollibebur128
MetricAuto-gain honestyDefinition/standard|in − out| integrated loudnessNowRMSTarget< 0.5 LUToollibebur128
MetricTrue-peak (dBTP)Definition/standardBS.1770-4 4× oversampleNow4× peakTargetnever > 0Tooleval
MetricDynamic range/SNRDefinition/standardAES17-2020NownoneTargetpublishedToolAES17 rig
MetricFreq response/group delayDefinition/standardMagnitude & phase vs frequencyNownoneTargetdocumentedToolsweep
MetricLatency/PDCDefinition/standardReported == measured impulse delayNowhaveTargetsample-exactToolharness
4Performance & real-time safety
MetricAvg RTF/%core per featureDefinition/standardBaseline costNowhaveTarget≤ 3% full
MetricWorst-case block timeDefinition/standardReal-time safety, max/p99 vs buffer deadlineNownoneTarget< 50% deadline @64/48k
MetricAudio-thread allocationsDefinition/standardmalloc on RT threadNownoneTarget0 (asserted)
MetricAudio-thread locks/syscallsDefinition/standardPriority inversion, page faultsNownoneTarget0
MetricPeak/steady memoryDefinition/standardFootprint & leakNowpluginvalTargetprofiled, flat
MetricMulti-instance scalingDefinition/standard50+ instancesNownoneTarget~linear, stable
MetricDenormal-path CPUDefinition/standardQuiet tails mustn't spikeNowFTZTarget== active
MetricSample-rate CPU scalingDefinition/standard44.1/48/96/192 kHz costNownoneTargetmeasured
MetricCold-start/first blockDefinition/standardprepare() + first-process spikeNownoneTargetbounded
MetricSustained/thermalDefinition/standard1-hour run, no driftNownoneTargetstable

The two that matter most: a scoped allocation counter that asserts zero mallocs on the audio thread, and worst-case per-block timing held well under the buffer deadline. Everything else in real-time safety follows from those two holding.

5Host & format robustness
Metricpluginval strictness 10Definition/standardVST3/AU/CLAPNowhaveTargetkeep, in CI
MetricauvalDefinition/standardAU conformanceNowmanualTargetCI on macOS
MetricVST3/CLAP validatorsDefinition/standardFormat conformanceNownoneTargetCI
MetricDAW matrixDefinition/standardLogic/Live/Reaper/Pro Tools/Cubase/BitwigNowad-hocTargetscripted checklist
MetricSession lifecycleDefinition/standardAutomation, state save/recall, offline==RT, freeze, SR/block change mid-session, GUI resizeNowpartialTargetfull matrix
MetricCross-platformDefinition/standardmacOS ARM+Intel/Windows/LinuxNowmac+win CITarget+ Intel + Linux
03

Infrastructure

What makes it stick.

Gates only hold if the machinery around them holds. These are the practices that keep a green number green build after build.

Golden-reference renders

Bit-for-bit

Store known-good outputs so any drift in the render fails the build, not a listening session.

Fuzzing

Adversarial input

Random and hostile input to surface non-finite output and edge-case faults before a host does.

Property-based tests

Invariants

Assert the rules that must always hold: determinism, the amount-0 null, monotonic depth.

Benchmark trend tracking

Over time

Watch RTF and memory across builds so a regression reads as a trend, not a surprise.

Statistical rigor

Spread, not luck

Report distribution and confidence, so a passing number is the real cost, not one kind run.

Coverage

Paths that matter

Keep the harness exercising the detection, protection and finishing paths under test.

04

Sequenced roadmap

Six steps, in order.

The order is deliberate: measurement before verification, correctness before coverage. Each step turns a target above into a gate that ships in CI.

  1. 01Standards metrics into SibilanceEvalWire BS.1770-4 loudness and true-peak and AES17 THD+N into the gated rubric.
  2. 02Performance & real-time safetyAdd the scoped allocation counter and worst-case per-block timing as hard gates.
  3. 03Regression lockdownGolden-reference renders, so any output change is caught bit-for-bit.
  4. 04Perceptual verificationPEAQ ODG on non-sibilant material, then a human ABX/MUSHRA panel.
  5. 05Host & format matrixauval and the VST3/CLAP validators in CI, across a scripted real-DAW checklist.
  6. 06Trend & detection rigorTrack benchmark trends and grow the detection corpus past 20 speakers.
Guardrails

No metric ships without a gate, no number without a measurement, full-chain RTF ≤ 3%/core, the UI untouched.

Back to Sibilance