所以我正在使用 NAudio 在 C# 中从头开始编写合成器。我已经让它播放不同的频率,这很酷,但我注意到较高的音高明显比较低的音高。是不是因为这个效果:
http://en.wikipedia.org/wiki/Equal-loudness_contour
或者当我生成正弦波时我做错了什么?如果确实有必要,我将如何实现等响度等高线曲线?
谢谢
我的代码:
NAudio 需要一个填充了 -1 到 +1 范围内的浮点值的缓冲区来表示波形。
生成正弦波:
buffer[n + offset] = (float)(Amplitude * Math.Sin(angle));
angle = (angle + angleIncrement) % (2 * Math.PI);
设置频率:
public double Frequency
{
set
{
angleIncrement = 2 * Math.PI * value / sampleRate;
}
get
{
return angleIncrement * sampleRate / 2 / Math.PI;
}
}