JPL Spatial
Sound spatialization and propagation library
Loading...
Searching...
No Matches
JPL::ShelfEQ< NumEQBands > Class Template Reference

Multi-Shelf 2nd-order graphic equalizer. More...

#include <JPLSpatial/Auralization/ShelfEQ.h>

Inheritance diagram for JPL::ShelfEQ< NumEQBands >:
JPL::Topology::Cascade< NumEQBands - 1 >

Public Types

using Base = Topology::Cascade<NumEQBands - 1>
 
using Params = ShelfEQParams<NumBands>
 
using StateType = State::Cascade<NumFilters>
 
using GainVec = std::array<float, NumBands>
 
using GainMat = std::array<float, NumBands * NumBands>
 

Public Member Functions

JPL_INLINE bool Prepare (const Params &params)
 
bool SetFrequencies (std::span< const float, NumFilters > frequencies)
 Set the desired frequencies of the control points.
 
void SetGainsDb (std::span< const float, NumBands > gainsDb)
 Set the desired gains at the control points.
 
- Public Member Functions inherited from JPL::Topology::Cascade< NumEQBands - 1 >
JPL_INLINE std::complex< double > CalculateResponse (double normalizedFrequency) const
 

Static Public Attributes

static constexpr std::size_t NumBands = NumEQBands
 
static constexpr std::size_t NumFilters = NumBands - 1
 

Additional Inherited Members

- Public Attributes inherited from JPL::Topology::Cascade< NumEQBands - 1 >
std::array< Biquad, N > Stages
 

Detailed Description

template<std::size_t NumEQBands>
requires (NumEQBands > 1)
class JPL::ShelfEQ< NumEQBands >

Multi-Shelf 2nd-order graphic equalizer.

Member Typedef Documentation

◆ Base

template<std::size_t NumEQBands>
using JPL::ShelfEQ< NumEQBands >::Base = Topology::Cascade<NumEQBands - 1>

◆ GainMat

template<std::size_t NumEQBands>
using JPL::ShelfEQ< NumEQBands >::GainMat = std::array<float, NumBands * NumBands>

◆ GainVec

template<std::size_t NumEQBands>
using JPL::ShelfEQ< NumEQBands >::GainVec = std::array<float, NumBands>

◆ Params

template<std::size_t NumEQBands>
using JPL::ShelfEQ< NumEQBands >::Params = ShelfEQParams<NumBands>

◆ StateType

template<std::size_t NumEQBands>
using JPL::ShelfEQ< NumEQBands >::StateType = State::Cascade<NumFilters>

Member Function Documentation

◆ Prepare()

template<std::size_t NumEQBands>
requires (NumEQBands > 1)
JPL_INLINE bool JPL::ShelfEQ< NumEQBands >::Prepare ( const Params & params)

Prepare DSF EQ with given parameters. This must be called at least once before anything else.

◆ SetFrequencies()

template<std::size_t NumEQBands>
requires (NumEQBands > 1)
bool JPL::ShelfEQ< NumEQBands >::SetFrequencies ( std::span< const float, NumFilters > frequencies)
inline

Set the desired frequencies of the control points.

◆ SetGainsDb()

template<std::size_t NumEQBands>
requires (NumEQBands > 1)
void JPL::ShelfEQ< NumEQBands >::SetGainsDb ( std::span< const float, NumBands > gainsDb)
inline

Set the desired gains at the control points.

Member Data Documentation

◆ NumBands

template<std::size_t NumEQBands>
std::size_t JPL::ShelfEQ< NumEQBands >::NumBands = NumEQBands
staticconstexpr

◆ NumFilters

template<std::size_t NumEQBands>
std::size_t JPL::ShelfEQ< NumEQBands >::NumFilters = NumBands - 1
staticconstexpr

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