2012-01-27
電子楽譜とXML
前回、物理現象としての音という意味での音楽を作り出すメンバーとして、電子楽譜、楽器と演奏家を考えた。そこで、電子楽譜の作り方をもう少し検討してみる。
電子楽譜は、楽譜に書いてある内容をデータ化したものを言う。楽譜のためのデータ構造と言うと、古くはFord-Columbia記法と呼ばれるものがあり、最近ではXMLをベースにしたMusicXMLと呼ばれるフォーマットが流通している。WikipediaのMusicXMLを見ると、MusiXML、MusicXというよく似た名前のフォーマットがあるそうだけれどこれらはMusicXMLとは別物、と書いてある。また、同項目にはMusicXMLの例が載っているので、ここから断片を引用してMusicXMLの雰囲気を示す。4/4拍子、全分音符、ト音譜表で一本下線を引いた所にあるCの音を次のように書いている。(以下、話題として書いたXMLタグと本文についたXMLタグとを区別するために、話題として書いたタグは全角の<>で囲んでいる。
<note>
<pitch>
<step>C</step>
<octave>4</octave>
</pitch>
<duration>4</duration>
<type>whole</type>
</note>
Ford-Columbia記法にしても、MusicXMLにしても、対象は五線譜となっている。五線譜をどこまでサポートしているか(つまり、現代曲の五線譜に見られるような独自の記法、民族音楽の採譜例に見られる追加記号、等をサポートしているか)については、専用アプリケーションをよく調べてみないとなんとも言えないが、基本が五線譜なら期待できると考えたい。しかし伝統邦楽固有の記法はどうだろうか?
全く新しい分野は孤立無援になる代わりに何を考えることもできる。そこでまず、XML(のような文書記述言語)を使って電子楽譜を作ることを想定して、規格の適合性を考える。
はじめに、XMLが基礎においている正規木言語の性質を一つ。正規木言語の構文規則は木の葉要素に作用するもののみから出来ている。上の例では、C、4、wholeの三つが葉要素であり、開始タグと終了タグとで囲まれた部分はある中間接点から葉の方に向かって見た枝を示す。葉要素に作用する、ということは、noteタグのような中間接点に構文規則を適用するには、葉の方に向かって見た枝を一旦切り落として、葉節点に代えてから構文規則を適用する、ということになる。Note (音符)は楽譜の基本エンティティということを考えると、中間接点から葉の方を見て見渡せる枝を、全体を一つの塊と見たい。
こういう時には、XMLには便利な仕組みがある。XMLには、正規木言語という論理構造、文書記述言語として規格で規定されている言語構造の他、データ交換用に使われる際の文字列データと言う構造、の三つの顔がある。文字列データとして振る舞う時には正規木言語という論理構造から外れることも自由なので、アプリケーション固有の機能として、必要な機能を組み込むことが許されている。ということで、アプリケーションに組み込めばいい。XMLタグの属性処理は、アプリケーションが自由に文字列としてのXMLデータを扱えるという特質をもっともよく活かしている(^^?)。(文書記述言語としての規格上は、属性は文字列データとして規定され、それ以上の規定は無い。処理系に指令データを渡すために使う事が想定されているのだろう。)
データ交換のように、原則一回で使い終わる目的には便利とは言え、長期に渡って使おうと思うとアプリケーションを込みで保存しないといけないという制約が付く。アプリケーションの寿命は案外短い(改版時に非互換になることがある)ので、この制約が重く感じる場面も、多分、ある。また期待感として、アプリケーション固有の機能として実現されている機能を構文規則を使って表現できれば、保存(と高次利用)むけの電子楽譜データができるのではないか、などとも思う。もっとも信楽さんはこの件について、思考実験しただけで、利用者に聞いて回って検証した訳ではない。
木言語も調べてみると、記号列言語に似た階層構造が知られていて、正規木言語の上には文脈自由木言語(マクロ木言語)、文脈依存木言語などがあるらしい。思考実験を確認する意味で、マクロ木言語でどこまで楽譜が書けるか(正規木言語と比べてどういう性格をもつか)を調べてみたいと思っている。
ここから先はこの辺りから入ることになると思うのだけれど、多分あちこち道草を食いながら進む・・;
- 1 http://search.yahoo.co.jp/search?p=クラシック 5線譜&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=&oq=
- 1 http://search.yahoo.co.jp/search?p=ブルガリアン・リズムによる6つの舞曲+無料楽譜&aq=-1&ei=UTF-8&pstart=1&fr=s
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=フィンランド+民謡&source=web&cd=16&ved=0CEYQFjAFOAo&url=http://d.hatena.ne.jp/DrShigaraki60/20120117/1326762689&ei=8oIiT5fLDcmNiAeV94DrBA&usg=AFQj
