Noise reduction

Spectral noise gate: learn a noise profile or follow the floor adaptively, then turn down each frequency bin that stays near it.

  • Dynamics
  • Since 0.2.0
  • noise reduction
  • denoise
  • hiss
  • hum
  • spectral gate
  • restoration
  • cleanup

Open in TuneToys

Noise reduction as the Patch draws it, at default values: inlets on the left, outlets on the right.

Turn down steady hiss, hum and room noise while the sound you want passes through.

What it does#

Noise reduction splits the sound into about a thousand narrow frequency bins (2048-point frames up to 48 kHz, 4096 above, about 23 Hz apart) and compares each bin with a noise floor. A bin that rises more than Threshold above the floor passes unchanged. A bin that stays near the floor is turned down by Reduction; between the two, the cut eases in over 3 dB. Each bin opens with Attack and closes with Release, then the bins are put back together.

The floor comes from one of two places. With Learn, you play only the noise and the node memorises its average level in every bin. With Adaptive on, it follows the quietest recent level of each bin over about two seconds, so it tracks a floor that changes without a Learn pass. The node delays its output by one frame, 2048 samples (about 43 ms at 48 kHz, 4096 above), and reports that latency, so the rest of the Toy stays aligned.

A learned profile lives only in the running engine. It is not saved with the Toy and is gone when the Toy is prepared again, for example after a reload or an export, so learn it again then.

When to use it#

Use it on recordings, microphones or samples with a steady noise underneath: tape or preamp hiss, a fan, air conditioning, mains hum, a noisy synth. It is not a gate for silences between notes, and it does not remove noises that come and go, like clicks or traffic.

Ports#

PortDirectionSignalLanes
audioInputAudioInferred from the cable
audioOutputAudioInferred from the cable

Parameters#

ParameterLabelRangeDefaultUnitScaleNotes
learnLearn0 to 10linearWhile Learning, the input passes unchanged and its average spectrum becomes the noise profile. Play only the noise. Each new Learning starts afresh. Choices: 0 Off, 1 Learning.
reductionReduction0 to 6018dBlinearHow far a bin at the noise floor is turned down.
thresholdThreshold-12 to 249dBlinearHow far above the noise profile a bin must rise to pass untouched. Bins 3 dB or more below it get the full Reduction.
attack_msAttack1 to 20010mslogHow fast a bin opens when a sound rises above the threshold.
release_msRelease10 to 2000150mslogHow fast a bin closes again after the sound falls back to the noise.
smoothingSmoothing0 to 10.3%linearAverages each bin's level over up to 100 ms before deciding, which steadies the gate and avoids watery, chirping residue. Stored as a fraction; shown ×100 as a percentage.
adaptiveAdaptive0 to 10linearOn follows the noise floor continuously from the quietest recent level of each bin, without Learn. Sounds held steady for over two seconds then count as noise. Choices: 0 Off, 1 On.
mixMix0 to 11%linearBlend from the dry input, delayed to stay aligned, to the reduced signal. Stored as a fraction; shown ×100 as a percentage.

Learn (learn)#

Switch to Learning while only the noise plays, for a second or more, then back to Off. While Learning, the input passes unchanged. Each new Learning pass replaces the previous profile. The first frame length after you switch it on (about 43 ms), which still holds older sound, is left out.

Reduction (reduction)#

How far a bin at the noise floor is turned down, from 0 to 60 dB. 12 to 24 dB sounds natural; more removes the noise entirely but can leave the sound thin.

Threshold (threshold)#

How far above the floor, in dB, a bin must rise to pass untouched. The default of 9 dB keeps random peaks in the noise from opening bins. Lower it to keep quiet detail; raise it if noise still bubbles through.

Attack and Release (attack_ms, release_ms)#

How fast a bin opens when a sound arrives and how fast it closes after. Short attacks keep transients; longer releases let reverb tails and decays fade naturally.

Smoothing (smoothing)#

Averages each bin's level over up to 100 ms before the decision. More smoothing steadies the gate and avoids a watery, chirping residue; less reacts faster.

Adaptive (adaptive)#

On, the floor is the quietest recent level of each bin, lifted to match the average of steady noise and smoothed across neighbouring bins. It needs about two seconds of sound to settle, and a sound held perfectly steady for longer than that starts to count as noise. Off uses the learned profile; with no profile, nothing is reduced.

Mix (mix)#

Blends the reduced signal with the dry input, which is delayed by the same frame so the two stay aligned.

Tips#

  • Learn on a stretch of pure noise: the start of a recording, or the room before anyone plays.
  • Start with Reduction around 18 dB and raise it slowly. If the sound turns watery, raise Smoothing or lower Reduction.
  • Use Adaptive for noise that drifts, such as a fan that speeds up. Use Learn for sustained tones that must never be treated as noise.
  • Put an EQ before it to cut rumble the node does not need to judge.

See also#

Resonance suppressor, Compressor, Parametric EQ, Noise.

Help patches

Each help patch is an ordinary Toy that teaches one idea. The diagram shows the Patch; the preview shows its Frame. Open it in TuneToys to play and edit it.

1. Learn the hiss, then remove it

beginner Teaches: learn, reduction, threshold, mix

A soft tone over steady hiss: learn the hiss alone, then let Noise reduction turn it down.

Patch: Oscillator audio output connected to Mixer tone.in input. Noise audio output connected to Mixer hiss.in input. Mixer audio output connected to Noise reduction audio input. Noise reduction audio output connected to Patch outputs audio input.
Connections as text
  • Oscillator audio output connected to Mixer tone.in input
  • Noise audio output connected to Mixer hiss.in input
  • Mixer audio output connected to Noise reduction audio input
  • Noise reduction audio output connected to Patch outputs audio input
  • 1. Turn Tone to 0 so only the hiss plays. 2. Switch Learn on for a second or two, then off. 3. Bring Tone back.
  • While Learning, the sound passes unchanged and the node memorises the hiss, band by band. It forgets it when the Toy is prepared again.
  • Reduction is how far the hiss goes down. Raise Threshold if some hiss still bubbles through; Mix blends back the dry sound.
Frame preview: Learn the hiss, then remove itFrame “Learn the hiss, then remove it” with 6 elements: text heading, toggle Learn, knob Mix, knob Reduction, knob Threshold, knob Tone.LEARN THE HISS, THEN REMOVE ITLearn1 %Mix24 dBReduction9 dBThreshold0.12 linearTone
Frame preview (static). Controls show their default values.

Open in TuneToys

2. Follow a changing noise floor

intermediate Teaches: adaptive, attack_ms, release_ms, smoothing

Adaptive tracks hiss that slowly rises and falls under phrases of a tone; Attack, Release and Smoothing shape the gate.

Patch: Oscillator audio output connected to Gain “voice” audio input. Control LFO “phrases” control output connected to Gain “voice” @level input. Noise audio output connected to Gain “floor” audio input. Control LFO “drift” control output connected to Gain “floor” @level input. Gain “voice” audio output connected to Mixer voice.in input. Gain “floor” audio output connected to Mixer floor.in input. Mixer audio output connected to Noise reduction audio input. Noise reduction audio output connected to Patch outputs audio input.
Connections as text
  • Oscillator audio output connected to Gain “voice” audio input
  • Control LFO “phrases” control output connected to Gain “voice” @level input
  • Noise audio output connected to Gain “floor” audio input
  • Control LFO “drift” control output connected to Gain “floor” @level input
  • Gain “voice” audio output connected to Mixer voice.in input
  • Gain “floor” audio output connected to Mixer floor.in input
  • Mixer audio output connected to Noise reduction audio input
  • Noise reduction audio output connected to Patch outputs audio input
  • The hiss slowly swells and fades over 20 seconds. Adaptive follows it from the quietest moments of each band, with no Learn pass.
  • Give it two seconds to settle. Anything held steady for longer than that would count as noise, so the tone plays in phrases.
  • Attack opens bands quickly when the tone starts; Release closes them gently after. Smoothing steadies the decision, avoiding a watery residue.
Frame preview: Follow a changing noise floorFrame “Follow a changing noise floor” with 6 elements: toggle Adaptive, knob Attack, text heading, knob Reduction, knob Release, knob Smoothing.Adaptive10 msAttackFOLLOW A CHANGING NOISE FLOOR18 dBReduction150 msRelease0.3 %Smoothing
Frame preview (static). Controls show their default values.

Open in TuneToys

  • Resonance suppressor Spectral resonance suppressor: finds narrow peaks that stand above the local spectral average and pulls them down dynamically, bin by bin.
  • Compressor Peak/RMS compression with a sidechain key input, detector filtering, hold, adaptive release and channel linking.
  • Parametric EQ Parametric EQ with up to 32 reorderable RBJ bands: cuts, shelves, bells and notches, per-band bypass and output trim.
  • Noise Deterministic white noise with independent channel and instance streams.

Edit this page on GitHub

esc

↑ ↓ move↩ open⌘↩ new tabesc close