このページの本文へ

PROGRAMMING 古籏一浩のJavaScriptラボ ― 第45回

Audio Data APIでブラウザーをシーケンサーに!

2010年11月02日 10時00分更新

古籏一浩

  • この記事をはてなブックマークに追加
本文印刷
js-labo

 Firefox 4(ベータ版)に搭載された「Audio Data API」を使うと、JavaScriptのプログラムで自在に音を生成できます。前回の記事では、Audio Data APIの基本的な使い方を紹介しました。今回はAudio Data APIを使って、MML(Music Macro Language)形式の楽譜データを演奏するプログラムを作ります。MMLは25年ほど前、コンピューターで音楽を演奏するために生まれた簡易言語で、アルファベットで音階を、数字で音符の長さを表します。

 MMLの仕様は機種や環境によってばらつきがありますが、今回は以下のようなパラメーターに対応します。

Cドの音
Dレの音
Eミの音
Fファの音
Gソの音
Aラの音
Bシの音
R無音(休符)
Oオクターブ指定(1,2,4,8)
Tテンポ指定

 C〜Bまでの音階の後ろに音符の長さを示す数値を指定します。たとえば、ドの音で4分音符であれば「C4」、16分音符であれば「C16」と表記します。半音上げる場合は先頭に#を付けて「#C4」のように記述します。

 一般的なMMLでは「C4D2E1」のように音符と音符の長さの組み合わせを続けて記述しますが、今回は解析しやすいように1音ごとに半角空白で区切って記述します。たとえば、「ドレミファソラシ」と演奏するには以下のように書きます。


C4 D4 E4 F4 G4 A4


 MMLはシンプルなルールで記述できるので、ちょっとした楽曲を演奏させるには非常に手軽に利用できます。

書影

「まとめてじっくり読みたい!」という読者のみなさまの声にお応えし、この連載が本になりました。書籍化にあたって加筆修正し、記事公開後の最新情報やコラムも盛り込んでいます。

HTML5+JavaScript アイデア&実践サンプル

本体 2,800+税、B5変形判312ページ(オール4色刷)
ISBN:978-4-04-870448-9

Amazon.co.jpで買う 楽天ブックスで買う

この記事の編集者は以下の記事をオススメしています

ASCII.jp会員サービス 週刊Web Professional登録

HTMLリファレンス誘導バナー

CSSリファレンスサイト誘導バナー

Webディレクター江口明日香が行く

ランキング