Implemented and tested artificial reverb with 1, 3 or 10 reverberation time values

parent af276202
......@@ -48,6 +48,7 @@
// STL includes
#include <list>
#include <set>
#include <memory>
// External VA forward declarations
class CVACoreImpl;
......@@ -88,6 +89,16 @@ public:
void ProcessStream( const ITAStreamInfo* pStreamInfo );
ITADatasource* GetOutputDatasource();
void SetParameters( const CVAStruct& );
CVAStruct GetParameters( const CVAStruct& ) const;
//! Filter base class for reverb equalization
class CFilterBase
{
public:
virtual void Process( int iNumSamples, float* pfOut, bool bAutoReset = true ) = 0;
};
protected:
//! Internal representation of a listener
......@@ -185,8 +196,10 @@ private:
const CVAAudioRendererInitParams m_oParams; //!< Create a const copy of the init params
CVACoreImpl* m_pCore; //!< Pointer to VACore
double m_dReverberationTime; //!< Reverberation time [s]
std::vector< double > m_vdReverberationTimes; //!< Reverberation times [s]
std::vector< std::shared_ptr< CFilterBase > > m_vpFilter; //!< Reverb EQ filters
double m_dRoomVolume; //!< Room volume [m^3]
double m_dRoomSurfaceArea; //!< Room surface area [m^2]
double m_dSoundPowerCorrectionFactor; //!< Sound power correction factor (BRIR vs. Direct Sound level)
......@@ -247,6 +260,9 @@ private:
*/
void Init( const CVAStruct& oArgs );
//! Design equalization filters for different reverberation times & base frequencies
void DesignEQFilters();
// --= Update internal lists (sources, listener, artificial reverb paths) =--
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment