LMMS
Loading...
Searching...
No Matches
juce::Reverb Class Reference

#include <juce_Reverb.h>

Classes

struct  Parameters
class  CombFilter
class  AllPassFilter

Public Member Functions

 Reverb ()
const ParametersgetParameters () const noexcept
void setParameters (const Parameters &newParams)
void setSampleRate (const double sampleRate)
void reset ()
void processStereo (float *const left, float *const right, const int numSamples) noexcept
void processMono (float *const samples, const int numSamples) noexcept

Private Types

enum  { numCombs = 8 , numAllPasses = 4 , numChannels = 2 }

Private Member Functions

void updateDamping () noexcept
void setDamping (const float dampingToUse, const float roomSizeToUse) noexcept

Static Private Member Functions

static bool isFrozen (const float freezeMode) noexcept

Private Attributes

Parameters parameters
float gain
CombFilter comb [numChannels][numCombs]
AllPassFilter allPass [numChannels][numAllPasses]
SmoothedValue< float > damping
SmoothedValue< float > feedback
SmoothedValue< float > dryGain
SmoothedValue< float > wetGain1
SmoothedValue< float > wetGain2

Detailed Description

Performs a simple reverb effect on a stream of audio data.

This is a simple stereo reverb, based on the technique and tunings used in FreeVerb. Use setSampleRate() to prepare it, and then call processStereo() or processMono() to apply the reverb to your audio data.

See also
ReverbAudioSource

@tags{Audio}

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
numCombs 
numAllPasses 
numChannels 

Constructor & Destructor Documentation

◆ Reverb()

juce::Reverb::Reverb ( )
inline

Member Function Documentation

◆ getParameters()

const Parameters & juce::Reverb::getParameters ( ) const
inlinenoexcept

Returns the reverb's current parameters.

◆ isFrozen()

bool juce::Reverb::isFrozen ( const float freezeMode)
inlinestaticprivatenoexcept

◆ processMono()

void juce::Reverb::processMono ( float *const samples,
const int numSamples )
inlinenoexcept

Applies the reverb to a single mono channel of audio data.

◆ processStereo()

void juce::Reverb::processStereo ( float *const left,
float *const right,
const int numSamples )
inlinenoexcept

Applies the reverb to two stereo channels of audio data.

◆ reset()

void juce::Reverb::reset ( )
inline

Clears the reverb's buffers.

◆ setDamping()

void juce::Reverb::setDamping ( const float dampingToUse,
const float roomSizeToUse )
inlineprivatenoexcept

◆ setParameters()

void juce::Reverb::setParameters ( const Parameters & newParams)
inline

Applies a new set of parameters to the reverb. Note that this doesn't attempt to lock the reverb, so if you call this in parallel with the process method, you may get artifacts.

◆ setSampleRate()

void juce::Reverb::setSampleRate ( const double sampleRate)
inline

Sets the sample rate that will be used for the reverb. You must call this before the process methods, in order to tell it the correct sample rate.

◆ updateDamping()

void juce::Reverb::updateDamping ( )
inlineprivatenoexcept

Member Data Documentation

◆ allPass

AllPassFilter juce::Reverb::allPass[numChannels][numAllPasses]
private

◆ comb

CombFilter juce::Reverb::comb[numChannels][numCombs]
private

◆ damping

SmoothedValue<float> juce::Reverb::damping
private

◆ dryGain

SmoothedValue<float> juce::Reverb::dryGain
private

◆ feedback

SmoothedValue<float> juce::Reverb::feedback
private

◆ gain

float juce::Reverb::gain
private

◆ parameters

Parameters juce::Reverb::parameters
private

◆ wetGain1

SmoothedValue<float> juce::Reverb::wetGain1
private

◆ wetGain2

SmoothedValue<float> juce::Reverb::wetGain2
private

The documentation for this class was generated from the following file: