7.4.1. 音長について


[表紙に戻る] [<<<<<] [>>>>>] [ひとつ上へ]


音長値の表記には2通りの方法があります。1つはMIDIクロックで指定するもので、もう1つは「〜分音符」の形で指定するものです。SMCでは、前者を「クロック数表記」、後者を「n分表記」と定義しています。デフォルトをどちらにするかは“@%”で指定します。数値入力に慣れている方は“@%0”とすれば音長値をMIDIクロック単位で扱えますし、従来のMMLに慣れている方は“@%1”とすればn分表記として扱われます。音長値の前に“%”を記述すれば、直後の音長値だけは扱いを逆にすることができます。以降、特に断りがなければ“@%1”であるとして音長値を記述します(つまり“c4”は4分音符となります)。ノートオンコマンドで音長値を省略した場合の値は“l”コマンドで指定します。

連符の記述は、連符の性質を考えるとよくわかります。

前者はおなじみ8分音符です。後者は4分音符の3連符(旗の数は8分音符と同じで1本)を意味します。分解能(“#DIVISION”)48で扱える連符は3連符系のみです。分解能48の精度を保ったまま5連符を正確に扱いたい場合は、240もの分解能が必要になります。実際には、均等割をせずに済ます場合が多いようです。例えば、分解能48で4分音符の5連符を実現するには、“c%10d%10e%10f%9g%9”のようにします。

ところで、音長(値)と書きましたが、SMCにおける音長とは「次の動作に移るまでの期間」という意味しかありません。実際の発音時間についてはゲート長(によって指定されます。ゲート長を算出する際に使用される値をゲートといい、ノートオンコマンド(ノートオンコマンドでゲートを省略した場合の値は“q”)で指定します。ゲートからゲート長を求める方法は3通りあります(ゲートモードといいます)。

詳しくはリファレンスを参照していただくとして、ゲート長を省略した場合に音長値と同じ値を用いたい場合は以下のようにします。

常に音長値より一定MIDIクロック(mc)だけ早くノートオフさせたい場合は“@q1”として、早くノートオフさせたいMIDIクロック数を“q”で指定します。“@q1”を既に指定してあると仮定すると以下のようになります。

リズムパートのように音長値によらず常に一定MIDIクロックだけ発音したい場合は、“@q0”として発音したいMIDIクロック数を“q”で指定します。“@q0”を既に指定してあると仮定すると以下のようになります。

以上はノートオンコマンドでゲートを省略した場合の話です。特定のノートだけゲート長を変更したい場合は、そのノートオンコマンドでゲートを指定することができます。例えば、通常はゲート長は音長値と等しいが、この音だけ音長値より2mc短くしたい場合は“@q1c4,%2”のようにします。あくまでゲートを指定するということに注意してください。例えば、“@q1q%4c4,%2”は「通常は音長値より4mc短く発音されるが、この音は音長値より2mc短く発音される」という意味です。省略時よりもさらに2mc短くなるわけではありません。

長い音長値を持つ音符を記述するのには“&”を用います。本来このコマンドはノートオフを次のノートのノートオフと同時に行うことを指定するものです。ですから、和音を長くつなげたい場合には、“c0&e0&g1& c0&e0&g1”のようにします。これはドミソの和音を全音符2つ分のばす場合の記述です。“c”や“e”の後ろの“0”はゲートではなく、音長値(つまり次のコマンドに移るまでのMIDIクロック)であることに注意してください(つまり“@%1”での「0分音符」は0mc分として扱われます)。ノートオフは最後の“g”のノートオフと同時に行われます。

途中で和音中の特定の音がノートオフしたりする場合は、ノートオンコマンドでゲートを指定しながら“&”でつないでいくことになります。

(GORRY注:“c0&e0&g1& c0&e0&g1”は“c0&e0&g1+1”で同じ演奏が行なわれます。普通はこちらを使ってください。)


[表紙に戻る] [<<<<<] [>>>>>] [ひとつ上へ]