# Convolver

> Convolution with an attached WAV impulse response: real rooms, speaker cabinets and creative textures, with predelay, trims and gain.

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

Convolver filters a sound through an attached WAV impulse response, for sampled rooms, speaker cabinets and creative textures.

## What it does

The impulse response is loaded and prepared away from the audio callback. The dry input is delayed to align with the processed signal. There is no automatic impulse normalization; adjust the wet gain for the response you attach. The bundled help patches use an original room impulse.

## When to use it

Use it to reproduce a measured space or cabinet. Use [Reverb](https://docs.tune.toys/nodes/std.reverb/) for a synthetic room whose decay and damping you can shape continuously.

## 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                                                                                                                                                                                                       |
| ------------- | --------- | --------- | ------- | ---- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `mix`         | Mix       | 0 to 1    | 1       | %    | linear | Blend from the dry input, delayed to stay aligned, to the convolved signal. Stored as a fraction; shown ×100 as a percentage.                                                                               |
| `predelay_ms` | Predelay  | 0 to 250  | 0       | ms   | linear | Delay before the convolved signal, to separate a room's reflections from the dry sound.                                                                                                                     |
| `gain`        | Gain      | -48 to 24 | 0       | dB   | linear | Level of the convolved signal. Impulse responses vary widely in level; there is no automatic normalisation.                                                                                                 |
| `ir_start`    | IR start  | 0 to 1    | 0       | %    | linear | Where the impulse response starts, as a share of its length. A change rebuilds the response in the background and crossfades to it. Stored as a fraction; shown ×100 as a percentage.                       |
| `ir_length`   | IR length | 0 to 1    | 1       | %    | linear | How much of the impulse response is used after IR start, as a share of its whole length; shorter shortens a reverb's tail. Stored as a fraction; shown ×100 as a percentage.                                |
| `partition`   | Partition | 0 to 4    | 2       |      | linear | Block size in samples, which is also the latency. Smaller is quicker but costs more processing. Fixed when the Toy is prepared, at the largest value it admits. Choices: 0 64, 1 128, 2 256, 3 512, 4 1024. |

<!-- parameters:end -->

<!-- data:start -->

- `asset`: asset.

<!-- data:end -->

### Mix (`mix`)

Blend from the dry input, delayed to stay aligned, to the convolved signal.

### Predelay (`predelay_ms`)

Delay before the convolved signal, to separate a room's reflections from the dry sound.

### Gain (`gain`)

Level of the convolved signal. Impulse responses vary widely in level; there is no automatic normalisation.

### IR start (`ir_start`)

Where the impulse response starts, as a share of its length. A change rebuilds the response in the background and crossfades to it.

### IR length (`ir_length`)

How much of the impulse response is used after IR start, as a share of its whole length; shorter shortens a reverb's tail.

### Partition (`partition`)

Block size in samples, which is also the latency. Smaller is quicker but costs more processing. Fixed when the Toy is prepared, at the largest value it admits.

## Tips

- Attach a licensed WAV impulse through `data.asset` and the Toy's asset table.
- Reduce Gain for loud impulses and leave output headroom.
- Trimming the response can shorten its tail; Partition trades latency for processing cost.

## See also

[Reverb](https://docs.tune.toys/nodes/std.reverb/), [Delay](https://docs.tune.toys/nodes/std.delay/), [Sampler](https://docs.tune.toys/nodes/std.sampler/).
