Z-MUSIC MML チュートリアル 初級編その3

[チュートリアル目次]

[Lesson 6: 和音を鳴らす]

Lesson 7: 音の歯切れをよくする / 繰り返しを使う

これまでの音は、例えば「四分音符なら四分音符の時間分ずーっと音が出ている」 ものばかりでした。実際には、発音時間だけを短くして、「歯切れをよくする」 ことがしばしばあります。

[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の時には指定している長さの8/8の長さだけ音を出す → 指定している長さそのまま全部音を出す
    • 7の時には7/8の長さだけ音を出す → 少し短く音を出す(残り1/8は音を出さずに待つ)
    • (中略)
    • 1の時には元の1/8の長さだけ音を出す → 非常に短く音を出す(残り7/8は音を出さずに待つ)

という意味になります。

# ホントは負の数や、8より大きな数も指定できますが、 その時どうなるかは自由研究ってことで。

さてサンプルを見てみると、

    • 最初の音(c4)の前にはq8があるので、 この音は四分音符の長さめいっぱいの間音が鳴り続けます。
    • 次の和音('>g<ce4')の前にはq2があるので、 この和音は四分音符の長さの2/8の時間だけ発音されます。 残り6/8の時間は音を消して待ちます。
    • 次の和音('>g<ce4')の前にはq8があるので、 この和音は四分音符の長さめいっぱいの間音が鳴り続けます。
    • ・・・以下同じですので省略。

となっており、 結果的に「ズーチャッチャー」なリズムになっているのが分かるかと思います。 もしこれが全部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を指定しています。

(ついでに、 > < も一組減らしています)

[リファレンスマニュアルでQコマンドを調べる]

[リファレンスマニュアルでゲートタイムの指定方法を調べる]

[リファレンスマニュアルで繰り返し表記について調べる]

Lesson 8: 複数チャンネルを使う (複数の楽器を同時に鳴らす)

ここまでは、一つの楽器を鳴らしてばかりでしたが、実際に曲を作る際には、 このようなシチュエーションは稀で、 リードギターにキーボードにベースにドラムスといったように、 一度に複数の楽器を同時に鳴らすことの方が多いと思います。

このためには、複数チャンネルを同時に扱うことをマスターしなければなりません。 (ここまでは、単一チャンネルを使うことしかやってません)

しかしながら、チャンネルって何? という説明は初級篇の内容としてはヘビィ過ぎますので、 ここでは簡単に、複数チャンネルの使い方だけを説明いたします。 (チャンネルそのものの説明については中級編に譲ります)

(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' :|

    • (t1) (t2)というのが、チャンネル指定です。 (t1)はチャンネル1を、(t2)はチャンネル2を指定しています。 (t1)以下にはチャンネル1用のMMLが書かれ、 (t2)以下にはチャンネル2用のMMLが書かれます。 演奏時には、これら2つのチャンネル向けの演奏が同時になされます。
    • チャンネル番号は、1~16が指定できます。 つまり、16種類の楽器を同時に鳴らすことができます。
    • # ここの、「(t1)はチャンネル1用の・・・」といった説明や、 1~16といった説明は、 本当は正しくありません。正しい説明につきましては、 中級編にて確認してください。
    • c1^1 というところがありますが、^ (べき乗記号)は、 「音の長さの足し算」を意味します。つまり、 この例では、全音符2つ分の音の長さになります。
    • # は、音楽記号でいう「シャープ(♯)」です。「半音上がる」ってやつですね。 MMLでは、音階を表すアルファベット(cdefgab)の直後に#を置くと、 その音階から半音上がった音になります。
    • ちなみに「フラット(♭)」(半音下がる)は、-(マイナス)を使います。 ここでは使っていませんが、+(プラス)は、#と同じ意味を持ちます。
    • rは休符です。(Lesson 4を参照)

これを演奏させると、2種類の楽器の演奏が同時に聞こえてくるはずです。

[リファレンスマニュアルでTコマンドを調べる]

[リファレンスマニュアルで、シャープやフラットの使い方を調べる]

[用語集で、"チャンネル"をひく]

Lesson 9: ドラムを使う

ドラムを使うのは簡単です。 一般的な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の直接指定となります。

[リファレンスマニュアルで、オクターブ指定を調べる]

Lesson 10: その他、やり残したこと

以下、 「ここまででやり残したけど、内容的には初級だろうなぁ」 ということをとりとめもなくまとめました。

    • エフェクタの設定
      • [volume 127] [velocity 127] [program 81] [effect.reverb 127] l4 c2 cd eeg2 eeddc2.
    • [effect.reverb]で、 リバーブエフェクトの掛け具合が設定できます。 強く掛ければ掛けるほど、お風呂場っぽい雰囲気になります(^_^;
      • [volume 127] [velocity 127] [program 81] [effect.chorus 127] l4 c2 cd eeg2 eeddc2.
    • [effect.chorus]で、 コーラスエフェクトの掛け具合が設定できます。 強く掛ければ掛けるほど、音が太くなります。
      • [volume 127] [velocity 127] [program 81] [effect.delay 127] l4 c2 cd eeg2 eeddc2.
    • [effect.delay]で、 ディレイエフェクトの掛け具合が設定できます。 強く掛ければ掛けるほど、山びこ効果が強くなります。
    • パンポットの設定
      • パンポットを変更することで、 音の出てくる方向を変えることができます。 MMLは[panpot]または@pで、 この後に方向を表す数値を指定することで、パンポットを変更できます。
      • [volume 127] [velocity 127] [program 1] [panpot 0] cde @p64 fg [panpot 127] ab<c
      • パンポットに指定する数値は、0が左端、数値が増えるに従って 右寄りになっていき、64で中央、127で右端になります。
      • なお、[panpot]を使う場合に限り、 数値の代わりにL24, M, R60 といったような指定ができます。 例えば先の例だと、以下のように書いても同様です。
      • [panpot L64] cde @p64 fg [panpot R64] ab<c
    • テンポ
      • テンポを変えることで、曲のスピードを変えることができます。 テンポ変更はtコマンド。
      • [volume 127] [velocity 127] [program 1] t120 cde t200 fg t80 ab<c
    • 曲のタイトル
      • 曲のタイトル情報を、 SMF(曲データファイル)に埋め込むことができます。 曲の頭に .commentを入れてください。
      • .comment ドレミのテストです。 [volume 127] [velocity 127] [program 1] cdefgab<c

[Lesson 11: (中級篇)に進む]

[もどる]