WAVファイルの仕様は、WAVファイルからサウンドデータを読み取るための青写真です。WAVファイルを読み取って操作するためのサンプルコードは、このCodeProjectの記事にあります。
トーンマッピングを実現するために、この記事を読むことができます。この記事では、2枚のサウンドカード間でデータを転送するソフトウェアを作成する方法について説明しています。たとえば、WAVファイルの特定のセグメントに存在する特定の周波数の量を調べるには、フーリエ変換を使用します。
このようなもの:
double fourier1(double x_in[], double n, int length) {
double x_complex[2] = { 0, 0 };
int i;
for(i = 0; i < length; i++)
{
x_complex[0] += x_in[i] * cos(M_PI * 2 * i * n / (double) length);
x_complex[1] += x_in[i] * sin(M_PI * 2 * i * n / (double) length);
}
return sqrt(x_complex[0]*x_complex[0] + x_complex[1]*x_complex[1]) / (double) length;
}
ここで、x_inは-1から1までの一連の数値であり、nは変更された頻度です。
(length * frequency / rate)