diff --git a/src/Filtering/VAAtmosphere.cpp b/src/Filtering/VAAtmosphere.cpp index f0ad00aa0ed071cf810041a0769c1c1e59276ce7..841e4fa40ecdddabe8c6e89d86e0155e1b511af6 100644 --- a/src/Filtering/VAAtmosphere.cpp +++ b/src/Filtering/VAAtmosphere.cpp @@ -35,7 +35,7 @@ const float DEF_CENTER_FREQUENCY_THIRDS[ 31 ] = 1000, 1250, 1600, 2000, 2500, 3150, 4000, 5000, 6300, 8000, 10000, 12500, 16000, 20000 }; -void GetAirAbsorptionMagnitudes( CITAThirdOctaveFactorMagnitudeSpectrum& oMags, double dDistance, double dTemperature, double dPressure, double dHumidity ) +void GetAirAbsorptionMagnitudes( ITABase::CThirdOctaveFactorMagnitudeSpectrum& oMags, double dDistance, double dTemperature, double dPressure, double dHumidity ) { // ISO 9613-1 Acoustics - Attenuation of sound during propagation outdoors @@ -108,7 +108,7 @@ void GetAirAbsorptionMagnitudes( CITAThirdOctaveFactorMagnitudeSpectrum& oMags, } -void CalculateAirAbsorptionAttenuation( CITAThirdOctaveFactorMagnitudeSpectrum& oAirAbsMags, double dDistance, double dTemperature, double dStaticPressure, double dHumidity ) +void CalculateAirAbsorptionAttenuation( ITABase::CThirdOctaveFactorMagnitudeSpectrum& oAirAbsMags, double dDistance, double dTemperature, double dStaticPressure, double dHumidity ) { std::vector< float > vfGains( oAirAbsMags.GetNumBands() ); GetAirAbsorptionMagnitudesThirdOctave( &vfGains[ 0 ], dDistance, dTemperature, dStaticPressure, dHumidity ); diff --git a/src/Filtering/VAAtmosphere.h b/src/Filtering/VAAtmosphere.h index 7d7d16287306b2387605f4053115136449f45b2e..07115d1f79bd16151505701faa6d9c083796f0fc 100644 --- a/src/Filtering/VAAtmosphere.h +++ b/src/Filtering/VAAtmosphere.h @@ -43,7 +43,7 @@ void GetAirAbsorptionAttenuationThirdOctaveDecibel( float* pfAirAbsCoeffs, // A * \param fStaticPressure Statischer Luftdruck [Pa] * \param fHumidity Luftfeuchtigkeit [%] */ -void CalculateAirAbsorptionAttenuation( CITAThirdOctaveFactorMagnitudeSpectrum& oAirAbsMags, double dDistance, double dTemperature, double dStaticPressure, double dHumidity ); +void CalculateAirAbsorptionAttenuation( ITABase::CThirdOctaveFactorMagnitudeSpectrum& oAirAbsMags, double dDistance, double dTemperature, double dStaticPressure, double dHumidity ); //! Berechnung der Luftschall-Dämpfung in Terzen als Faktoren (von Jonas implementiert) /** @@ -57,6 +57,6 @@ void CalculateAirAbsorptionAttenuation( CITAThirdOctaveFactorMagnitudeSpectrum& * \param fStaticPressure Statischer Luftdruck [Pa] * \param fHumidity Luftfeuchtigkeit [%] */ -void GetAirAbsorptionMagnitudes( CITAThirdOctaveFactorMagnitudeSpectrum& oMags, double dDistance, double dTemperature, double dStaticPressure, double dHumidity ); +void GetAirAbsorptionMagnitudes( ITABase::CThirdOctaveFactorMagnitudeSpectrum& oMags, double dDistance, double dTemperature, double dStaticPressure, double dHumidity ); #endif // IW_VACORE_ATMOSPHERE diff --git a/src/Filtering/VATemporalVariations.h b/src/Filtering/VATemporalVariations.h index 91f8a855a8a1a9e25ceeef0fc1a0167eba4fee0e..12310d76788247e0a0d691b65d63f8e339fa978f 100644 --- a/src/Filtering/VATemporalVariations.h +++ b/src/Filtering/VATemporalVariations.h @@ -989,26 +989,31 @@ const float VA_TEMPORALNOISE_DATA[ VA_TEMPORALNOISE_NUM_BANDS ][ VA_TEMPORALNOIS 0.3668F, 0.2105F, 0.0884F, -0.0217F, -0.1162F, -0.2177F, -0.3251F, -0.3734F, -0.3437F, -0.2901F } }; -class CVAAtmosphericTemporalVariantions { +class CVAAtmosphericTemporalVariantions +{ public: - CVAAtmosphericTemporalVariantions() { + inline CVAAtmosphericTemporalVariantions() + { m_fOffsetDecibel = 4.0; m_fStrengthDecibel = 3.0; m_iCursor = 0; - } + }; - double getSamplerate() const { return VA_TEMPORALNOISE_SAMPLINGRATE; } + inline double getSamplerate() const + { + return VA_TEMPORALNOISE_SAMPLINGRATE; + }; - inline void getNoiseMagnitudes( CITAThirdOctaveMagnitudeSpectrum& oDest ) + inline void getNoiseMagnitudes( ITABase::CThirdOctaveMagnitudeSpectrum& oDest ) { - assert( CITAThirdOctaveMagnitudeSpectrum::GetNumBands() == VA_TEMPORALNOISE_NUM_BANDS ); + assert( ITABase::CThirdOctaveMagnitudeSpectrum::GetNumBands() == VA_TEMPORALNOISE_NUM_BANDS ); for( int i = 0; i < VA_TEMPORALNOISE_NUM_BANDS; i++ ) { oDest[ i ] = ( float ) db10_to_ratio( m_fStrengthDecibel*VA_TEMPORALNOISE_DATA[ i ][ m_iCursor ] ); } m_iCursor = ( ++m_iCursor ) % VA_TEMPORALNOISE_NUM_SAMPLES; - } + }; private: float m_fOffsetDecibel; diff --git a/src/Rendering/Ambisonics/Freefield/VAAmbisonicsFreefieldAudioRenderer.cpp b/src/Rendering/Ambisonics/Freefield/VAAmbisonicsFreefieldAudioRenderer.cpp index 8079d32e781aa339197bf1778ddeff8047ace6ba..8e418e5a19af0b2c09f7c0038e4e7e3572f2d50b 100644 --- a/src/Rendering/Ambisonics/Freefield/VAAmbisonicsFreefieldAudioRenderer.cpp +++ b/src/Rendering/Ambisonics/Freefield/VAAmbisonicsFreefieldAudioRenderer.cpp @@ -1236,9 +1236,9 @@ void CVAAFFSoundPath::UpdateDir( bool bDIRAuraModeEnabled ) pDirectivityDataNew->getNearestNeighbour( DAFF_OBJECT_VIEW, float( oRelations.dAzimuthS2L ), float( oRelations.dElevationS2L ), oDirectivityStateNew.iRecord ); if( oDirectivityStateCur.iRecord != oDirectivityStateNew.iRecord ) { - std::vector< float > vfMags( CITAThirdOctaveMagnitudeSpectrum::GetNumBands() ); + std::vector< float > vfMags( ITABase::CThirdOctaveMagnitudeSpectrum::GetNumBands() ); pDirectivityDataNew->getMagnitudes( oDirectivityStateNew.iRecord, 0, &vfMags[ 0 ] ); - CITAThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; + ITABase::CThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; oDirectivityMagnitudes.SetMagnitudes( vfMags ); pThirdOctaveFilterBank->SetMagnitudes( oDirectivityMagnitudes ); } diff --git a/src/Rendering/Binaural/AirTrafficNoise/VAAirTrafficNoiseAudioRenderer.cpp b/src/Rendering/Binaural/AirTrafficNoise/VAAirTrafficNoiseAudioRenderer.cpp index 6a85e0d0a2e0f0c1d2d05e55eedb384242a4a1ee..02bf455c92074e2e7bf74042c5b4a1070b0e0d0c 100644 --- a/src/Rendering/Binaural/AirTrafficNoise/VAAirTrafficNoiseAudioRenderer.cpp +++ b/src/Rendering/Binaural/AirTrafficNoise/VAAirTrafficNoiseAudioRenderer.cpp @@ -135,17 +135,17 @@ public: CSoundSourceDirectivityState oDirectivityStateCur; //!< Aktueller Status der Richtcharakteristik CSoundSourceDirectivityState oDirectivityStateNew; //!< Neuer Status der Richtcharakteristik - CITAThirdOctaveGainMagnitudeSpectrum oSoundSourceDirectivityMagnitudes; //!< Magnitudes for directivity + ITABase::CThirdOctaveGainMagnitudeSpectrum oSoundSourceDirectivityMagnitudes; //!< Magnitudes for directivity CVAAtmosphericTemporalVariantions oATVGenerator; //!< Generator for temporal variation magnitudes of the time signal by medium shifts during propagation - CITAThirdOctaveGainMagnitudeSpectrum oTemporalVariationMagnitudes; //!< Magnitudes for temporal variation of the time signal by medium shifts during propagation + ITABase::CThirdOctaveGainMagnitudeSpectrum oTemporalVariationMagnitudes; //!< Magnitudes for temporal variation of the time signal by medium shifts during propagation - CITAThirdOctaveGainMagnitudeSpectrum oAirAttenuationMagnitudes; //!< Magnitudes for air attenuation (damping) + ITABase::CThirdOctaveGainMagnitudeSpectrum oAirAttenuationMagnitudes; //!< Magnitudes for air attenuation (damping) - CITAThirdOctaveGainMagnitudeSpectrum oGroundReflectionMagnitudes; //!< Ground reflection parameters (only for reflection paths) + ITABase::CThirdOctaveGainMagnitudeSpectrum oGroundReflectionMagnitudes; //!< Ground reflection parameters (only for reflection paths) CITAThirdOctaveFilterbank* pThirdOctaveFilterBank; //!< DSP-Element zur Filterung von Third-Octave Datensätzen der Richtcharakteristik - CITAThirdOctaveGainMagnitudeSpectrum oThirdOctaveFilterMagnitudes; //!< DSP magnitudes (third octave band resolution) + ITABase::CThirdOctaveGainMagnitudeSpectrum oThirdOctaveFilterMagnitudes; //!< DSP magnitudes (third octave band resolution) CSoundReceiverDirectivityState oSoundReceiverDirectivityStateCur; //!< Aktueller Status der HRIR CSoundReceiverDirectivityState oSoundReceiverDirectivityStateNew; //!< Neuer Status der HRIR @@ -1344,10 +1344,10 @@ void CVABATNSoundPath::UpdateSoundSourceDirectivity() pDirectivityDataNew->getNearestNeighbour( DAFF_OBJECT_VIEW, float( oDirSoundPath.oRelations.dAzimuthS2L ), float( oDirSoundPath.oRelations.dElevationS2L ), oDirSoundPath.oDirectivityStateNew.iRecord ); if( oDirSoundPath.oDirectivityStateCur.iRecord != oDirSoundPath.oDirectivityStateNew.iRecord ) { - std::vector< float > vfGains( CITAThirdOctaveMagnitudeSpectrum::GetNumBands() ); + std::vector< float > vfGains( ITABase::CThirdOctaveMagnitudeSpectrum::GetNumBands() ); pDirectivityDataNew->getMagnitudes( oDirSoundPath.oDirectivityStateNew.iRecord, 0, &vfGains[ 0 ] ); - CITAThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; + ITABase::CThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; oDirectivityMagnitudes.SetMagnitudes( vfGains ); oDirSoundPath.pThirdOctaveFilterBank->SetMagnitudes( oDirectivityMagnitudes ); } @@ -1379,10 +1379,10 @@ void CVABATNSoundPath::UpdateSoundSourceDirectivity() pDirectivityDataNew->getNearestNeighbour( DAFF_OBJECT_VIEW, float( oRefSoundPath.oRelations.dAzimuthS2L ), float( oRefSoundPath.oRelations.dElevationS2L ), oRefSoundPath.oDirectivityStateNew.iRecord ); if( oRefSoundPath.oDirectivityStateCur.iRecord != oRefSoundPath.oDirectivityStateNew.iRecord ) { - std::vector< float > vfGains( CITAThirdOctaveMagnitudeSpectrum::GetNumBands() ); + std::vector< float > vfGains( ITABase::CThirdOctaveMagnitudeSpectrum::GetNumBands() ); pDirectivityDataNew->getMagnitudes( oRefSoundPath.oDirectivityStateNew.iRecord, 0, &vfGains[ 0 ] ); - CITAThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; + ITABase::CThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; oDirectivityMagnitudes.SetMagnitudes( vfGains ); oRefSoundPath.pThirdOctaveFilterBank->SetMagnitudes( oDirectivityMagnitudes ); } @@ -1603,7 +1603,7 @@ void ExternalSimulationUpdate( CVABATNSoundPath::PropPath& oPathProperties, cons if( oUpdate.HasKey( "directivity_third_octaves" ) ) { const CVAStruct& oFilterUpdate( oUpdate[ "directivity_third_octaves" ] ); - CITAThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oSoundSourceDirectivityMagnitudes ); + ITABase::CThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oSoundSourceDirectivityMagnitudes ); for( int i = 0; i < oMagnitudeSpectrum.GetNumBands(); i++ ) { std::string sBandValueKey = "band_" + std::to_string( long( i + 1 ) ); @@ -1615,7 +1615,7 @@ void ExternalSimulationUpdate( CVABATNSoundPath::PropPath& oPathProperties, cons if( oUpdate.HasKey( "air_attenuation_third_octaves" ) ) { const CVAStruct& oFilterUpdate( oUpdate[ "air_attenuation_third_octaves" ] ); - CITAThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oAirAttenuationMagnitudes ); + ITABase::CThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oAirAttenuationMagnitudes ); for( int i = 0; i < oMagnitudeSpectrum.GetNumBands(); i++ ) { std::string sBandValueKey = "band_" + std::to_string( long( i + 1 ) ); @@ -1627,7 +1627,7 @@ void ExternalSimulationUpdate( CVABATNSoundPath::PropPath& oPathProperties, cons if( oUpdate.HasKey( "temporal_variation_third_octaves" ) ) { const CVAStruct& oFilterUpdate( oUpdate[ "temporal_variation_third_octaves" ] ); - CITAThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oTemporalVariationMagnitudes ); + ITABase::CThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oTemporalVariationMagnitudes ); for( int i = 0; i < oMagnitudeSpectrum.GetNumBands(); i++ ) { std::string sBandValueKey = "band_" + std::to_string( long( i + 1 ) ); @@ -1639,7 +1639,7 @@ void ExternalSimulationUpdate( CVABATNSoundPath::PropPath& oPathProperties, cons if( oUpdate.HasKey( "ground_reflection_third_octaves" ) ) { const CVAStruct& oFilterUpdate( oUpdate[ "ground_reflection_third_octaves" ] ); - CITAThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oGroundReflectionMagnitudes ); + ITABase::CThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oGroundReflectionMagnitudes ); for( int i = 0; i < oMagnitudeSpectrum.GetNumBands(); i++ ) { std::string sBandValueKey = "band_" + std::to_string( long( i + 1 ) ); diff --git a/src/Rendering/Binaural/FreeField/VABinauralFreeFieldAudioRenderer.cpp b/src/Rendering/Binaural/FreeField/VABinauralFreeFieldAudioRenderer.cpp index 7fd3ac5685daabc39c42489597cff02cc2c2ebce..dcb9f9671dfdf7ee5ebdf28aa76210a3a0e5fe4e 100644 --- a/src/Rendering/Binaural/FreeField/VABinauralFreeFieldAudioRenderer.cpp +++ b/src/Rendering/Binaural/FreeField/VABinauralFreeFieldAudioRenderer.cpp @@ -1225,9 +1225,9 @@ void CVABFFSoundPath::UpdateDir( bool bDIRAuraModeEnabled ) pDirectivityDataNew->GetDAFFContent()->getNearestNeighbour( DAFF_OBJECT_VIEW, float( oRelations.dAzimuthS2L ), float( oRelations.dElevationS2L ), oDirectivityStateNew.iRecord ); if( oDirectivityStateCur.iRecord != oDirectivityStateNew.iRecord ) { - std::vector< float > vfMags( CITAThirdOctaveMagnitudeSpectrum::GetNumBands() ); + std::vector< float > vfMags( ITABase::CThirdOctaveMagnitudeSpectrum::GetNumBands() ); pDirectivityDataNew->GetDAFFContent()->getMagnitudes( oDirectivityStateNew.iRecord, 0, &vfMags[ 0 ] ); - CITAThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; + ITABase::CThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; oDirectivityMagnitudes.SetMagnitudes( vfMags ); pThirdOctaveFilterBank->SetMagnitudes( oDirectivityMagnitudes ); } diff --git a/src/Rendering/Binaural/FreeField/VABinauralFreefieldAudioRenderer.h b/src/Rendering/Binaural/FreeField/VABinauralFreefieldAudioRenderer.h index 5e45e299c952ce5bb7595216629a7de591db6637..1c85277b9e681507c10c237d0f1f41b110802cf0 100644 --- a/src/Rendering/Binaural/FreeField/VABinauralFreefieldAudioRenderer.h +++ b/src/Rendering/Binaural/FreeField/VABinauralFreefieldAudioRenderer.h @@ -161,7 +161,7 @@ protected: pData = nullptr; CVABasicMotionModel::Config oDefaultConfig; - oDefaultConfig.bLogEstimatedOutputEnabled = oConf.bMotionModelLogEstimatedEnabled;; + oDefaultConfig.bLogEstimatedOutputEnabled = oConf.bMotionModelLogEstimatedEnabled; oDefaultConfig.bLogInputEnabled = oConf.bMotionModelLogInputEnabled; oDefaultConfig.dWindowDelay = oConf.dMotionModelWindowDelay; oDefaultConfig.dWindowSize = oConf.dMotionModelWindowSize; diff --git a/src/Rendering/Binaural/OutdoorNoise/VABinauralOutdoorNoiseAudioRenderer.cpp b/src/Rendering/Binaural/OutdoorNoise/VABinauralOutdoorNoiseAudioRenderer.cpp index 8e1239fe00736b70ac610499713079763d64ba71..4df9e26a050d71a7eaff4332156223acd4c3c042 100644 --- a/src/Rendering/Binaural/OutdoorNoise/VABinauralOutdoorNoiseAudioRenderer.cpp +++ b/src/Rendering/Binaural/OutdoorNoise/VABinauralOutdoorNoiseAudioRenderer.cpp @@ -577,10 +577,10 @@ void CVABATNSoundPath::UpdateSoundSourceDirectivity() pDirectivityDataNew->getNearestNeighbour( DAFF_OBJECT_VIEW, float( oDirSoundPath.oRelations.dAzimuthS2L ), float( oDirSoundPath.oRelations.dElevationS2L ), oDirSoundPath.oDirectivityStateNew.iRecord ); if( oDirSoundPath.oDirectivityStateCur.iRecord != oDirSoundPath.oDirectivityStateNew.iRecord ) { - std::vector< float > vfGains( CITAThirdOctaveMagnitudeSpectrum::GetNumBands() ); + std::vector< float > vfGains( ITABase::CThirdOctaveMagnitudeSpectrum::GetNumBands() ); pDirectivityDataNew->getMagnitudes( oDirSoundPath.oDirectivityStateNew.iRecord, 0, &vfGains[ 0 ] ); - CITAThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; + ITABase::CThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; oDirectivityMagnitudes.SetMagnitudes( vfGains ); oDirSoundPath.pThirdOctaveFilterBank->SetMagnitudes( oDirectivityMagnitudes ); } @@ -612,10 +612,10 @@ void CVABATNSoundPath::UpdateSoundSourceDirectivity() pDirectivityDataNew->getNearestNeighbour( DAFF_OBJECT_VIEW, float( oRefSoundPath.oRelations.dAzimuthS2L ), float( oRefSoundPath.oRelations.dElevationS2L ), oRefSoundPath.oDirectivityStateNew.iRecord ); if( oRefSoundPath.oDirectivityStateCur.iRecord != oRefSoundPath.oDirectivityStateNew.iRecord ) { - std::vector< float > vfGains( CITAThirdOctaveMagnitudeSpectrum::GetNumBands() ); + std::vector< float > vfGains( ITABase::CThirdOctaveMagnitudeSpectrum::GetNumBands() ); pDirectivityDataNew->getMagnitudes( oRefSoundPath.oDirectivityStateNew.iRecord, 0, &vfGains[ 0 ] ); - CITAThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; + ITABase::CThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; oDirectivityMagnitudes.SetMagnitudes( vfGains ); oRefSoundPath.pThirdOctaveFilterBank->SetMagnitudes( oDirectivityMagnitudes ); } @@ -836,7 +836,7 @@ void ExternalSimulationUpdate( CVABATNSoundPath::PropPath& oPathProperties, cons if( oUpdate.HasKey( "directivity_third_octaves" ) ) { const CVAStruct& oFilterUpdate( oUpdate[ "directivity_third_octaves" ] ); - CITAThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oSoundSourceDirectivityMagnitudes ); + ITABase::CThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oSoundSourceDirectivityMagnitudes ); for( int i = 0; i < oMagnitudeSpectrum.GetNumBands(); i++ ) { std::string sBandValueKey = "band_" + std::to_string( long( i + 1 ) ); @@ -848,7 +848,7 @@ void ExternalSimulationUpdate( CVABATNSoundPath::PropPath& oPathProperties, cons if( oUpdate.HasKey( "air_attenuation_third_octaves" ) ) { const CVAStruct& oFilterUpdate( oUpdate[ "air_attenuation_third_octaves" ] ); - CITAThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oAirAttenuationMagnitudes ); + ITABase::CThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oAirAttenuationMagnitudes ); for( int i = 0; i < oMagnitudeSpectrum.GetNumBands(); i++ ) { std::string sBandValueKey = "band_" + std::to_string( long( i + 1 ) ); @@ -860,7 +860,7 @@ void ExternalSimulationUpdate( CVABATNSoundPath::PropPath& oPathProperties, cons if( oUpdate.HasKey( "temporal_variation_third_octaves" ) ) { const CVAStruct& oFilterUpdate( oUpdate[ "temporal_variation_third_octaves" ] ); - CITAThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oTemporalVariationMagnitudes ); + ITABase::CThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oTemporalVariationMagnitudes ); for( int i = 0; i < oMagnitudeSpectrum.GetNumBands(); i++ ) { std::string sBandValueKey = "band_" + std::to_string( long( i + 1 ) ); @@ -872,7 +872,7 @@ void ExternalSimulationUpdate( CVABATNSoundPath::PropPath& oPathProperties, cons if( oUpdate.HasKey( "ground_reflection_third_octaves" ) ) { const CVAStruct& oFilterUpdate( oUpdate[ "ground_reflection_third_octaves" ] ); - CITAThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oGroundReflectionMagnitudes ); + ITABase::CThirdOctaveGainMagnitudeSpectrum& oMagnitudeSpectrum( oPathProperties.oGroundReflectionMagnitudes ); for( int i = 0; i < oMagnitudeSpectrum.GetNumBands(); i++ ) { std::string sBandValueKey = "band_" + std::to_string( long( i + 1 ) ); diff --git a/src/Rendering/Binaural/RoomAcoustics/VARoomAcousticsAudioRenderer.cpp b/src/Rendering/Binaural/RoomAcoustics/VARoomAcousticsAudioRenderer.cpp index 987ce8fc5d2385b03ad841dfc33c3241d0ad1f09..8146087014d89d4ee56ef535cf803691082fedba 100644 --- a/src/Rendering/Binaural/RoomAcoustics/VARoomAcousticsAudioRenderer.cpp +++ b/src/Rendering/Binaural/RoomAcoustics/VARoomAcousticsAudioRenderer.cpp @@ -475,9 +475,9 @@ public: HRIRState oHRIRStateCur; //!< Aktueller Status der HRIR HRIRState oHRIRStateNew; //!< Neuer Status der HRIR - CITAThirdOctaveGainMagnitudeSpectrum oMagsSumCur; //!< Aktuelle Zusammensetzung des zusammengesetzten TO-Datensatzes (DIR, AA) - CITAThirdOctaveGainMagnitudeSpectrum oAirAbsMags; //!< Aktualle Zusammensetzung des TO-Datensatzes für Luftschallabsorption - CITAThirdOctaveGainMagnitudeSpectrum oDirMags; //!< Aktualle Zusammensetzung des TO-Datensatzes für Luftschallabsorption + ITABase::CThirdOctaveGainMagnitudeSpectrum oMagsSumCur; //!< Aktuelle Zusammensetzung des zusammengesetzten TO-Datensatzes (DIR, AA) + ITABase::CThirdOctaveGainMagnitudeSpectrum oAirAbsMags; //!< Aktualle Zusammensetzung des TO-Datensatzes für Luftschallabsorption + ITABase::CThirdOctaveGainMagnitudeSpectrum oDirMags; //!< Aktualle Zusammensetzung des TO-Datensatzes für Luftschallabsorption unsigned long int uiID; //!< Unique Identifier für diesen Task @@ -658,7 +658,7 @@ void ComplexSoundPath::UpdateDirectSound( const bool bDirectSoundAudible ) // Neue Luftschallabsorption Mags holen (oAirAbsMags) UpdateAirAbsorption(); - CITAThirdOctaveGainMagnitudeSpectrum oMagsSumNew; + ITABase::CThirdOctaveGainMagnitudeSpectrum oMagsSumNew; oMagsSumNew.SetIdentity(); if( iPathAuralizationMode & IVAInterface::VA_AURAMODE_SOURCE_DIRECTIVITY ) @@ -2253,7 +2253,7 @@ int CVARoomAcousticsAudioRenderer::PostTaskDiscarded( IRavenSimulationSchedulerI } } -void CVARoomAcousticsAudioRenderer::GenerateIRFromTOMags( const CITAThirdOctaveGainMagnitudeSpectrum& oMags, ITASampleBuffer& sbFilter ) +void CVARoomAcousticsAudioRenderer::GenerateIRFromTOMags( const ITABase::CThirdOctaveGainMagnitudeSpectrum& oMags, ITASampleBuffer& sbFilter ) { float* pfData = sbFilter.data(); m_csFilterGenerator.enter(); diff --git a/src/Rendering/Binaural/RoomAcoustics/VARoomAcousticsAudioRenderer.h b/src/Rendering/Binaural/RoomAcoustics/VARoomAcousticsAudioRenderer.h index 0a093f446240877a2bceaf29122cb28e3ebf5505..2cd9a89c125086a6144d2ce3d8c27edb85650a49 100644 --- a/src/Rendering/Binaural/RoomAcoustics/VARoomAcousticsAudioRenderer.h +++ b/src/Rendering/Binaural/RoomAcoustics/VARoomAcousticsAudioRenderer.h @@ -165,7 +165,7 @@ public: * Die länge der Impulsantwort entspricht der Länge des ITASampleFrame. * \note Reentrant (blocking wait) */ - void GenerateIRFromTOMags( const CITAThirdOctaveGainMagnitudeSpectrum& oMags, ITASampleBuffer& sbFilter ); + void GenerateIRFromTOMags( const ITABase::CThirdOctaveGainMagnitudeSpectrum& oMags, ITASampleBuffer& sbFilter ); //! Gibt die Schallmediumsgeschwindigkeit zurück [m/s] float GetSpeedOfSound() const; diff --git a/src/Rendering/Prototyping/FreeField/VAPrototypeFreeFieldAudioRenderer.cpp b/src/Rendering/Prototyping/FreeField/VAPrototypeFreeFieldAudioRenderer.cpp index 1d2160e7ab625420b9b60777675f3f78d5dc72ae..10662fb65802f4138a6c9ebda57a5cb48ddd9a0e 100644 --- a/src/Rendering/Prototyping/FreeField/VAPrototypeFreeFieldAudioRenderer.cpp +++ b/src/Rendering/Prototyping/FreeField/VAPrototypeFreeFieldAudioRenderer.cpp @@ -1207,7 +1207,7 @@ void CVAPFFSoundPath::UpdateSoundSourceDirectivity( const bool bDIRAuraModeEnabl pDirectivityDataNew->getNearestNeighbour( DAFF_OBJECT_VIEW, float( oRelations.dAzimuthS2L ), float( oRelations.dElevationS2L ), oDirectivityStateNew.iRecord ); if( oDirectivityStateCur.iRecord != oDirectivityStateNew.iRecord ) { - CITAThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; + ITABase::CThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; std::vector< float > vfMags( oDirectivityMagnitudes.GetNumBands() ); pDirectivityDataNew->getMagnitudes( oDirectivityStateNew.iRecord, 0, &vfMags[ 0 ] ); oDirectivityMagnitudes.SetMagnitudes( vfMags ); diff --git a/src/Rendering/Prototyping/HearingAid/VAPTHearingAidRenderer.cpp b/src/Rendering/Prototyping/HearingAid/VAPTHearingAidRenderer.cpp index af93432b71f0ef71fa9befc63aa10650b9130a7e..56b7ffccea3a13a35d708ebbc8b80540cb974a29 100644 --- a/src/Rendering/Prototyping/HearingAid/VAPTHearingAidRenderer.cpp +++ b/src/Rendering/Prototyping/HearingAid/VAPTHearingAidRenderer.cpp @@ -1298,10 +1298,10 @@ void CVAPTHASoundPath::UpdateDir( bool bDIRAuraModeEnabled ) pDirectivityDataNew->getNearestNeighbour( DAFF_OBJECT_VIEW, float( oRelations.dAzimuthS2L ), float( oRelations.dElevationS2L ), oDirectivityStateNew.iRecord ); if( oDirectivityStateCur.iRecord != oDirectivityStateNew.iRecord ) { - std::vector< float > vfMags( CITAThirdOctaveMagnitudeSpectrum::GetNumBands() ); + std::vector< float > vfMags( ITABase::CThirdOctaveMagnitudeSpectrum::GetNumBands() ); pDirectivityDataNew->getMagnitudes( oDirectivityStateNew.iRecord, 0, &vfMags[ 0 ] ); - CITAThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; + ITABase::CThirdOctaveGainMagnitudeSpectrum oDirectivityMagnitudes; oDirectivityMagnitudes.SetMagnitudes( vfMags ); pThirdOctaveFilterBank->SetMagnitudes( oDirectivityMagnitudes ); } diff --git a/src/Reproduction/Binaural/VAHeadphonesReproduction.cpp b/src/Reproduction/Binaural/VAHeadphonesReproduction.cpp index 8b6cc25f6ad8b51adf918350ffeed3b07b6e3d79..8467b5596923d3d9ee19e467ed25f9231187b1a0 100644 --- a/src/Reproduction/Binaural/VAHeadphonesReproduction.cpp +++ b/src/Reproduction/Binaural/VAHeadphonesReproduction.cpp @@ -121,43 +121,15 @@ CVAObjectInfo CVAHeadphonesReproduction::GetObjectInfo() const CVAStruct CVAHeadphonesReproduction::CallObject( const CVAStruct& oArgs ) { - CVAStruct oReturn; + SetParameters( oArgs ); + return GetParameters( oArgs ); +} +void CVAHeadphonesReproduction::SetParameters( const CVAStruct& oArgs ) +{ const CVAStructValue* pStruct; - // Commands: print, get, set - - if( ( pStruct = oArgs.GetValue( "PRINT" ) ) != nullptr ) - { - VA_PRINT( "Available commands for " +CVAObject::GetObjectName()+ ": print, set, get" ); - VA_PRINT( "PRINT:" ); - VA_PRINT( "\t'print', 'help'" ); - VA_PRINT( "GET:" ); - VA_PRINT( "\t'get', 'gain'" ); - VA_PRINT( "SET:" ); - VA_PRINT( "\t'set', 'gain', 'value', " ); - VA_PRINT( "\t'set', 'hpirinv', 'value', (use something like '$(VADataDir)/path/to/ir.wav' )" ); - - oReturn["Return"] = true; // dummy return value, otherwise Problem with MATLAB - return oReturn; - } - else if( ( pStruct = oArgs.GetValue( "GET" ) ) != nullptr ) - { - if( pStruct->GetDatatype() != CVAStructValue::STRING ) - VA_EXCEPT2( INVALID_PARAMETER, "GET command must be a string" ); - std::string sGetCommand = toUppercase( *pStruct ); - - if( sGetCommand == "GAIN" ) - { - oReturn["RETURN"] = m_pHPEQStreamFilter->fGain; - return oReturn; - } - else - { - VA_EXCEPT2( INVALID_PARAMETER, "Unrecognized GET command " + sGetCommand ); - } - } - else if( ( pStruct = oArgs.GetValue( "HpIRInvFile" ) ) != nullptr ) + if( ( pStruct = oArgs.GetValue( "HpIRInvFile" ) ) != nullptr ) { if( pStruct->GetDatatype() != CVAStructValue::STRING ) VA_EXCEPT2( INVALID_PARAMETER, "File path value must be a string" ); @@ -170,7 +142,7 @@ CVAStruct CVAHeadphonesReproduction::CallObject( const CVAStruct& oArgs ) VA_EXCEPT2( INVALID_PARAMETER, "Path to inverse impulse response file must be a string" ); std::string sFilePathRaw = std::string( *pHpIRinvPathValue ); - std::string sFilePath = m_oParams.pCore->GetCoreConfig()->mMacros.SubstituteMacros( sFilePathRaw ); + std::string sFilePath = m_oParams.pCore->FindFilePath( sFilePathRaw ); if( !doesPathExist( sFilePath ) ) VA_ERROR( GetObjectName(), "Path '" << sFilePath << "' does not exist" ); @@ -207,10 +179,6 @@ CVAStruct CVAHeadphonesReproduction::CallObject( const CVAStruct& oArgs ) double dGain = double( *pGainValue ); m_pHPEQStreamFilter->fGain = float( dGain ); - - oReturn[ "HPIRInvCalibrationGain" ] = dGain; - oReturn[ "HPIRInvCalibrationGainDecibel" ] = ratio_to_db20( dGain ); - return oReturn; } } @@ -224,29 +192,60 @@ CVAStruct CVAHeadphonesReproduction::CallObject( const CVAStruct& oArgs ) double dGainDecibel = double( *pGainValue ); m_pHPEQStreamFilter->fGain = float( db20_to_ratio( dGainDecibel ) ); - - oReturn[ "HPIRInvCalibrationGain" ] = db20_to_ratio( dGainDecibel ); - oReturn[ "HPIRInvCalibrationGainDecibel" ] = dGainDecibel; - return oReturn; } else { VA_EXCEPT2( INVALID_PARAMETER, "Gain value missing" ); } } - - oReturn["hpirinv"] = "updated"; // dummy return value, otherwise Problem with MATLAB - return oReturn; } else { VA_EXCEPT2( INVALID_PARAMETER, "Unrecognized SET value, use 'print' 'help' for further information" ); } } - else + +} + +CVAStruct CVAHeadphonesReproduction::GetParameters( const CVAStruct& oArgs ) const +{ + CVAStruct oReturn; + const CVAStructValue* pStruct; + + if( ( pStruct = oArgs.GetValue( "PRINT" ) ) != nullptr ) + { + VA_PRINT( "Available commands for " + CVAObject::GetObjectName() + ": print, set, get" ); + VA_PRINT( "PRINT:" ); + VA_PRINT( "\t'print', 'help'" ); + VA_PRINT( "GET:" ); + VA_PRINT( "\t'get', 'gain'" ); + VA_PRINT( "SET:" ); + VA_PRINT( "\t'set', 'gain', 'value', " ); + VA_PRINT( "\t'set', 'hpirinv', 'value', (use something like '$(VADataDir)/path/to/ir.wav' )" ); + + oReturn[ "Return" ] = true; // dummy return value, otherwise Problem with MATLAB + return oReturn; + } + + if( ( pStruct = oArgs.GetValue( "GET" ) ) != nullptr ) { - VA_EXCEPT2( INVALID_PARAMETER, "Unrecognized command called, use 'PRINT' 'HELP' for more information" ); + if( pStruct->GetDatatype() != CVAStructValue::STRING ) + VA_EXCEPT2( INVALID_PARAMETER, "GET command must be a string" ); + std::string sGetCommand = toUppercase( *pStruct ); + + if( sGetCommand == "GAIN" ) + { + oReturn[ "RETURN" ] = m_pHPEQStreamFilter->fGain; + return oReturn; + } + else + { + VA_EXCEPT2( INVALID_PARAMETER, "Unrecognized GET command " + sGetCommand ); + } } + + return oReturn; + } void CVAHeadphonesReproduction::SetInputDatasource( ITADatasource* p ) diff --git a/src/Reproduction/Binaural/VAHeadphonesReproduction.h b/src/Reproduction/Binaural/VAHeadphonesReproduction.h index b39c99159d4481362f016a61dafe918f245f8833..2f2a328ac26f1193c1929fa4e53e3887b5a19157 100644 --- a/src/Reproduction/Binaural/VAHeadphonesReproduction.h +++ b/src/Reproduction/Binaural/VAHeadphonesReproduction.h @@ -49,6 +49,9 @@ public: CVAObjectInfo GetObjectInfo() const; CVAStruct CallObject( const CVAStruct& oArgs ); + void SetParameters( const CVAStruct& ); + CVAStruct GetParameters( const CVAStruct& ) const; + private: std::string m_sName; diff --git a/src/Reproduction/Binaural/VANCTCReproduction.cpp b/src/Reproduction/Binaural/VANCTCReproduction.cpp index 3fa9d9d4ad2bb5281e8236d1b5bfac3e98ad481e..8358978eb21e4668fec9162cd0cc43b7c2ed1b6c 100644 --- a/src/Reproduction/Binaural/VANCTCReproduction.cpp +++ b/src/Reproduction/Binaural/VANCTCReproduction.cpp @@ -106,7 +106,7 @@ CVANCTCReproduction::CVANCTCReproduction( const CVAAudioReproductionInitParams& } } - m_vpSpectra.push_back( new ITAHDFTSpectra( oNCTCConf.fSampleRate, 2, oNCTCConf.iCTCFilterLength + 1, true ) ); + m_vpSpectra.push_back( new ITABase::CHDFTSpectra( oNCTCConf.fSampleRate, 2, oNCTCConf.iCTCFilterLength + 1, true ) ); } #ifdef VACORE_REPRODUCTION_NCTC_WITH_SWEET_SPOT_WIDENING @@ -301,7 +301,7 @@ CVAStruct CVANCTCReproduction::CallObject( const CVAStruct& oArgs ) if( sExportFileBaseName.empty() ) sExportFileBaseName = "VANCTC_HRIR_"; - std::vector< ITAHDFTSpectra* > vpHRTFs; + std::vector< ITABase::CHDFTSpectra* > vpHRTFs; if( m_pNCTC->GetHRTF( vpHRTFs ) ) for( size_t n = 0; n < vpHRTFs.size(); n++ ) ITAFFTUtils::Export( vpHRTFs[ n ], sExportFileBaseName + IntToString( int( n + 1 ) ) ); diff --git a/src/Reproduction/Binaural/VANCTCReproduction.h b/src/Reproduction/Binaural/VANCTCReproduction.h index 32f36c6a102cbbb77ffa2d00e1229cbb698379b9..187fe8355ccda4b74af3da30af907517ff465ceb 100644 --- a/src/Reproduction/Binaural/VANCTCReproduction.h +++ b/src/Reproduction/Binaural/VANCTCReproduction.h @@ -22,9 +22,10 @@ #include "../../VACoreImpl.h" #include +#include + class ITANCTC; class ITANCTCStreamFilter; -class ITAHDFTSpectra; class CVADirectivityDAFFHRIR; class CVANCTCReproduction : public IVAAudioReproduction, public CVAObject @@ -68,7 +69,7 @@ private: ITANCTC* m_pNCTC; ITANCTCStreamFilter* m_pdsStreamFilter; - std::vector< ITAHDFTSpectra* > m_vpSpectra; + std::vector< ITABase::CHDFTSpectra* > m_vpSpectra; double m_dGain; mutable int m_iDebugExportCTCFilters; //! Exports given number of filters during streaming