4

riffwave.jsのようなjavascriptライブラリから正確なメモ(C、C#、D、Ebなど)を取得できるかどうか誰かが知っていますか?

デモでは可能だと思いますが 、特定の音符のピアノ周波数を、生成されたWaveファイルに必要なデータ配列に移調する方法がわかりません。

4

1 に答える 1

8

もちろん!キーから周波数へのマッピング関数を作成する必要があります(単なる辞書の場合もあります)。

riffwave.jsを使用して特定の周波数を合成するには、次のようにします。

function simHertz(hz) {
    var audio = new Audio();
    var wave = new RIFFWAVE();
    var data = [];

    wave.header.sampleRate = 44100;

    var seconds = 1;

    for (var i = 0; i < wave.header.sampleRate * seconds; i ++) {
        data[i] = Math.round(128 + 127 * Math.sin(i * 2 * Math.PI * hz / wave.header.sampleRate));
    }

    wave.Make(data);
    audio.src = wave.dataURI;
    return audio;
}

var audio = simHertz(1000);
audio.play();
于 2013-03-10T19:48:27.787 に答える