https://github.com/discord/perceptual
| 20 | float const DefaultPerceptualBoostRangeDb = 6.f; |
| 21 | // https://github.com/discord/perceptual |
| 22 | float perceptualToAmplitude(float perceptual, float normalizedMax, float range, float boostRange) { |
| 23 | if (perceptual == 0.f) return 0.f; |
| 24 | float dB = perceptual > normalizedMax |
| 25 | ? ((perceptual - normalizedMax) / normalizedMax) * boostRange |
| 26 | : (perceptual / normalizedMax) * range - range; |
| 27 | return normalizedMax * pow(10.f, dB / 20.f); |
| 28 | } |
| 29 | |
| 30 | float amplitudeToPerceptual(float amp, float normalizedMax, float range, float boostRange) { |
| 31 | if (amp == 0.f) return 0.f; |