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
その他
- コマンドを拡張しすぎておかしなことになってしまった
- フィルタが上手く動かない
- もっと複雑なこともしたい