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