そのため、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;
}
}