リズムモード


リズムモードでは、任意のアルファベット(A-Z, a-z)の1文字に、マクロ文字列を割り当てることが出来ます。これは、リズム楽器を記述するのに適しています。


普通MIDI楽器のリズムチャンネルでは、以下のようにキーボードの1音1音に違う音が割り当てられています。

ノート番号 36 37 38 39 40 41 42 43
MMLノート名 o3c o3c+ o3d o3d+ o3e o3f o3f+ o3g
割り当て楽器 Kick Stick Snare Clap Snare2 Tom Hi-Hat Tom

そのため、これをMMLで記述すると、o3c o4d+ o5g o2f+と、1音ごとにオクターブを変えたりシャープをつけたりと、煩わしいことこの上なく、どの音程が何のリズム楽器なのか、後で見てもさっぱりわからないという状況になってしまいます。

そこで、あらかじめ、スネアの音は、アルファベットのsに、ハイハットの音は、hに割り当てると決めておけば、リズム楽器の表記が簡単になります。

*注意*
リズムモードにしたからと言って、自動的に リズム楽器チャンネルに設定されるわけではありません。
リズム楽器を鳴らす場合には、GM音源、GS音源の場合は、チャンネル10がリズム楽器チャンネルになっています。そしてXG音源の場合には、プログラムチェンジとバンクチェンジを使います。Voice(リズムマップ番号,127,0)を書きこんでください。→詳しくはお使いのMIDI音源のマニュアルを。


宣言:
Rhythm{ ... }
リズムモードにするには、そうしたい部分を
Rhythm{ 〜 }
で囲います。
Rhythm{
  // 何にもないけど、ここはリズムモード
}

マクロ定義:
$(char){ 文字列 }
アルファベット一文字(char)に、文字列を割り当てます。
Channel(10);//リズムチャンネルに
//リズムマクロの定義
$b{n36,}//bにn36,を割り当てる
$s{n38,}//sにn38,を割り当てる
Rhythm{ //リズムモード
  [4 l4 b s b s8s8 | b s b s16s16s8 ]
}

リズムモード内で、関数呼び出しや、変数を使いたいときは、それらの文を、(...)で囲ってください。
(...)の中は、リズムモードと見なしません。
Channel(10);//リズムチャンネルに
Rhythm{
  $b{n35,} $s{n40,}
  (v.onNote(80,60); q.Random(10);)
  //()の中は、リズムモードと見なさない。
  [4
    l16 bbsb bssb
    (EP.onTime(40,127,2))
    sbbb sbbs
  ]
}

ところで、同時にいろいろな音を鳴らしたい場合は、どうすれば良いのでしょうか?
トラックをいくつも作れば、良いのでしょうけど、それも面倒だという場合があります。
そんなときは、"r-1"などのようにすると、1小節分タイムポインタを戻すことが出来ます。
Track(10) Channel(10)

$b{n36,}
$s{n38,}
$h{n42,}
$c{n49,}

Rhythm{l16 [4
  c1 r-1
  hhhh hhhh hhhh hhhh r-1
  brrb srrb rrbr srrr
]}

次は、ノートオンオプションを使って、リズムにグルーブ感をつけてみましょう!
//----------------------------------------
//リズムで遊ぼう!
Track(10);Channel(10)
$b={n36,};$s={n38,};$h={n42,};$m={n44,};
//サンプルフレーズをマクロ文字列に登録。
#sample = { l16
  Sub{ Rhythm{
    [4 hhhh hhhh rhrh mrhh ]
  }}
  Rhythm{
    [2 [2 brbr srrb rrbr :srrr ] ssss]
  }
}
//さぁ、タイミングを使って遊ぼう!
t.onNote(0,2);#sample;r4
t.onNote(0,8);#sample;r4
t.onNote(0,8,4,-2);#sample;r4;//めくるめくゆらめく
//次は、ベロシティだ!
t.onNote(0,4);
v.onNote(120,70);#sample;r4//表にアクセント
v.onNote(70,120);#sample;r4//裏にアクセント
v.onNote(100,60,80,60,120,50,80,60);#sample;//1拍3拍にアクセント

リズムに関しては、\Sample\Rhythm\フォルダーの中にサンプルをたっぷり入れておきましたので、遊んでみてください。
●リズムマクロに引数を付ける。
$b{n36,?,,100} と定義して、Rhythm{ b4 }で、 n36,4,,100 と展開される
リズムマクロの中に、?を書くと、もし、Rhythmモードで、その後ろに数字があったとき、?を、数字に置換して展開するようになってます。
これで、ベロシティ付きリズムや、タイミング付きリズムを表現できます。
$S{n38,?,,127}
Rhythm{ l8[4 ssSs ssS16S16s ] }
●リズムモードの中の "Sub"
 リズムモードで、"Sub"を使うには、"(Sub)"のように、カッコで括る必要があります。
しかし、毎回これを書くのは、非常に面倒なので、以下のように、(Sub)を省略することができます。
CH(10);l16
Rhythm{
[4
  { hhhh hhhh hhhh hhhh }
  { b__b s__s b_s_ s__s }
  c1
]


戻る次へ