| 229 | |
| 230 | |
| 231 | void 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 | |
| 250 | void HRTFDatabase::applyVolumeSettings(float volume, HRTFNormType normType) |
| 251 | { |
nothing calls this directly
no test coverage detected