Update: Matching EQ v3.1 (Reaper JSFX)

From a handy utility to an uncompromising mastering-grade precision instrument: With the release of Overstratum Matching EQ v3.1, the widely used REAPER JSFX plugin undergoes a complete generational leap.

While version 2.1 provided solid tonal matching capabilities, v3.1 fundamentally rebuilds the DSP architecture, mathematical signal processing, phase integrity, and ergonomic workflow from the ground up.

In this technical deep dive, we compare the EEL2 codebases of both versions, break down the critical bugs and acoustic shortcomings eliminated from v2.1, and explore how v3.1 delivers pristine transient punch, mathematical filter accuracy, and true mastering-grade fidelity.


Side-by-Side Comparison: Overstratum Matching EQ v2.1 vs. v3.1

A look under the hood reveals that v3.1 is not just an iterative patchโ€”it represents a complete architectural overhaul across the entire signal path:

DSP Dimension / Feature Version 2.1 Version 3.1
Available Processing Engines 2 Engines: IIR (Min-Phase) & Naive FFT (Lin-Phase) 3 Engines: IIR (0-Lat Deconvolved), FIR (Min-Phase Cepstrum), FIR (Lin-Phase Windowed)
Spectral Smoothing Linear FFT bin averaging (severe low-end distortion) 512-point Log-Frequency Grid with psychoacoustic ERB sub-bass smoothing
IIR Filter Accuracy Uncompensated biquad cascade (skirt overlap & overshoot) 5-pass iterative Gauss-Seidel Deconvolution (exact curve target matching)
IIR Filter Topology Direct Form I (4 state registers per band) Transposed Direct Form II (TDF-II) (2 registers, minimal roundoff noise)
High-Frequency Decramping Standard RBJ biquads (severe Nyquist cramping) Orfanidis Nyquist-Decramping for transparent, unwarped air band up to 20+ kHz
FIR / FFT Convolution Direct bin multiplication (circular convolution time-aliasing) 4-term Blackman-Harris windowing & full complex convolution (zero time-aliasing)
Analysis Safety No threshold gating (silence and track pauses corrupt spectra) Auto-Silence-Gate (-65 dBFS) automatically pauses learning during quiet sections
Band Limiting (Min/Max Hz) Hard brickwall truncation (Gibbs phenomenon / ringing) Raised-Cosine (Hann) Tapering (smooth 1/3 octave transition band)
RMS Gain Anchoring Broadband Parseval RMS (sub-bass can pull down mid presence) 2-stage normalization with dedicated Mid-Band Anchoring (200 Hz โ€“ 6 kHz)
Asymmetric Control None (boosts and cuts are strictly symmetric) Boost/Cut Bias (-100% to +100%): permits cuts-only resonance taming
Bypass Implementation Instantaneous bypass (causes latency dropouts in FFT mode) Phase-locked latency bypass through the internal OLA ring buffer
Memory Architecture Arbitrary pointer offsets (risk of buffer collisions) 64k-page-aligned allocation (zero FFT page-boundary penalties, maxmem=2097152)
Session State Safety Fragile prevent_wipe flag (resolution desync on reload) Dedicated initialization guards & full resolution-state serialization

1. Three Specialized Processing Engines

The primary sonic drawback of version 2.1 stemmed from its naive FFT multiplier and uncompensated IIR filter bank. In v3.1, users can choose between three purpose-built engines engineered for distinct production and mastering scenarios:

Engine 1: IIR (0-Lat) โ€“ Zero-Latency Deconvolution & Nyquist Decramping

When an EQ creates a match curve by stacking 50 to 150 analog-style peaking filters in series, simple implementations suffer from filter skirt accumulation (overshoot). If ten neighboring bell filters each require a subtle +1.5 dB boost, their overlapping slopes can inadvertently stack into a destructive +6 dB to +9 dB resonant peak. In v2.1, this caused audible phase smear and peaky, artificial resonances.

How v3.1 resolves this:

  • Iterative Gauss-Seidel Deconvolution: Version 3.1 introduces an interactive compensation matrix (iir_w_kern) running five successive error-correction cycles. It calculates the cumulative interaction of all neighboring filter skirts and scales each bandโ€™s individual gain down until the combined curve perfectly matches the target frequency response.
  • Orfanidis Nyquist Decramping: Bilinear-transformed digital biquads naturally cramp their bandwidth as they approach the Nyquist limit (half the sample rate). With v3.1’s pre-warping compensation (warp_corr), top-end boosts between 12 kHz and 20 kHz retain their intended analog-like bell shape without collapsing against the Nyquist boundary.
  • Transposed Direct Form II (TDF-II) & Active List: By shifting from Direct Form I to TDF-II, internal feedback state variables are halved, dramatically reducing floating-point quantization noise. Furthermore, an active index table bypasses bands with gains below 0.01 dB, keeping CPU usage extraordinarily light.

Engine 2: FIR (Min-Ph) โ€“ Kolmogorov-Hilbert Real Cepstrum

Linear-phase processing has one inherent acoustic artifact: pre-ringing. When steep EQ adjustments are madeโ€”especially in the lower octaves or around high-energy transientsโ€”linear-phase filters disperse energy backwards in time, softening the transient strike of kick drums, snares, and aggressive basslines.

Version 3.1 introduces an uncompromising Minimum-Phase FIR engine powered by a Kolmogorov-Hilbert Cepstral Transformation. By calculating the real cepstrum of the logarithmic magnitude curve, applying a causal time-domain window, and transforming back to minimum-phase complex frequency response, v3.1 delivers maximum surgical detail with zero pre-ringing. Transients retain full bite, making this mode the definitive choice for modern punchy masters and rhythm buses.

Engine 3: FIR (Lin-Ph) โ€“ True Linear-Phase Without Circular Aliasing

In version 2.1, the FFT mode multiplied frequency bins directly, then performed an inverse FFT without any time-domain truncation. Mathematically, this violates the fundamental requirements of discrete convolution, resulting in circular time-aliasing (transient smearing bleeding from the tail of the audio block directly into the attack).

Version 3.1 fixes this via a symmetric 4-term Blackman-Harris windowing algorithm (0.35875 + 0.48829 * cos(ph)...) applied to the impulse response before spectral reconstruction. Time-aliasing is eliminated. The resulting phase curve remains strictly linearโ€”ideal for classical music, acoustic ensembles, ambient textures, and parallel mix setups where phase cancellation must be prevented at all costs.


2. Spectral Smoothing: 512-Point Log-Grid & Psychoacoustics

The musicality of an EQ match depends almost entirely on how spectral curves are smoothed. Version 2.1 performed its smoothing directly across linear FFT bins. This caused a catastrophic disproportion:

In a linear spectrum with a 4096-sample FFT at 44.1 kHz, the critical sub-bass octave between 30 Hz and 60 Hz contains only 3 bins, whereas the octave between 10 kHz and 20 kHz contains over 900 bins. Applying a single linear smoothing window blurs treble details into oblivion while creating erratic, distorted swings in the low end.

The v3.1 breakthrough:

  1. 512-Point Logarithmic Frequency Grid (15 Hz to 22 kHz): Spectra are interpolated onto a logarithmic musical frequency scale. Every musical octave receives equal, proportional resolution regardless of absolute frequency.
  2. Psychoacoustic ERB Bass Pre-Smoothing: Modeled after the human auditory system’s Equivalent Rectangular Bandwidth (ERB), our ears exhibit broader critical bandwidths in the extreme low end. Version 3.1 applies specialized pre-smoothing below 250 Hz, preventing isolated sub-bass room modes or single bass notes from triggering wild, boomy boosts.
  3. 3-Pass Zero-Phase Gaussian Smoothing: The log-domain smoothing kernel utilizes a 3-pass cascaded moving average, converging to an ideal Gaussian filter shape without phase offsets or boundary ripple.

3. Workflow Upgrades: Auto-Silence-Gate & Boost/Cut Bias

Eliminating Accidental Silence Capture

In version 2.1, leaving the “LEARN” button engaged during track pauses, breakdowns, or intro silence caused a major issue: the algorithm integrated low-level system noise and digital silence into the spectral sum, corrupting the averaged curve.

Version 3.1 integrates an automatic Auto-Silence-Gate (-65 dBFS) directly into the sample processing loop. If incoming frame energy drops below the threshold, learning immediately freezes. You can freely capture songs with sparse arrangements, dynamic breaks, or vocal pauses without worrying about skewing your target curve.

New: Boost/Cut Bias Slider (Targeted Resonance Taming)

Often, an engineer wants to inherit the clean frequency balance of a high-end reference mix without boosting their own track into digital overs or unnatural brightness. The new Bias slider (Slider 21: -100% to +100%) introduces variable curve asymmetry:

  • -100% Bias (Cuts Only): The plugin strictly applies attenuation. All positive boosts are zeroed out. This turns the plugin into an intelligent de-resonator and unmasking tool that removes muddiness and harsh peaks without altering clean headroom.
  • 0% Bias (Balanced): Standard 1:1 mathematical matching with equal weight given to boosts and cuts.
  • +100% Bias (Boosts Only): Lifts deficient frequency bands without carving into your existing mix elements.

4. Mid-Band Anchoring & Raised-Cosine Tapering

In traditional matching algorithms, overall gain matching relies entirely on Parseval’s energy theorem. If your reference track features an enormous sub-bass foundation, a standard match EQ reacts by dropping the overall level of your track, dragging the vocal balance and midrange presence down with it.

Version 3.1 solves this with Mid-Band Anchoring (200 Hz to 6,000 Hz). After initial RMS balancing, the algorithm calculates a secondary offset centered precisely around the core vocal and instrument range. The midrange stays glued at reference unity, while sub-bass and air bands are sculpted around it.

Furthermore, adjusting the Min and Max frequency boundary handles (Sliders 8 & 9) in v2.1 resulted in harsh brickwall cutoffs that caused phase discontinuities. Version 3.1 introduces Raised-Cosine (Hann) Tapering across 1/3 of an octave, creating an imperceptible, organic transition between processed audio and the untreated source.


5. Ergonomic Interface & Built-In Engineering Guides

Where version 2.1 left the lower half of the GUI empty, version 3.1 turns the extra space into an integrated Mastering Reference & Mode Guide Panel:

  1. Quick Start Workflow Box: Step-by-step guidance for profiling Reference and Target tracks, with recommended starting points for Match Amount (25โ€“60%) and Curve Smoothing (35โ€“70%).
  2. Engine Selection Guide: Instant reference explaining the strengths of IIR (0-Lat), FIR (Min-Ph), and FIR (Lin-Ph) for various musical material.
  3. Stereo & M/S Routing Guide: Clear clarification between WIDTH NORM (matches Mid/Side tonal balance while preserving your mix’s native stereo field) and WIDTH MATCH (forces your mix to replicate the exact stereo spread of the reference).

The visual spectrum graph has also been recalibrated to -86 dBFS to -16 dBFS, providing meaningful visual feedback for low-level dynamics and subtle harmonic air that were previously lost off-grid in v2.1.


Engineering Guide: Which Engine Should You Choose?

  • IIR (0-LAT): Tracking, live monitoring, and individual drum/vocal busses. Completely latency-free with near-zero CPU consumption.
  • FIR (MIN-PH): Modern master buses for Pop, Rock, EDM, and Hip-Hop. Delivers laser-focused surgical frequency matching with maximum transient punch and zero pre-ringing.
  • FIR (LIN-PH): Orchestral music, acoustic guitars, grand piano, and parallel processing chains where perfect phase coherence is non-negotiable.

Conclusion: A Mandatory Upgrade for REAPER Users

Overstratum Matching EQ v3.1 demonstrates how far high-performance audio programming can push the REAPER JSFX format. By replacing naive FFT filtering and uncompensated biquad banks with deconvolution IIR cascades, Hilbert-cepstrum minimum-phase FIR generation, logarithmic ERB grids, and dynamic bias control, v3.1 transitions from a basic tone-matching script into a mastering-grade staple.

If you have been relying on v2.1, updating to v3.1 will immediately reward your projects with cleaner low-end definition, punchier transients, and effortless tonal balance.


Frequently Asked Questions (FAQ)

Is v3.1 backwards-compatible with projects saved using v2.1?

Yes. Version 3.1 detects legacy serialization layouts and gracefully converts saved profile data into the new memory architecture without losing your existing spectral profiles.

Does FIR HQ Mode (16k FFT) introduce processing latency?

Yes. FIR modes report their exact buffer size to REAPER’s Plugin Delay Compensation (PDC), which REAPER aligns transparently. If zero latency is required during recording or tracking, simply switch the engine to IIR (0-LAT).

What is the difference between “WIDTH: NORM” and “WIDTH: MATCH”?

In Mid/Side mode, WIDTH: NORM applies your matching curve to the Mid and Side channels while anchoring overall stereo width to your original mix. WIDTH: MATCH forces the Side-to-Mid gain ratio of your track to match the reference track’s exact stereo expanse.

Get the Matching EQ v3.1 here

Leave a Comment