楽譜XMLを策定する 3 (音符)

楽譜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">

というように正確に表現したところで判り難い。分数で音符の横軸を表現するのには無理があるのだろうか。これについては再度検討が必要そうだ。

コメントする

メールアドレスが公開されることはありません。