This is the raw measurement report for THE_STRIP 3, published in full. It is the document behind the article A Channel Strip Can't Be As Clean As Chaining Premium Plugins. Nothing has been removed except the internal test-runner commands. The findings that do not flatter the product are in section 16.
THE_STRIP 3 - DSP measurement report
Device under test: PsStripEngine, shipping build (the same code compiled into the VST3/AU/AAX). Instrument: THE_LAB, hosting the engine in-process with all 321 parameters addressable by name. Platform: Apple silicon, Release build. Date: 2026-08-27.
All figures below are MEASURED, not specified or simulated. Where a target is given it is the acceptance threshold the automated suite asserts against. 'dB re fundamental' means decibels relative to the test tone. More negative = cleaner. Sample rate is 48 kHz unless stated; aliasing tests run at 44.1 kHz because fold-back is worst there.
Summary: 666 automated checks pass at 44.1 and 48 kHz, 664 at 96 and 192 kHz, zero failures. One open finding is documented in section 16, together with three earlier findings now retracted as faults in the measurement rather than the engine.
1. Acceptance suite
| Sample rate (Hz) | Checks | Passed | Failed | Run time |
|---|---|---|---|---|
| 44 100 | 666 | 666 | 0 | 15.7 s |
| 48 000 | 666 | 666 | 0 | 18.2 s |
| 96 000 | 664 | 664 | 0 | 28.9 s |
| 192 000 | 664 | 664 | 0 | 51.7 s |
Two checks are sample-rate-specific and do not apply above 48 kHz, hence 664 instead of 666.
2. Idle / unity path (all modules off)
| Measurement | Result | Threshold |
|---|---|---|
| Magnitude flatness, 20 Hz - 20 kHz | -0.0016 to -0.0000 dB | ≤ 0.10 dB |
| Gain at 1 kHz | -0.00 dB | 0.00 ±0.05 dB |
| THD+N at 1 kHz | -153.02 dB | ≤ -110 dB |
| DC offset on sine | -264.91 dB | ≤ -110 dB |
| Self-noise on digital silence | -240.00 dBFS | ≤ -140 dBFS |
| DC on digital silence | -240.00 dBFS | ≤ -140 dBFS |
| Reported latency | 0 samples | - |
| Polarity | normal (non-inverted) | - |
| Measured points in band | 1998 | - |
3. Bypass bit-identity
MOD stage at mix 0 / depth 0, compared sample-by-sample against the stage disabled.
| Mode | Worst single-sample delta |
|---|---|
| Chorus | 0.000000000000 |
| Flanger | 0.000000000000 |
| Phaser | 0.000000000000 |
| Tremolo | 0.000000000000 |
4. Low cut - Butterworth conformance
fc = 200 Hz, resonance 0. Corner measured by coherent single tone on the shipping engine.
CORRECTED. The figures previously printed here came from a metric that read the slope over fc/4 to fc/2 - not the fc/8 to fc/4 this section described - off a smoothed multisine at -96 dB, and reported corner errors with the wrong sign. See 16.R1.
| Slope | Corner measured | Ideal | Error | Nominal | Passband max |
|---|---|---|---|---|---|
| 6 dB/oct | -3.010 dB | -3.010 dB | 0.000 dB | 6 dB/oct | -0.000 dB |
| 12 dB/oct | -3.010 dB | -3.010 dB | 0.000 dB | 12 dB/oct | -0.000 dB |
| 24 dB/oct | -3.010 dB | -3.010 dB | 0.000 dB | 24 dB/oct | -0.000 dB |
| 48 dB/oct | -3.010 dB | -3.010 dB | 0.000 dB | 48 dB/oct | -0.000 dB |
Skirt at the steepest setting: 48.166 dB/oct against an ideal 48.166 dB/oct. Worst deviation of the corrected metric across all four slopes: 0.21 dB/oct at 44.1 and 48 kHz. Per-slope skirt figures for 6, 12 and 24 dB/oct are pending the next regeneration of this report.
Passband is maximally flat: no measured point anywhere above 0.000 dB, at any slope.
5. Equaliser
| Test | Target | Measured | Deviation |
|---|---|---|---|
| Bell boost at 1 kHz | +6.00 dB | +6.00 dB | 0.00 dB |
| Bell cut at 1 kHz | -6.00 dB | -6.00 dB | 0.00 dB |
| Bell, untouched at 100 Hz | 0.00 dB | +0.07 dB | 0.07 dB |
| Bell, untouched at 10 kHz | 0.00 dB | +0.05 dB | 0.05 dB |
| Low shelf at 100 Hz | +6.00 dB | +6.00 dB | 0.00 dB |
| Low shelf, unity at 10 kHz | 0.00 dB | 0.00 dB | 0.00 dB |
| High shelf at 10 kHz | +6.00 dB | +6.00 dB | 0.00 dB |
| High shelf, unity at 100 Hz | 0.00 dB | 0.00 dB | 0.00 dB |
| EQ high-pass corner at 1 kHz | -3.00 dB | -3.01 dB | 0.01 dB |
| EQ high-pass slope | 12.00 dB/oct | 12.03 dB/oct | 0.03 dB/oct |
| EQ low-pass corner at 1 kHz | -3.00 dB | -3.01 dB | 0.01 dB |
| Dynamic band gain reduction | 12.00 dB | 12.00 dB | 0.00 dB |
| Dynamic band, neighbour at 200 Hz | 0.00 dB | +0.03 dB | 0.03 dB |
| Phase classification | minimum phase | minimum phase | - |
| Added latency | 0 samples | 0 samples | - |
| Editor curve vs rendered audio | - | worst 0.09 dB | 0.09 dB |
The last row compares the curve drawn in the plugin's editor against the measured audio output.
6. Dynamics
Settled steady-state tones; the law is read from the output rather than fitted to a rising staircase.
| Module | Test | Target | Measured |
|---|---|---|---|
| Compressor | Ratio at a set 4:1 | 4.00 : 1 | 4.00 : 1 |
| Compressor | Unity 10 dB below threshold | -30.00 dB | -30.17 dB |
| Compressor | Makeup at the quiet end | 0.00 dB | 0.00 dB |
| Gate | Attenuation below threshold | ≤ -30 dB | -75.76 dB |
| Gate | Open above threshold | 0.00 dB | 0.00 dB |
| De-esser | Reduction at 6 kHz | ≥ 3 dB | 11.02 dB |
| De-esser | 500 Hz untouched | 0.00 dB | +0.12 dB |
| De-esser | Quiet pass transparent | 0.00 dB | -0.04 dB |
| Ducker | Depth at a set 12 dB | 12.00 dB | 12.06 dB |
| Ducker | Depth vs trigger level (-3 vs -20 dBFS) | 0.00 dB | 0.00 dB |
| Ducker | Amount 0 = true bypass | 0.00 dB | -0.02 dB |
| Ducker | Recovery after the hit | 0.00 dB | -0.00 dB |
| Multiband | Mid-band ratio at a set 4:1 | 4.00 : 1 | 3.97 : 1 |
| Multiband | Crossover reconstruction | 0.00 dB | 0.00 dB |
| Transient | Unity at 0 / 0 | 0.00 dB | 0.00 dB |
| Transient | Colouration at 0 / 0 | ≤ 1.00 dB | 0.00 dB |
Note: an earlier revision of this report stated that compressor attack/release times were not calibrated (a set 10 ms / 100 ms measuring 23 ms / 26 ms). That does not reproduce and is retracted - see 16.R3. Attack spans 5 to 335 ms and release 22 to 786 ms across their ranges, both monotonic with no flat region, and the time constant matches the set value. The static law above is exact.
7. Stereo
| Test | Target | Measured |
|---|---|---|
| Width 1.0 - mid unity | 0.00 dB | -0.00 dB |
| Width 1.0 - side unity | 0.00 dB | -0.00 dB |
| Width 0.0 - side collapse | ≤ -40 dB | -180.00 dB |
| Width 0.0 - mid untouched | 0.00 dB | -0.00 dB |
| Width 2.0 - side gain | +6.00 dB | +6.02 dB |
| Width 2.0 - mid untouched | 0.00 dB | -0.00 dB |
| Bass mono 200 Hz - side at 60 Hz | ≤ -12 dB | -41.87 dB |
| Bass mono 200 Hz - side at 4 kHz | 0.00 dB | -0.00 dB |
8. Time-domain stability
Maximum feedback / maximum depth, checked for non-finite samples and runaway.
| Test | Target | Measured |
|---|---|---|
| Reverb tail, initial | ≥ -80 dBFS | -29.50 dBFS |
| Reverb tail after 12 s | ≤ -100 dBFS | -100.00 dBFS |
| Reverb tail decay | monotonic | -29.5 → -90.3 → -100.0 dBFS |
| Delay at 0.95 feedback, peak | ≤ +6 dBFS | -1.41 dBFS |
| Delay repeats after 30 s | ≤ -60 dBFS | -64.51 dBFS |
| Modulation, 5 modes, full depth + 0.95 fb | no non-finite | clean |
| Modulation, runaway check | ≤ +6 dBFS | -6.03 to +0.80 dBFS |
9. Saturation - alias rejection by model and oversampling
8003 Hz tone at -1 dBFS, drive 0.7, 44.1 kHz, limiter disabled. Values are dB below the fundamental; more negative is cleaner. The fundamental sits at -1 dBFS, so subtract 1 dB to read any figure as an absolute level: -142.0 dB below the fundamental is -143.0 dBFS. A 24-bit file's theoretical noise floor is -144 dBFS.
| Model | 1x | 2x Fast | 2x CLEAN | 4x Fast | 4x CLEAN | 8x Fast | 8x CLEAN |
|---|---|---|---|---|---|---|---|
| Tube | -16.5 | -33.4 | -33.4 | -55.6 | -57.1 | -55.6 | -76.1 |
| Transformer | -11.3 | -32.4 | -32.4 | -49.1 | -72.2 | -49.1 | -129.0 |
| FET | -7.7 | -14.4 | -14.4 | -32.5 | -32.5 | -44.5 | -44.5 |
| Tape | -12.3 | -31.7 | -31.7 | -50.3 | -61.2 | -49.9 | -111.8 |
| Diode | -12.8 | -33.9 | -33.9 | -50.6 | -54.8 | -50.6 | -73.3 |
| Console | -12.9 | -41.4 | -41.4 | -50.8 | -97.0 | -50.8 | -142.0 |
Console and Transformer at 8x CLEAN (-142.0 and -129.0 dB below the fundamental) place their worst artefact at -143.0 and -130.0 dBFS absolute. Console sits one decibel above the theoretical 24-bit noise floor; Transformer sits 14 dB above it. Both are below the noise floor of any converter currently manufactured, and the signal-to-artefact ratio in the Console case is 142 dB, against roughly 120 dB for the dynamic range of human hearing. FET does not improve with oversampling because it is a hard clipper: a discontinuous derivative produces a harmonic series that no finite oversampling factor fully resolves. That is inherent to the shape, not a defect in the anti-aliasing.
10. Saturation - alias floor vs input level
Transformer model, drive 0.7 fixed, 8003 Hz, 44.1 kHz. Input level swept 60 dB.
| Input dBFS | 2x Fast | 8x CLEAN | Difference |
|---|---|---|---|
| -60.0 | -153.27 | -171.97 | +18.70 |
| -53.3 | -139.85 | -171.03 | +31.18 |
| -46.7 | -126.55 | -170.80 | +44.25 |
| -40.0 | -113.20 | -171.05 | +57.85 |
| -33.3 | -99.88 | -170.71 | +70.83 |
| -26.7 | -86.62 | -171.52 | +84.90 |
| -20.0 | -73.62 | -171.90 | +98.28 |
| -13.3 | -61.67 | -172.44 | +110.77 |
| -6.7 | -51.68 | -148.82 | +97.14 |
| +0.0 | -30.16 | -125.71 | +95.55 |
At 8x CLEAN the alias floor is invariant to drive: it holds near -171 dB across a 47 dB range of input level (-60 to -13 dBFS) before rising. At 2x Fast the floor tracks the signal upward.
11. Latency reporting accuracy
Delay measured through the plugin by correlation, compared against what the plugin reports to the host.
| Configuration | Reported | Measured | Error |
|---|---|---|---|
| 1x oversampling | 72 smp | 72.00 smp | 0.00 smp |
| 2x oversampling | 121 smp | 121.00 smp | 0.00 smp |
| 4x oversampling | 132 smp | 131.16 smp | 0.84 smp |
| 8x oversampling | 136 smp | 136.02 smp | 0.02 smp |
| Fast filter mode | 126 smp | 126.08 smp | 0.08 smp |
| CLEAN filter mode | 213 smp | 213.53 smp | 0.53 smp |
| Compressor 5 ms lookahead | 221 smp | declared | - |
| Gate 20 ms lookahead | 882 smp | declared | - |
| Ducker 20 ms lookahead | 882 smp | declared | - |
| Comp + gate + limiter | 810 smp | declared | - |
| Reported figure after audio starts | unchanged | unchanged | 0 smp |
| MINI, every lookahead + 8x requested | 0 smp | 0 smp | 0 smp |
Worst disagreement anywhere is 0.84 samples (17.5 microseconds at 48 kHz). The reported figure never changes after audio starts. THE_STRIP 3 MINI refuses latency-incurring settings rather than silently introducing delay.
12. Numerical stability
| Test | Result |
|---|---|
| Parameters swept to both extremes | 321 / 321 finite and bounded |
| Full chain under loud noise | no non-finite samples |
| Impulse / DC / silence stress | no non-finite samples |
| Output vs limiter ceiling under stress | -0.83 dBFS |
| Runaway check on stress signal | -0.83 dBFS (≤ +0.50 dBFS) |
13. Sample-rate independence
| Sample rate (Hz) | Neutral flatness | Low cut -3 dB at 100 Hz | Bell +6 dB at 1 kHz |
|---|---|---|---|
| 44 100 | 0.00 dB | -3.00 dB | +6.00 dB |
| 48 000 | 0.00 dB | -3.01 dB | +6.00 dB |
| 96 000 | 0.00 dB | -3.04 dB | +6.00 dB |
| 192 000 | 0.00 dB | -3.04 dB | +6.00 dB |
14. Processing cost
Median per-block wall time, Release build, Apple silicon, 48 kHz.
| Configuration | ns / sample | % of one core at realtime |
|---|---|---|
| All modules off | 33.9 | 0.16 % |
| MINI set (in, low cut, EQ, comp, duck) | 53.9 | 0.26 % |
| Typical mix chain | 498.1 | 2.39 % |
| Every module enabled | 712.0 | 3.42 % |
15. Real programme material
118 BPM commercial drum loop, 6 s, 44.1 kHz, driven +12 dB into the clipper at 100 %. Rendered twice - anti-aliasing disabled, and at the maximum setting. The delta isolates the aliasing contribution on real audio.
| Measurement | Anti-aliasing off | Maximum setting | Delta |
|---|---|---|---|
| High-frequency tone | +6.22 dB | +5.99 dB | 0.23 dB |
| Tonal tilt | +0.27 dB | +0.06 dB | 0.21 dB |
| Integrated loudness | -7.47 LUFS | -7.53 LUFS | 0.06 LU |
| Loudness-matched residual | -8.29 dB | -8.27 dB | 0.02 dB |
| Loudness range | 0.02 LU | 0.02 LU | 0.00 LU |
| Crest factor | 8.46 dB | 9.00 dB | 0.54 dB |
| True peak | +3.72 dBTP | +1.96 dBTP | 1.76 dB |
On real programme material, driven far harder than normal use, the total difference between the worst and best anti-aliasing settings is 0.23 dB in the highs. Dynamic range is unchanged.
16. Open findings
One open finding, and three earlier findings retracted. None was caught by the acceptance suite: the suite reads 666 of 666 because it never asserted on any of them. Each was found by measuring past the point where the suite's own thresholds stop - which is also how three of them turned out to be defects in the measurement rather than in the engine.
16.1 CLIP stage alias rejection does not scale with oversampling. OPEN.
| Measurement | Value |
|---|---|
| 2x oversampling, True Peak off | -29.7 dB |
| 4x oversampling, True Peak off | -27.4 dB |
| 8x oversampling, True Peak off | -26.9 dB |
| 2x oversampling, True Peak on | -56.2 dB |
| 4x oversampling, True Peak on | -73.0 dB |
| 8x oversampling, True Peak on | -90.6 dB |
| Brickwall alone, True Peak on | -107.2 dB |
| Artefact at CLIP settings below 50 % | -51 to -58 dB |
| Effect on the section 15 render | 0.23 dB in the highs |
Cause: with oversampling active and True Peak off, the limiter output is passed through a soft clip stage at base rate, downstream of both the oversampling and the Nyquist guard, so its third harmonic folds back into the band. The worst artefact appears at 20091 Hz in every configuration, which is 44100 - 3 x 8003. The Nyquist guard itself measures -169 dB at 24009 Hz and is functioning; ADAA2 is engaged at every oversampling factor. An earlier revision of this report concluded the limit was "not decimation-filter related" and left it implicitly inherent. It is a routing defect with a workaround.
Workaround: enable True Peak. Fix pending - the candidate change alters the voicing of a limiter already present in released mixes, so it is being evaluated rather than shipped.
The tonal effect on the section 15 render is small (0.23 dB in the highs), but true peak on the same render differs by 1.76 dB between anti-aliasing off and maximum (+3.72 vs +1.96 dBTP). The delivery consequence is larger than the tonal one.
16.2 EQ bell shape near Nyquist. OPEN, behaviour confirmed, stated cause corrected.
| Measurement | Value |
|---|---|
| Bell asymmetry at 1 kHz | 1.000 (symmetric) |
| Bell asymmetry at 16 kHz, 44.1 kHz | 0.718 |
| Shape retained at 16 kHz | 71.8 % |
| Agreement with the RBJ cookbook formula | 0.01 dB |
| Behaviour at 96 kHz | not present |
| Effect on the section 15 render | none measurable |
The EQ is doing exactly what a textbook bilinear IIR does. An earlier revision gave CPU cost as the reason this had not been changed. That was wrong: a Nyquist-matched coefficient set costs 24.6 ns per coefficient update and nothing per sample, roughly 0.001 % of one core. (Oversampling the EQ stage would cost 0.48 % Fast / 1.44 % CLEAN, but is not the cheaper of the two fixes.) The actual constraint is that changing the transform alters the response of high-frequency EQ settings in already-saved sessions. Plugin state carries a version field, so a migration on load can preserve existing sessions exactly; host automation lanes bypass state restore and would shift. Confined to the top octave.
16.R1 RETRACTED - "Steepest low-cut slope overshoots its nominal." The engine is an exact 8th-order Butterworth. Measured by coherent single tone on the shipping code: corner -3.010 dB at every slope, steepest skirt 48.166 dB/oct against an ideal 48.166. The published 51.4 dB/oct came from the suite reading magAt(fc/2) - magAt(fc/4), i.e. fc/4 to fc/2 rather than the fc/8 to fc/4 documented in section 4, off a smoothed multisine curve at -96 dB. The same analyser on the same unchanged filter returns 48.5 / 48.4 / 48.2 / 44.9 dB/oct at 44.1 / 48 / 96 / 192 kHz. Pole count, Q multiset, filter class and resonance neutrality were all verified correct. Corner-error magnitudes in the old section 4 table reproduce at 96 kHz but with the opposite sign. Metric fixed test-side.
16.R2 RETRACTED - the CPU justification for 16.2. Superseded by the measurement above; the behaviour stands, the reason given for it did not.
16.R3 RETRACTED - "Compressor attack and release times are not calibrated." The published figures (10 ms measuring 23 ms, 100 ms measuring 26 ms) do not reproduce. Attack spans 5 to 335 ms across its range and release 22 to 786 ms, both monotonic with no flat region; at a set 100 ms, attack reads 171 ms and release 70 ms. The time constant equals the set value. The consistent offset in the original figures was the 63%-of-gain-reduction convention measured with a burst starting below threshold - a property of the test, not the compressor.
17. Test conditions
The acceptance suite is internal tooling and is not distributed. Listed below are the signal conditions recorded for each section, so the measurements can be checked in any analyser rather than only in mine. Where a condition was not recorded it says so, rather than being filled in after the fact.
| Section | Recorded conditions |
|---|---|
| 2 - idle path | All 15 modules disabled. 20 Hz - 20 kHz, 1998 measured points in band. 48 kHz. |
| 3 - bypass identity | MOD stage at mix 0 / depth 0 compared sample-by-sample against the stage disabled, in all four modes. Source signal not recorded. |
| 4 - low cut | fc = 200 Hz, resonance 0. Corner by coherent single tone. 48 kHz. |
| 5 - equaliser | One band active per test. 48 kHz. Editor-curve row compares the drawn curve against rendered audio across the band. |
| 6 - dynamics | Settled steady-state tones. The law is read from the output rather than fitted to a rising staircase. 48 kHz. |
| 9 - alias rejection | 8003 Hz sine at -1 dBFS, drive 0.7, limiter disabled. 44.1 kHz. |
| 10 - alias vs level | 8003 Hz sine, Transformer model, drive fixed at 0.7, input swept 60 dB. 44.1 kHz. |
| 11 - latency | Delay through the plugin measured by correlation, compared against the figure reported to the host. 48 kHz. |
| 14 - processing cost | Median per-block wall time, Release build, Apple silicon, 48 kHz. |
| 15 - real material | 118 BPM commercial drum loop, 6 s, driven +12 dB into the clipper at 100 %, rendered twice - anti-aliasing disabled and at maximum. 44.1 kHz. |
Sample rate is 48 kHz unless stated. Aliasing tests run at 44.1 kHz because fold-back is worst there. 8003 Hz is used rather than a round 8 kHz because it is not harmonically related to either sample rate, so alias products land clear of the real harmonic series instead of hiding underneath it.
Where a target is listed in the tables above it is the acceptance threshold the automated suite asserts against - it is not a specification, and not a measurement.
666 checks / 4 sample rates / 321 parameters / 15 modules / 0 failures / 1 open finding / 3 retracted. All figures measured with THE_LAB against THE_STRIP 3's shipping engine, 2026-08-27.
