JavaScriptで新しい楽器作った

jsdo.it「新しい楽器を作ってください」というコンペをやってます。(10/24締め切り)
このへんを見るといろいろ力作が投稿されているようです。
 
JavaScriptで楽器を作るなんて面白い企画、参加しないわけに行かないと思ってさっくり作ってみました。

Tonal Circle
f:id:aike:20121021113452j:image
 
発想としてはループシーケンサーみたいな感じで、ひとつのサークルにひとつのワンショットまたはフレーズサンプリング音が割り当たっていて、光の輪が回転して一番上に来ると音が鳴ります。サークルはドラッグ可能で、横方向に動かすとサンプリング音が切り替わり、縦方向に動かすとループの周期が変わります。サークルの新規作成はシングルクリック、削除はダブルクリック。
まあ、実際に触ってみると操作はすぐわかると思います。
 
今回は複数のブラウザに対応するためWeb Audio APIなどの濃い機能は使わずに、AudioオブジェクトをJavaScriptから作って、タイミングがきたらplay()メソッドで鳴らしてるだけです。
 
いかにもキャンバスで描いてる風のサークルの絵は、実はシンセのノブみたいにKnobManでノブ画像として描いたpngファイルをjqSkinの改造版で表示してます。
そんなわけで遊んでみてください。
 
Tonal Circle