MCPcopy Create free account
hub / github.com/ValveSoftware/steam-audio / updateReferenceLoudness

Method updateReferenceLoudness

core/src/core/hrtf_database.cpp:231–248  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

229
230
231void HRTFDatabase::updateReferenceLoudness(HRTFNormType normType)
232{
233 auto& hrirs = mHRTFMap->hrtfData();
234 Array<complex_t, 2> hrtf(IHRTFMap::kNumEars, mFFTAudioProcessing.numComplexSamples);
235 Array<float> zeroPadded(mFFTAudioProcessing.numRealSamples);
236 zeroPadded.zero();
237
238 auto index = mHRTFMap->nearestHRIR(ipl::Vector3f(.0f, .0f, -1.0f));
239 vector<float*> hrirData;
240 for (auto i = 0u; i < hrirs.size(0); ++i)
241 {
242 hrirData.push_back(hrirs[i][index]);
243 memcpy(zeroPadded.data(), hrirs[i][index], numSamples() * sizeof(float));
244 mFFTAudioProcessing.applyForward(zeroPadded.data(), hrtf[i]);
245 }
246
247 mReferenceLoudness = Loudness::calculateRMSLoudness(numSpectrumSamples(), mSamplingRate, (const ipl::complex_t**)hrtf.data());
248}
249
250void HRTFDatabase::applyVolumeSettings(float volume, HRTFNormType normType)
251{

Callers

nothing calls this directly

Calls 5

zeroMethod · 0.45
nearestHRIRMethod · 0.45
sizeMethod · 0.45
dataMethod · 0.45
applyForwardMethod · 0.45

Tested by

no test coverage detected