# Noise reduction

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

Source: https://docs.tune.toys/nodes/std.denoise/

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

<!-- ports:start -->

| Port    | Direction | Signal | Lanes                   |
| ------- | --------- | ------ | ----------------------- |
| `audio` | Input     | Audio  | Inferred from the cable |
| `audio` | Output    | Audio  | Inferred from the cable |

<!-- ports:end -->

## Parameters

<!-- parameters:start -->

| Parameter    | Label     | Range      | Default | Unit | Scale  | Notes                                                                                                                                                                                 |
| ------------ | --------- | ---------- | ------- | ---- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `learn`      | Learn     | 0 to 1     | 0       |      | linear | While 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.      |
| `reduction`  | Reduction | 0 to 60    | 18      | dB   | linear | How far a bin at the noise floor is turned down.                                                                                                                                      |
| `threshold`  | Threshold | -12 to 24  | 9       | dB   | linear | How far above the noise profile a bin must rise to pass untouched. Bins 3 dB or more below it get the full Reduction.                                                                 |
| `attack_ms`  | Attack    | 1 to 200   | 10      | ms   | log    | How fast a bin opens when a sound rises above the threshold.                                                                                                                          |
| `release_ms` | Release   | 10 to 2000 | 150     | ms   | log    | How fast a bin closes again after the sound falls back to the noise.                                                                                                                  |
| `smoothing`  | Smoothing | 0 to 1     | 0.3     | %    | linear | Averages 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.           |
| `adaptive`   | Adaptive  | 0 to 1     | 0       |      | linear | On 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. |
| `mix`        | Mix       | 0 to 1     | 1       | %    | linear | Blend from the dry input, delayed to stay aligned, to the reduced signal. Stored as a fraction; shown ×100 as a percentage.                                                           |

<!-- parameters:end -->

### 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](https://docs.tune.toys/nodes/std.resonance/), [Compressor](https://docs.tune.toys/nodes/std.compressor/), [Parametric EQ](https://docs.tune.toys/nodes/std.eq/), [Noise](https://docs.tune.toys/nodes/std.noise/).
