All plugins
RJ-Resonance · Manual

RJ-Resonance: Manual

Version 1.0Updated 2026-07-06

I built RJ-Resonance because I wanted a resonance smoother that sounds the same from the first take to the final master. No FFT window, no pre-ring, no compromised second "zero-latency" mode that falls behind on transients. RJ-Resonance works in the time domain with up to 48 symmetric, minimum-phase Gaussian cuts and finds the bands that stick out of the local spectrum. Those are the ones it dips dynamically. To be honest: v1 is a smoother in the character of Gullfoss, not a surgical de-esser. It's a tool for the bus, the vocal and the room, with exactly 0 samples of latency at every sample rate.

Overview

RJ-Resonance doesn't detect against a fixed threshold, it detects against its own moving spectral envelope. A band ducks when it stands out locally, meaning it's narrower and louder than its neighbours and persists long enough to be a real resonance. That makes detection level-invariant. A 20 dB jump in level won't suddenly behave like a compressor.

Detection runs in parallel over SVF analysis taps, correction runs serially over minimum-phase dB cuts that add cleanly and without latency. On top of that come three freehand curves, an adjustable band count, range windows, external sidechain unmasking, a hard mode with an absolute threshold, loudness compensation and a delta monitor.

The Interface

At its heart is the wide, cream frequency graph with a logarithmic axis from 20 Hz to 20 kHz.

  • Two layered analyzers fill the background: IN in dark red sits behind, OUT in light red sits in front. You see straight away what the processing does to the spectrum.
  • A faint zero line runs across the middle, the centre line of the curves.
  • The gain reduction hangs down from that centre line as a burgundy area. The deeper it falls, the more cut. Small dots mark the interpolated resonance frequency of each band that's actively cutting.
  • Top-left sit three tabs: TARGET | ATTACK | RELEASE. The active tab is burgundy.
  • Two vertical Range handles (Lo and Hi) cross the graph. The regions outside them are lightly shaded.

The header and footer are deliberately light here. The header holds the power dot and four text toggles, the footer holds the latency badge and three word-value readouts.

Controls & Parameters

  • Power – master bypass, burgundy when active.
  • SC – switches the detection key to the external sidechain bus (unmasking). The key never touches the signal path, so latency stays 0.
  • LISTEN – monitors the detection key, the undelayed control signal.
  • DELTA – outputs dry minus wet. You hear exactly what's being removed.
  • HARD – hard mode. Instead of the moving reference it uses an absolute threshold, paired with THR in the footer.

Detection & Dynamics (left column)

  • Sensitivity: 0 – 100 % (default 50). Threshold above the moving envelope, roughly 0 % = 12 dB over, 100 % = 0 dB. Higher catches more.
  • Focus: 0 – 100 % (default 50). Narrowness morph. Low = broad ducking, high = a surgical single notch. One resonance makes one notch.
  • Attack: 0.3 – 9 ms (default 3). Value at the 1 kHz reference, the engine scales it per frequency, low bands slower. 0.3 ms is as fast as the 32-sample control tick physically allows.
  • Release: 12 – 120 ms (default 40). Also referenced at 1 kHz and scaled per band.
  • Smooth: 1 – 6 (default 3). Order of the envelope smoothing, the "cleanliness" of the gain motion. Higher = softer.

Action & Output (right column)

  • Keep (Transient Keep): 0 – 100 % (default 60). Band-local transient guard. On a broadband onset each band opens only as far as its standing cut is shallow. Bands with little cut let the punch through, bands with a deep, established cut (the real resonance) stay cut.
  • Depth: 0 – 18 dB (default 12). A hard dB ceiling on the cut, min(cut, Depth). Depth 2 dB means at most 2 dB of cut.
  • Bands: 12 / 24 / 36 / 48 (default 36). Band density on a fixed grid [30 Hz, 19 kHz]. More bands change selectivity, not broadband tone. Structural: switching rebuilds the gain table click-free.
  • ST Link (Stereo Link): 0 – 100 % (default 100). Blends the L/R detection keys, 100 % = fully linked.
  • COMP (Loudness Comp): 0 – 100 % (default 0). Gives back a fraction of the removed energy broadband (per channel, about 80 ms smoothed) so A/B stays honest.
  • Latency badge: shows "0 SAMPLES LATENCY - EVERY SAMPLE RATE", or "N SAMPLES LATENCY (LOOKAHEAD)" when lookahead is engaged.
  • Lookahead: Off / 2.5 ms / 5 ms. An optional "negative attack". Detection reads the undelayed signal, the audio path is delayed. Off keeps exactly 0 samples, each step reports a stable host latency (around 240 samples at 48 kHz for 5 ms). Switching is a one-time jump of the read pointer, not a mix control.
  • THR: −60 … 0 dBFS (default −30). Absolute threshold for hard mode, greyed out otherwise. Q-compensated, so it reads true dBFS. Click opens a pop-out knob.
  • OUT: −12 … +12 dB (default 0). Output trim, also a pop-out.

The Curves in the Graph

All three curves have 48 points, matching the 48-band grid, and are drawn round, with no corners. On hover, precision handles appear at every grid point. Dragging changes the value, double-clicking a point resets it, double-clicking empty space resets the whole curve. Freehand painting between points still works.

  • Target Curve (TARGET tab): −12 … +12 dB. The sensitivity offset over frequency. Drawing up means more suppression there. Drag a region to the floor and that band is off (drawn muted).
  • Attack Curve (ATTACK tab): 0.25x – 4x per band. Value = 2^(v/6), up = slower, down = faster, centre = 1x. The left-edge scale shows 4X / 1X / 1/4X, with the target curve ghosted behind for orientation.
  • Release Curve (RELEASE tab): 0.25x – 4x per band, same 2^(v/6) mapping.
  • Range Lo: 20 – 500 Hz (default 80). Range Hi: 2000 – 20000 Hz (default 18000). Draggable vertical handles in the graph. They are an enable window on the fixed grid. Bands outside [Lo, Hi] are muted, not squeezed. Both work in real time, only Bands is structural.

Workflow

  1. Start with the defaults (36 bands, Sensitivity 50, Depth 12, Focus 50).
  2. Turn on DELTA and listen to what's being removed. Tune Sensitivity until only the resonances and the harshness get caught.
  3. Raise Focus for the surgical single notch, lower it for gentle broadband taming.
  4. Use the Target curve to tell the plugin where to listen, and the Range handles to bound the working area.
  5. Fine-tune Attack and Release, and if needed use the time curves to split the dynamics per frequency range.

Practical Tips

  • Listen first, turn later: Delta is your best friend. As long as you still hear program material in the delta, Sensitivity is too high or the target curve too broad.
  • Leave the bass alone: pull the low end of the target curve to the floor, or set Range Lo to 80 or 120 Hz. Then the plugin only works where the harshness lives.
  • Keep against dullness: if the hits sound blunt, raise Keep. If resonances ring through the transients, lower Keep.
  • Percussive under 1 ms: if the material needs a reaction faster than the Attack minimum, switch Lookahead to 2.5 or 5 ms. Everything else stays at 0 samples.
  • Unmasking: feed an external sidechain, enable SC and audition the key with LISTEN. The bands then duck where the sidechain has energy.
  • Fixed threshold instead of adaptive: if you want an absolute limit, use HARD plus THR.
  • Honest comparison: for a fair A/B, give back a little loudness with COMP before you bypass.

Installation & Activation

RJ-Resonance runs as VST3, AU and AAX on macOS and Windows.

  1. Download and run the installer, then reopen your DAW.
  2. On first launch you get the 30-day, fully functional trial, no limitations.
  3. After purchase, enter your license key in the plugin's info area. The key works on Mac and Windows alike.

Questions about activation or workflow? Just write to me directly. I build these tools myself and I'm glad to help.