跨平台库以规范化音频?

时间:2011-10-07 18:42:48

标签: c++ audio

您知道我可以用来规范化采样音频的任何跨平台音频库吗?

2 个答案:

答案 0 :(得分:1)

标准化是一个简单的过程。这是float s的简单实现:

float peakAmplitude(0.0f);

/* find the peak */
for (size_t idx(0); idx < bufferLength; ++idx) {
    peakAmplitude = std::max(peakAmplitude, std::fabs(buffer[idx]));
}

if (0.0f >= peakAmplitude) {
    std::cout << "signal is silent\n";
    return;
}

/* apply normalization */
const float mul(1.0f / peakAmplitude);
for (size_t idx(0); idx < bufferLength; ++idx) {
    buffer[idx] *= mul;
}

其他信号格式可以轻松转换。

答案 1 :(得分:0)

Google是你的朋友:

http://normalize.nongnu.org/

https://neon1.net/prog/normalizer.html

如果你不能在你的项目中使用GPL代码,那么只需在第二个网站上阅读算法的描述并实现你自己的。这很简单。

相关问题