これまでの音は、例えば「四分音符なら四分音符の時間分ずーっと音が出ている」 ものばかりでした。実際には、発音時間だけを短くして、「歯切れをよくする」 ことがしばしばあります。
[volume 127] [velocity 127] [program 28] |:2 q8 c4 q2'>g<ce4' q8'>g<ce4' q8 >g4< q2'>g<ce4' q8'>g<ce4' :|
Lesson 6と比較して、 [program]の番号が変わってます(ギターにしました)ので注意してください。 これを演奏すると、 いわゆるワルツのリズム(ズーチャッチャー、ズーチャッチャー)が演奏されます。
まずqコマンドがたくさん入っていますが、 これは、「音の歯切れ具合」を指定するためのMMLです。 qの後ろに1~8の数字をつけることができ、
という意味になります。
# ホントは負の数や、8より大きな数も指定できますが、 その時どうなるかは自由研究ってことで。
さてサンプルを見てみると、
となっており、 結果的に「ズーチャッチャー」なリズムになっているのが分かるかと思います。 もしこれが全部q8状態、 つまり歯切れをよくしないでずっと音が鳴り続けるような場合は、 「ズーチャーチャー」なリズムになってノリが悪くなってしまいます。
次に |: ~ :|について。これで括ると、「括られた中のMMLを繰り返し演奏する」 ことになります。繰り返す回数は |: の直後に数字を入れて指定します。 このサンプルでは、|:2 としていますので、2回繰り返されます。
以下余談です:
一般に、 音符の表記上の長さを「ステップタイム」 と呼び、その音符が実際に発音される長さを 「ゲートタイム」と呼びます。 Z-MUSICでは、ステップタイム指定の直後に,(コンマ)をつけて更に時間指定することで、 ステップタイムとゲートタイムを同時に指定することができます。 例えば、先のサンプルは、qコマンドを使わなくても次のように書けます。
c4 '>g<ce4,16' '>g<ce4' >g4 'g<ce4,16' '>g<ce4'
和音中、"4,16"としてステップタイムとゲートタイムを指定しています。 4分音符の2/8の長さは16分音符になりますので、 ゲートタイムとして16を指定しています。
(ついでに、 > < も一組減らしています)
ここまでは、一つの楽器を鳴らしてばかりでしたが、実際に曲を作る際には、 このようなシチュエーションは稀で、 リードギターにキーボードにベースにドラムスといったように、 一度に複数の楽器を同時に鳴らすことの方が多いと思います。
このためには、複数チャンネルを同時に扱うことをマスターしなければなりません。 (ここまでは、単一チャンネルを使うことしかやってません)
しかしながら、チャンネルって何? という説明は初級篇の内容としてはヘビィ過ぎますので、 ここでは簡単に、複数チャンネルの使い方だけを説明いたします。 (チャンネルそのものの説明については中級編に譲ります)
(t1) [volume 127] [velocity 127] [program 81] d4 d4f#4a4a1^1 (t2) [volume 127] [velocity 127] [program 28] r4 r4r4r4r2 q3 |:2 'df#a4' :| r4 |: '>a<df#4' :|
これを演奏させると、2種類の楽器の演奏が同時に聞こえてくるはずです。
[リファレンスマニュアルで、シャープやフラットの使い方を調べる]
ドラムを使うのは簡単です。 一般的なMIDI音源では、「チャンネル10」がドラムパートになっていますので、 そこを使うようにするだけ。
(t1) [volume 127] [velocity 127] [program 81] l4 c2 cd eeg2 eeddc2. (t10) [volume 127] [velocity 127] l4 o1 |:7 b<d :| '>b<<c#'
ドラムのパートでは、例えば鍵盤があったとして、 その鍵盤それぞれに別々の打楽器の音が割り当てられています。 例えばオクターブ1のシだとバスドラム(その1)ですし、 オクターブ2のレだとスネア(その1)、 オクターブ3のドのシャープだとクラッシュシンバル(その1)・・・などなど。
これらから必要なものを選んで鳴らそうとした場合、 オクターブの指定は > < のような相対的な指定だけでなく、 絶対的な位置の指定ができた方が便利です。 このために使うのがMML O
で、 o1
などとすると、オクターブ2の直接指定となります。
以下、 「ここまででやり残したけど、内容的には初級だろうなぁ」 ということをとりとめもなくまとめました。
[effect.reverb]
で、 リバーブエフェクトの掛け具合が設定できます。 強く掛ければ掛けるほど、お風呂場っぽい雰囲気になります(^_^;[effect.chorus]
で、 コーラスエフェクトの掛け具合が設定できます。 強く掛ければ掛けるほど、音が太くなります。[effect.delay]
で、 ディレイエフェクトの掛け具合が設定できます。 強く掛ければ掛けるほど、山びこ効果が強くなります。[panpot]
または@p
で、 この後に方向を表す数値を指定することで、パンポットを変更できます。[panpot]
を使う場合に限り、 数値の代わりにL24
, M
, R60
といったような指定ができます。 例えば先の例だと、以下のように書いても同様です。t
コマンド。