Web Audio APIはじめました
(function () {
var ctx = new webkitAudioContext();
//console.log( ctx );
var dst = ctx.destination;
//console.log( dst );
var buf = ctx.createBuffer( 1, 4096 * 4, ctx.sampleRate );
var data = buf.getChannelData( 0 );
for (var i=0; i<data.length; i++) {
data[i] = ( i % Math.floor(44100 / 440) );
}
console.log( data );
var src = ctx.createBufferSource();
//console.log( src );
src.buffer = buf;
src.connect( dst );
src.noteOn( 0 );
})();
なんか分かんないけど、こんな感じのコードで音が鳴った。
Canvasのように、まずcontextを取得するのは分かる。
W3CのAPIリファレンスを見ると、contextでいろいろ生成するみたい。
よく分かんないのでconsole.log()を使って、
何が入ってるのかChromeで確認しながら作業した。
(こういうとき英語読めたらいいなーって思う。)
とりあえず、エラーが出ないように、見よう見まねでコードを書いて、
きっと波形を入れればと思って、それっぽく初期化したら音が出た。
あと、Chromeでテストしてるけど、Chromeごと落ちることがあるらしく、
自分も1回落ちたけど、再現性はない。
下手なコードを書いたからとかじゃないらしい。
早くループさせたりフィルターをいじってみたいけど、
perlも待ってるのでバランス良くやる方向で。
おしまい。
10/26 追記
MacBookAirでスリープ解除してから
このスクリプト実行したらChromeごと落ちて、
そのあとは普通に音が鳴ったので、
このスクリプトは良くないのかも知れないです。
Leave a Comment