OscillatorNodesを使用してコードを演奏したいと思います。
var ac = new (window.AudioContext || window.webkitAudioContext);
// C4, E4, G4
var freqs = [261.63, 329.63, 392.00];
for(var i=0;i<freqs.length;i++) {
var o = ac.createOscillator();
o.frequency.value = freqs[i];
o.connect(ac.destination);
o.noteOn(0);
setTimeout(function() {o.noteOff(0)}, 1000);
}
しかし、このアプローチは混乱のように聞こえます(これがそのように聞こえます)。コード内のノートごとに新しいAudioContextを作成しようとすると、問題なく聞こえます(次のようになります)。
// C4, E4, G4
var freqs = [261.63, 329.63, 392.00];
for(var i=0;i<freqs.length;i++) {
var ac = new (window.AudioContext || window.webkitAudioContext);
var o = ac.createOscillator();
o.frequency.value = freqs[i];
o.connect(ac.destination);
o.noteOn(0);
setTimeout(function() {o.noteOff(0)}, 1000);
}
しかし、私はあなたが1つのAudioContextしか持っていないことになっていることを読みました。私は何が間違っているのですか?