楽譜XMLを策定する 1 (序章)で考えた横軸をベースに音符を考えてみる。
<note timing="1/4"/> <note timing="2/4"/> <note timing="3/4"/> <note timing="4/4"/>
4分音符の表記例。こういう単音でリズムが簡単な場合は読みやすいけれど、次の例だと最悪。
<note timing="1/8"/> <note timing="2/8"/> <note timing="2/4"/> <note timing="3/4"/> <note timing="4/4"/>
最初の4分音符が8分音符2つに分解されているだけだけど、かなり理解しにくい。つまり、「3/8」と「2/4」の位置が同じというところが数学的な視点に反するからいけない。但し、音符の長さはうまくいく。
<note length="1/4"/> <note length="2/8"/>
上の2つは同一の長さなので、混乱しない。音符の位置(演奏タイミング)については良い代替案が思いつかないので残課題。
あと、音符にまつわるものとしては、付点音符、連符、タイなどがある。例えば付点4分音符は
<note length="3/8">
としても表現できるけれど、これでは8分音符が3つタイで繋がっていても同じ表記(こういう場合はタイを使わないが、XMLを見てどちらか判断するのに楽典のルールを知っている必要が出てくるという観点で)になってしまう。これらは楽譜で表記が分かれている以上、XMLでも分けて書きたいところ。
こうなってくると構造化に頼るほうがいいかもしれない。例えば3連符の場合は以下のように表現する。
<triplet> <note length="1/8"> <note length="1/8"> <note length="1/8"> </triplet>
しかし、これはこれで鬱陶しい。というのも、8分音符の3連符は1/8の長さではないのだ。そのときだけ読み替えるよいうような発想のXMLにはしたくない。とは言っても
<note length="1/12"> <note length="1/12"> <note length="1/12">
というように正確に表現したところで判り難い。分数で音符の横軸を表現するのには無理があるのだろうか。これについては再度検討が必要そうだ。