音の長さ

小節とビートグループ

リズムの基準となる単位を拍、ビートと呼ぶことにします。4拍子の場合4拍で1小節となります。EMDLでは、小節を丸カッコで現します。
(C D E F) (E D C , )
ここで、(これがEMDLの重要な特徴だと思うのですが)「4/4拍子」だとか「6/8拍子」だとかを指定する必要が無いことを覚えておいてください。というより、そのような指定をする方法はEMDLにはありません

3拍子の曲を表すには、以下のようにします。

(C D E) (G , , ) (A E A) (G , , )

つまり、カッコの中の要素数で小節を等分したものが、各要素の長さとなるのです。8分音符の羅列なら、

(, , , , G A B ↑D) (C B C Eb D Db D F) (Eb D Eb G F , G Eb)
となります。

丸カッコ(これをビートグループと呼ぶことにします)は入れ子にすることができます。外側のビートグループから見ると、「Bb」という音一個も、「(A Bb F)」というビートグループも、等しく一つの要素として数えます。従って、等分ルールから上記の例は

(, (G A B ↑D)) ((C B C Eb) (D Db D F)) (((Eb D) (Eb G)) (F , G Eb))
とも書けます。例えば最初の小節(, (G A B ↑D))は、まず小節を休符と(G A B ↑D)の二つに分割(それぞれ2分音符となりますね)、さらに後ろのビートグループをG, A, B, Dの4つに分割(それぞれ8分音符ということになります)するわけです。

この入れ子の深さをレベルと呼ぶこともあります。例えば上記の3小節めで言えば、

となります。

小節を表すときに限りカッコの代りに「|」で区切ることも出来ます。つまり上記の例は

|, (G A B ↑D) |(C B C Eb) (D Db D F) | ((Eb D) (Eb G)) (F , G Eb) |
と書いても構いません。連続した「|」は無視され一つの小節区切りと見なされます。

サンプルとして、以下のようなメロディーを記述してみましょう。 sample2

これは、例えば次のように書き表すことが出来ます。

|(A C2) (, A) (Bb A) (E F F#)|
|(G D2) (Bb C2 Bb G) (A Db) (, G)|
|((, F) , ) , |
注意しなければならないのは、例えば最初の小節を
|A C2 , A Bb A (E F F#)|
|(A C2 , A) (Bb A (E F F#))|
|(A C2 , A) (Bb A) (E F F#)|
などと書いてはならないことです。1行目は全部で7拍子となってしまいますし、2行目は後半が2拍三連符になってしまいます。3行目は全体で3拍子と解釈されてしまいます。

なお、第0レベル、つまり小節も一種のビートグループですから、極端な話

ド れ み ふぁ そ
と書くこともできます。これはそれぞれ全音符として解釈されます。

音の継続

音が持続するときは「-」を使用します。 小節をまたいで、あるいはビートグループをまたいで音が続く場合でも有効で、とにかく直前の音をそのままその位置で継続させることができます。「」でもかまいません。 sample2
これは次のように表すことが出来ます。

(, , , (ファ# ソ)) ((ラ ラ) (ファ# (シ ラ)) (ー ファ# ファ# シ))
((ラ ラ) (ファ# (シ ラ))(ーシーー)ー) ((ー , ) , )

無音記号

EMDLでは、無音記号「N」というものを用意しています(NullまたはNilまたはNothingの略です)。これは休符とは異なります。完全に音の長さもなく、数合せのためだけに使われるものです。

例えば、先の例で冒頭の休符を入れたくないときを考えてみましょう。そのまま休符の「,」を取ってしまうと、

(ファ# ソ) ((ラ ラ) 〜
最初の2音ファ# ソは8分音符であるはずが、このままでは1小節の2等分、2分音符になってしまいます。SIZECHANGEタグを使って小節のサイズを変更することも出来ますが、もっと簡単な方法があります。
(N N N (ファ# ソ)) ((ラ ラ) 〜
こうすると、ファ# ソは8分音符のままになります。しかも休符と違って休む時間もなくただちにメロディが開始されます。

この無音記号を利用すれば、メロディーの途中で一時的に拍が足りない小節なども簡単に入力することができます。

複雑なリズムパターン

EMDLでは、各小節の長さは基本的に同じサイズです。ですから、
(ドレミファ) (ソラシ) (レミファ)
と書くと後半のソラシレミファは前の小節から見れば4拍三連符のようになります。これを、1拍の長さを変えずにそのまま3拍子とするにはどうすればよいでしょうか。

一つの解決方法はソラシNと無音記号を入れることです。数合わせでそれぞれが1小節を4等分する長さになり、しかもNは実際の音には現れませんから、確かにこの場合は良いでしょう。しかしその後もレミファNとしなければなりません。このあと3拍子がずっと続くようなとき、無音記号を常に入れるのも面倒ですし、そもそも3拍子から4拍子に増やすような場合だと、これではうまくいきません。

そこで、<Ln/>を使用します。これはSIZECHANGEタグLEVEL属性を指定するときの略記法です。詳細はタグの解説をご覧ください。この例では次のように使います。

(ドレミファ)<L1>(ソラシ) (レミファ)
ひとことで言えば、<L1>は「次のソの長さを前の小節のドと同じ長さにせよ」という指定です。レミファでは、もう前の長さが変わった小節ソラシに合わせた長さになりますから、この二つの間にSIZECHANGEを入れる必要は有りません。

直接指定

おそらくあまり使われないとは思いますが一応、数値入力マニアのために、また微妙なビートの揺れを感じたいひとのために、音の長さを数値で指定することもできます。音の直後に「{}」で指定します。このとき、小節を表す第0レベル以外のカッコはすべて無視され、全部第1レベルの音として扱われます。一つの小節内でビートグループによる指定と数値指定を混用することはできません。

その小節内に指定された音すべての数値を合計し、その総和との比率で各音の長さを決定します。例えば、以下はすべて同じ音の長さです。

(Bb1{32} Eb2{32} Ab2{32} Db2{32}) (D2{1} G2{1} N Db2{1})
<L1>(D2{8} G3{8} F-1{8})
どうでしょうか、お気に召しましたでしょうか。

next
簡易旋律記述言語 EMDL
©1999 Shibayama "HEAD" Ken'ichi