MEAP The Library

MOZZI
MEAP The Class
C++ tips
Mozzi Reworks
mOscil
mSample
Generators
mDust
mNoise
mOperator
mSineLFO
mEnvSection
Effects
mBitcrusher
mChorus
mDigitalDelay
mFlanger
mPlateReverb
mSchroederReverb
DSP
mDelayLine
mFeedbackComb
mFeedforwardComb
mFIR
mIIR
mNaturalComb
mOnePoleLPF
mResonz
mRingz
mSchroederAllpass
mInstruments
mDrumRack
mFM4Instrument
mMarimbaInstrument
mPopInstrument
mRompler
mStringInstrument
mStringSynthInstrument
Composition
mMML
mTransitionTable
Utilities
mEventDelayMicros
mRandomDistribution

class: mPlateReverb


plate reverb

Description

Implementation of “plate-style” reverb described in Jon Dattoro - Effect Design Part 1: Reverberator and Other Filters

Template Parameters

<template class T = int32_t>

T: data type used internally in delay lines

Class Methods

Constructor

mPlateReverb(float decay = 0.6, float damping = 0.8, float bandwidth = 0.3, float mix = 0.5)

decay: sets decay of reverb between 0 (short) and 1.0 (long)

damping: sets damping within reverberation network (0 to 1.0). High values correspond to more lowpass filtering, creating a dark reverb.

bandwidth: sets cutoff frequency of a lowpass filter at the input of the reverb (0 to 1.0). Low values correspond to more filtering, which mainly smooths sharp transients.

mix: sets dry/wet mix (0 to 1.0)


void setDecay(float decay)

decay: sets decay of reverb between 0 (short) and 1.0 (long)


void setDamping(float damping)

damping: sets damping within reverberation network (0 to 1.0). High values correspond to more lowpass filtering, creating a dark reverb.


void setBandwidth(float bandwidth)

bandwidth: sets cutoff frequency of a lowpass filter at the input of the reverb (0 to 1.0). Low values correspond to more filtering, which mainly smooths sharp transients.


void setMix(float mix)

mix: sets dry/wet mix (0 to 1.0)


T next(T in_sample)

Send a sample of audio into the reverb and return a sample back. Note that clipping can occur within the reverb tank if input is too loud, especially at high decay times.

Example

//global declaration
mPlateReverb my_reverb(0.7, 0.3, 0.5, 0.5);

//in updateAudio
out_sample = my_reverb.next(oscillator_output); // where oscillator_output is the output of some previous sound-generating object

Relevant Tutorials