Skip to content

Reverb

Base class used to create DSP reverbs.

Inherited by the following classes: SparkyStudios::Audio::Amplitude::DattoroReverb, SparkyStudios::Audio::Amplitude::FreeverbReverb, SparkyStudios::Audio::Amplitude::RoomReverb

Detailed Description

The Reverb class implements factory methods to create instances of ReverbInstance objects.

The Reverb class follows the plugin architecture, allowing creation and registration of custom reverb algorithms to the Engine.

Public Functions

Type Name
virtual std::shared_ptr< ReverbInstance > CreateInstance () = 0
Creates a new instance of the reverb.
const AmString & GetName () const
Gets the name of this reverb.
Reverb (AmString name)
Constructs a new Reverb object.
virtual ~Reverb () = default
Default destructor.

Public Static Functions

Type Name
std::shared_ptr< Reverb > Find (const AmString & name)
Look up a reverb by name.
const std::map< AmString, std::shared_ptr< Reverb > > & GetRegistry ()
Gets the list of registered reverbs.
void LockRegistry ()
Locks the reverbs' registry.
void Register (std::shared_ptr< Reverb > reverb)
Registers a new reverb.
void UnlockRegistry ()
Unlocks the reverbs' registry.
void Unregister (std::shared_ptr< const Reverb > reverb)
Unregisters a reverb.

Protected Attributes

Type Name
AmString m_name

Public Functions Documentation

CreateInstance

Creates a new instance of the reverb.

virtual std::shared_ptr< ReverbInstance > Amplitude::Reverb::CreateInstance () = 0

Returns:

A new instance of the reverb.

GetName

Gets the name of this reverb.

const AmString & Amplitude::Reverb::GetName () const

Returns:

The name of this reverb.

Reverb

Constructs a new Reverb object.

explicit Amplitude::Reverb::Reverb (
    AmString name
) 

Parameters:

  • name The reverb name, e.g. "Freeverb".
~Reverb

Default destructor.

virtual Amplitude::Reverb::~Reverb () = default

Public Static Functions Documentation

Find

Look up a reverb by name.

static std::shared_ptr< Reverb > Amplitude::Reverb::Find (
    const AmString & name
) 

Parameters:

  • name The name of the reverb to find.

Returns:

The reverb with the given name, or nullptr if not found.

GetRegistry

Gets the list of registered reverbs.

static const std::map< AmString, std::shared_ptr< Reverb > > & Amplitude::Reverb::GetRegistry () 

Returns:

The registry of reverbs.

LockRegistry

Locks the reverbs' registry.

static void Amplitude::Reverb::LockRegistry () 

Warning:

This function is mainly used for internal purposes. It's called before the Engine initialization, to discard the registration of new reverbs after the engine is fully loaded.

Register

Registers a new reverb.

static void Amplitude::Reverb::Register (
    std::shared_ptr< Reverb > reverb
) 

Note:

This method does nothing if the registry is locked.

Parameters:

  • reverb The reverb to add in the registry.

See also: LockRegistry, UnlockRegistry

UnlockRegistry

Unlocks the reverbs' registry.

static void Amplitude::Reverb::UnlockRegistry () 

Warning:

This function is mainly used for internal purposes. It's called after the Engine deinitialization, to allow the registration of new reverbs after the engine is fully unloaded.

Unregister

Unregisters a reverb.

static void Amplitude::Reverb::Unregister (
    std::shared_ptr< const Reverb > reverb
) 

Note:

This method does nothing if the registry is locked.

Parameters:

  • reverb The reverb to remove from the registry.

See also: LockRegistry, UnlockRegistry

Protected Attributes Documentation

m_name
AmString SparkyStudios::Audio::Amplitude::Reverb::m_name;

The documentation for this class was generated from the following file: include/SparkyStudios/Audio/Amplitude/DSP/Reverb.h