Main Content

Reverberator

Add reverberation to audio signal

  • Reverberator block

Libraries:
Audio Toolbox / Effects

Description

The Reverberator block adds reverberation to mono or stereo audio signals. You can tune parameters of the Reverberator block to mimic different acoustic environments.

Ports

Input

expand all

  • Matrix input –– Each column of the input is treated as an independent channel.

  • 1-D vector input –– The input is treated as a single channel.

This port is unnamed unless you specify additional input ports.

Data Types: single | double

Dependencies

To enable this port, select Specify from input port for the Pre-delay (s) parameter.

Data Types: single | double

Dependencies

To enable this port, select Specify from input port for the Highcut frequency (Hz) parameter.

Data Types: single | double

Dependencies

To enable this port, select Specify from input port for the Diffusion parameter.

Data Types: single | double

Dependencies

To enable this port, select Specify from input port for the Decay factor parameter.

Data Types: single | double

Dependencies

To enable this port, select Specify from input port for the High frequency damping parameter.

Data Types: single | double

Dependencies

To enable this port, select Specify from input port for the Wet/dry mix parameter.

Data Types: single | double

Output

expand all

The Reverberator block outputs a signal with the same data type as the input signal. The size of the output depends on the size of the input:

  • Matrix input –– The block outputs a matrix of the same size and data type as the input signal.

  • 1-D vector input –– The block outputs an N-by-1 matrix (column vector), where N is the number of elements in the 1-D vector.

Data Types: single | double

Parameters

expand all

If a parameter is listed as tunable, then you can change its value during simulation.

Pre-delay for reverberation is the time between hearing direct sound and the first early reflection. The value of Pre-delay (s) is proportional to the size of the room being modeled.

To specify Pre-delay (s) from an input port, select Specify from input port for the parameter.

Tunable: Yes

Lowpass filter cutoff is the –3 dB cutoff frequency for the single-pole lowpass filter at the front of the reverberator structure. It prevents the application of reverberation to high-frequency components of the input.

To specify Highcut frequency (Hz) from an input port, select Specify from input port for the parameter.

Tunable: Yes

Diffusion is proportional to the rate at which the reverb tail builds in density. Increasing Diffusion pushes the reflections closer together, thickening the sound. Reducing Diffusion creates more discrete echoes.

To specify Diffusion from an input port, select Specify from input port for the parameter.

Tunable: Yes

Decay factor is inversely proportional to the time it takes for reflections to run out of energy. To model a large room, use a long reverb tail (low decay factor). To model a small room, use a short reverb tail (high decay factor).

To specify Decay factor from an input port, select Specify from input port for the parameter.

Tunable: Yes

High frequency damping is proportional to the attenuation of high frequencies in the reverberation output. Setting High frequency damping to a large value makes high-frequency reflections decay faster than low-frequency reflections.

To specify High frequency damping from an input port, select Specify from input port for the parameter.

Tunable: Yes

Wet/dry mix is the ratio of wet (reverberated) signal to dry (original) signal that your Reverberator block outputs.

To specify Wet/dry mix from an input port, select Specify from input port for the parameter.

Tunable: Yes

When you select this parameter, the block inherits its sample rate from the input signal. When you clear this parameter, you specify the sample rate in Input sample rate (Hz).

Tunable: Yes

Dependencies

To enable this parameter, clear the Inherit sample rate from input parameter.

  • Interpreted execution – Simulate the model using the MATLAB® interpreter. This option reduces startup time and the simulation speed is comparable to Code generation. In this mode, you can debug the source code of the block.

  • Code generation – Simulate the model using generated C code. The first time you run a simulation, Simulink® generates C code for the block. The C code is reused for subsequent simulations, as long as the model does not change. This option requires additional startup time, but the speed of the subsequent simulations is comparable to Interpreted execution.

Block Characteristics

Data Types

double | single

Direct Feedthrough

no

Multidimensional Signals

no

Variable-Size Signals

yes

Zero-Crossing Detection

no

Algorithms

expand all

The algorithm to add reverberation follows the plate-class reverberation topology described in [1] and is based on a 29,761 Hz sample rate.

The algorithm has five stages.

The description for the algorithm that follows is for a stereo input. A mono input is a simplified case.

References

[1] Dattorro, Jon. "Effect Design, Part 1: Reverberator and Other Filters." Journal of the Audio Engineering Society. Vol. 45, Issue 9, 1997, pp. 660–684.

[2] Dattorro, Jon. "Effect Design, Part 2: Delay-Line Modulation and Chorus." Journal of the Audio Engineering Society. Vol. 45, Issue 10, 1997, pp. 764–788.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced in R2016a

See Also