play

働き

音楽演奏を行います。

文法

play <MML1>[,<MML2> …]
  • MML - Music MacroLlanguage の文字列の式

説明

play は、mml(music macro language)に従って、音楽を演奏します。mml を複数書くと、それらが同時に演奏されます。mml の演奏が終わるまで、play の次の行には進みません。

mml は、どのように音を鳴らすかを指示するために、以下のコマンドを必要に応じて書いていきます。

コマンド 説明
cx, dx, ex, fx, gx, ax, bx 音階をアルファベットで指示します(c: ド 〜 b: シ)。音長は、各音程のあとの x(1 〜 64)で指示します。音調は、例えば 4 を指定したときは、4分音符となります。x を省略したときは、lx コマンドで指定された音長となります。
+, # 音階のアルファベットのあとに書くことで、音階を半音上げます。c+4 のように書きます。
- 音階のアルファベットのあとに書くことで、音階を半音下げます。c-4 のように書きます。
. 音長の数値のあとに書くことで、付点音符を指示します。音長が 1.5 倍になります。
rx 休符を指示します。休符の長さは x(1 〜 64)で指定します。x を省略したときは、lx コマンドで指定された長さとなります。
lx 音長の初期値を指示します。x には、1 〜 64 までの数値を書きます。例えば 4 を指定したときは、4分音符となります。省略時の音長は、4 です。
ox オクターブを指示します(1 〜 9)。省略時のオクターブは、4 です。
< オクターブを1つ下げます。
> オクターブを1つ上げます。
tx テンポ(bpm)を指示します。x は 32 〜 255 の数値を指定します。省略時のテンポは、120 です。
vx 音量を指示します。x は 0 〜 10 の数値を指定します。省略時の音量は 5 です。
{...}x 連符を指示します。x で指定された音長を、{...} 内の音符の個数で等分します。x は 1 〜 64 の数値を指定します。
qx 音長(ステップタイム)と実際に音を出している長さ(ゲートタイム)の比を指定します。x は 1 〜 8 の数値を指定します。ゲートタイム/ステップタイムの比は、x/8 で計算されます。省略時は、q7 です。
@x 音色を指定します。x は 0 〜 3 の数値を指定します。0: 正弦波 1: 短形波 2: のこぎり波 3: 三角波

サンプルプログラム

play "l4o4t200v5q7@1","l1o4t200v4q7@1"
play "g>edc","c"
play "<g2.g","c"
play "g>edc","c"
play "<a2.a","f"
play "a>fed","f"
play "<b2.>e","g"
play "ffed","g"
play "e2.<g","c"
play "g>edc","c"
play "<g2.g","c"
play "g>edc","c"
play "<a2.a","f"
play "a>fed","f"
play "gggg","g"
play "agfd","g"
play "c2.r4","c"
play "eee2","c2c2"
play "eee2","c2c2"
play "egc.d8","c2c2"
play "e2.r4","c2c2"
play "fff.f8","f2f2"
play "feee","c2c2"
play "edde","g2g2"
play "d2g2","g2g2"
play "eee2","c2c2"
play "eee2","c2c2"
play "egc.d8","c2c2"
play "e2.r4","c2c2"
play "fff.f8","f2f2"
play "feee","c2c2"
play "ggfd","g2g2"
play "c1","c"