JavaScript(Audio Data API)でMMLシーケンサーを書いた

HTML5にはAudio要素って言うのがあって、プラグインを使わずに音声を扱うことができるのだけど、
FireFox4(ベータ版)にはさらに Audio Data API っていうのがあって、これを使うと音声データを生成することすらできる。


このあたりに解説がある
https://wiki.mozilla.org/Audio_Data_API
http://ascii.jp/elem/000/000/564/564098/


こんなこともできる!!すげぇ。
http://weare.buildingsky.net/2010/06/17/html5-audio-data-api



要するにブラウザがシンセサイザーになるわけですな。
色々面白そうなので、練習をかねてMMLを再生するシーケンサーを作ってみた。
JavaScriptだけで音を生成して再生しています。
複雑なことをすると音がブチブチとぎれるけど、きっちりプログラムを書けばもっと良くなりそう。


《もう少し効率よく動くように修正中》
MMLSequencer.js (今のところFireFox4 ベータ版でないと動きません)
http://mohayonao.com/MMLSequencer/


音はこんな感じ。


ソースはGitHubにおいた。
https://github.com/mohayonao/JSMMLSequencer


その他

  • コマンドを拡張しすぎておかしなことになってしまった
  • フィルタが上手く動かない
  • もっと複雑なこともしたい