2013-03-10 25 views

回答

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(); 
+0

曾在迴路中「.sampleRate」後刪除*,但除此之外,當場!謝謝。 – 2013-03-10 20:14:42

+0

哎呀!那裏有一個變量來定義音頻播放的時間。編輯來解決這個問題。 – fuzic 2013-03-10 20:20:36