Programming Field

EasyPlayML 構文

EasyPlayMLで入力するテキスト形式のメロディーについて説明しています。

最終更新日: 2017/09/10 (Version 3.5.0t 対応)

  1. はじめに
  2. メロディーの形式
  3. メロディー命令一覧

はじめに

EasyPlayMLでは、いわゆるMMLのように、音楽・楽曲のメロディーをテキスト形式で表現しています。メロディーの内容は原則としてMIDIのメッセージ(コマンド)に変換・出力されます。

もともと「Play Board」として本サイトで公開していましたが、Webブラウザー上で実装し直した際に「EasyPlayML」と名称を変更しています。

メロディーの形式

EasyPlayMLで取り扱う「テキスト」ベースのメロディーは、次のような規則で入力します。

  1. 音名「ドレミファソラシ」は「CDEFGAB」となります。
  2. 音符以外の命令(テンポ楽器など)は、命令を表す文字と、必要な場合は数値(パラメーター)を連続で入力します。
    • 例えばテンポ命令の場合は「t90」(意味: テンポを 90 に)と、命令「t」とそれに必要な数値「90」をつなげて書きます。
  3. 一部の文字を除き、命令に関係ない文字はエラーになります。
    • 現在無視される文字は「|」とスペース文字、改行文字(\r, \n)のみです。
  4. 大文字・小文字は問われませんが、命令の文字は小文字、音を表す文字は大文字で表すことを推奨します。全角文字は使えません。
    • [Version 3.0 以降] ファイル/データはUTF-8(BOMなし)で取り扱われますが、前述の通り命令に関係ない文字はエラーとなるため、Unicode文字も現時点ではエラーとなります。

例を示します。

t120p38 l4C D E F|E D l2C|l4E F G A|G F l2E|C C|C C|l8C C D D E E F F|l8E r D r l2C

このメロディーを入力欄に入れて「再生」をクリックすることで、入力されたテキストに基づいたメロディーを聴くことができます。なお、このメロディーは「かえるのうた」をテキストメロディーデータとして書き表したものです。

上記で説明したものを含む、メロディーで使える命令の一覧は後のセクションで紹介します。

メロディー命令一覧

注意: ここでは命令の文字は音符命令を除いてすべて小文字で表記しています。

「命令」の欄の「m」「n」は、そこに数値が入ることを示しています。どんな数値が入るかは説明をご覧ください(「16進」などといった表記がない場合は10進数で指定します)。

※ [ ] や < > で囲んで指定するときに記述する数値は、10進数のほかに「0x」か「x」で始まる16進数と、「0」で始まる8進数が指定できます。必要に応じて負の値であることを示す「-」(マイナス)を付けることも出来ます。

例に示しているメロディは、実際に入力(またはコピー & ペーストなど)して再生することができます。

命令一覧 (アルファベット順)

テキストメロディー命令の解説

Version 1.0 以降

CDEFGAB

音符

音を鳴らします。スペースなどを入れずに音符を続けて書いた場合は「和音」となります。また、同じオクターブ内では C が一番低く、B が一番高くなっています。

C=ド、D=レ、E=ミ、F=ファ、G=ソ、A=ラ、B=シ (いずれも絶対音)。

[Version 3.0 以降]

和音において、個々の音に対して音を伸ばす割合(h)ベロシティー(v)を指定することができます。構文は以下の通りです。

E<statement>

E には実際の音符が入ります。< > で囲まれた statement には h 命令v 命令のみ指定することができ、直前の音符のそれを変更します。ここで指定した命令は、他の音符に影響を及ぼしません。

臨時記号をつけたり音の上げ下げを行う場合は < の前に入れるようにしてください。

< >オクターブの上げ下げが同じ文字を使用していますが、h命令・v命令・スペース文字以外の文字がある場合はオクターブの上げ下げと見なします。逆に「<>」と指定されている場合は個々の音に対する指定を行うための< >と見なします。

+-=

臨時記号

音符命令の直後に置きます。+ は半音上げ(シャープ)、- は半音下げます(フラット)。これらは、指定した直前の音のみに変化をもたらします。

[Version 3.0 以降]

・ある高さの音にこの命令を付けた場合、小節区切りが現れるまで、その高さの音に + や - が着いたものと見なされます(楽譜における臨時記号と同じ働き)。

「=」が追加されています。この記号は、調号や上記の + - で変更した音の高さを元の高さに戻すときに使います(ナチュラル)。付け忘れにご注意ください。

例: EG+B ・・・コードネーム「E」の和音です。

*/

音の上げ下げ(*: アスタリスク)

音符命令の直後に置きます。+ は半音上げます。また、- は半音下げ、* は 1 オクターブ上げ、/ は 1 オクターブ下げます。ただし、指定した直前の音のみに変化をもたらします。

[Version 3.0 以降] 小節区切りが現れるまで有効です。

例: EGC* ・・・コードネーム「C」の和音で、最上位の音が「C」になります。

~

タイ(~: チルダ)

音符命令の直後に置きます。これをつけるとスペースなどの区切りでも音が切れません。和音全体の音にタイをつけるときは、それぞれの音に ~ を付けてください

例1: EG~ FG~ EG~ DG~ E~G~ EG ・・・「ソ」と伸ばしている間に「ミ ファ ミ レ ミ」と動きます。

例2: EG~ F E D E~ EG ・・・例1と全く同じです。

on

オクターブ

音符のオクターブ位置を指定します。数値(n)は 1 桁です。ピアノの Middle C があるオクターブを 3 としています。最初にオクターブは 3 に決められ、数値が大きいほど音は高くなります。

[Version 3.0 以降] オクターブ位置 0 より下の音を指定する場合は、オクターブの上げ下げ* または / を使用してください。

<>

オクターブの上げ下げ

< はオクターブを 1 上げ、> はオクターブを 1 下げます。なお、* や / と違い、これは効果がずっと続きます。

[Version 3.0 以降] この命令の前後にスペースを入れずに音符を記述した場合、それらの音符は和音と見なされます(E<C なら E と、その上の C の和音)。

tnnnt+nntatItII

テンポ

テンポを「1 分間に入る 4 分音符の数」で指定します。この数値(nnn)は 1~3 桁で指定します。

[Version 1.05 以降] nnnに、+ や - を付けた数値を指定できます。例えば、t+10とすると、この位置から前のテンポに 10 プラスしたテンポで演奏します。なお、+ や - を付けた場合、数値の桁数は最大 2 です。

[Version 2.01.2 以降] taと指定すると、+ や - を付けて変化させたテンポや rit 命令などで変化したテンポ(相対テンポ)を元に戻します。

tIと指定すると、最初のテンポに戻ります(曲の頭にtnnn形式のテンポ命令がない場合は 120)。

tIIと指定すると、tnnn形式のテンポ命令で変更した 2 番目のテンポに戻ります。

[Version 3.0 以降] テンポ命令はどのパートに書いてもすべてのパートに対して影響します。通常はパート1に含めるようにしてください。

例1: t96 ・・・「大きな古時計」と同じぐらいのテンポです。

例2: t140 l4C E D B/|t-60 A/ C E G|ta F E D C ・・・ [Version 2.01.2 以降] ta ではテンポは 140 に戻ります。

ln

音符の長さ

「○分音符」の音符の長さを指定します。「○」に入る数字が「n」となります。n は最大で 128 です。

例: l16B A G+ A|l4<C ・・・「トルコ行進曲」の出だしです。

mn

音符の長さ(2)

L で指定した長さをn倍します。この命令は「付点音符」を作る時などに使います(ただし、「付点○分音符」の「○」を l に指定するのではなく、その 2 倍の数値を l に指定し、m で 3 倍します。付点 4 分音符: l8m3)。

[Version 1.03 以降] 付点命令が追加されていますので、こちらを使うことをおすすめします。

例: l4G G G|l8m3A l8B l4A|B B <C|m3D ・・・「ふるさと」の出だしです。

r

休符

lm で指定した長さの分だけ休みます。この命令は、音符との間にスペースなどを必要とします。スペースがないと、この休符は和音の一部と認識されてしまいます。

[Version 3.0 以降] この命令は和音の一部と認識されなくなりましたが、スペースは空けるようにしてください。また、付点(複付点)を付けることが出来るようになりました。さらに、関連したrf 命令が追加されています。

例: o4l8 D D |l4G l8D D E D l4D|>l8B r <D r >B r <D D|l4G l8D D l4 E l8D D|>B r <D r >B r <D r ・・・「大きな古時計」の中盤です。

pnn

楽器選択

演奏する楽器を変更します。nnは 2 桁で、00~7F の 16 進数で指定します。数値と楽器の対応は MIDI の規格によって決められたものを利用します。(どの数値がどの楽器に対応するかは割愛させていただきます。) Play Board ではメイン ウィンドウの「楽器」のリストを選択することでこの命令を挿入することができます。

例: p0C ・・・楽器を 0x0C:「Marimba」(木琴)に変更します。

in

出力チャンネル変更

MIDI の出力チャンネル番号を変更します。nは 1 桁で、0~F の 16 進数で指定します。

指定がない場合、最初のパートを 0、次のパートを 1、・・・とします。15 (F) まで来たら、次をまた 0 にリセットして数え直します。

例: i9 ・・・パートの出力チャンネルを 9 番に変更します。9 番はドラムチャンネルです。

hnnn

音を鳴らす長さ

この値は l とは違い、1 つの音符を目一杯鳴らすか、スタッカートのように少しだけ鳴らすかを指定します。nnnはどれだけ鳴らすかを表す % (パーセント)で指定します。そのため、0 から 100 の間で、必ず 3 桁で指定します。最初は 6480(%) になっています。

[Version 3.0 以降] 数値は 3 桁でなくても可能になりました(指定できる値の範囲は同じ)。また、和音において、個々の音符に対して指定することができます。指定方法は音符命令を参照してください。

例: h30l4C D E F|h100G A B <C ・・・最初は音が鋭く、後半は音が滑らかに鳴ります。

vnn

ベロシティー

音量を変更します。この音量はミキサーなどで設定される音量ではなく、音符の強弱をつけるとき(アクセント)などに用いられます。nnは 2 桁で、00~7F の 16 進数で指定します。

[Version 3.0 以降] 和音において、個々の音符に対して指定することができます。指定方法は音符命令を参照してください。

例: v4Fl4C v5FC v6FC v7FC ・・・「ド」の音が少しずつ大きくなります。

w

静止

lm で指定した長さの分だけ静止します。休符(r)と違って、音符の直後に書いた場合は音が途切れません(「休み」ではなく「静止」であることに注意してください)。例にもあるように、これを使うと付点音符タイに似たことが出来ます。

例: o2l8 Cww C Cww C|Cww C Cww C|>Gww G Gww G|<Cww C Cww C ・・・ベース音でよくあるメロディーです。

xmmnn

特殊効果

様々な効果で音色を変えます。どんな効果を与えるかは「mm」、その効果に対する値は「nn」に指定します。両方とも 2 桁で、00~7F の範囲の 16 進数で指定します。

(指定する値は MIDI の Control Change Message に準拠します。mmnn の順に用いられます。)

[Version 3.0 以降] 効果(2)で具体的な効果を指定できます。

例: h100 x017F l2C C|l1<C ・・・モジュレーション(音が揺れる効果)をかけます。

znn

音符(2)

音を鳴らします。この命令は、音を 2 桁の 16 進数(nn)で指定します。この方法で音を鳴らす場合、「<」や「>」o 命令調号による変化などは無視されます。

[Version 3.0 以降] 付点(複付点)を付けることが出来るようになりました。

例: l4z3C z3E z40 z41 z43 z45 z47 z48 ・・・「ドレミファソラシド」と鳴ります。

Version 1.03 以降

.

付点音符 (. はピリオド)

音符命令の直後に置きます。付点音符を作ります。これを「..」と連続に入れると複付点音符になります。付点音符は元の音符の 1.5 倍、複付点音符は元の音符の 1.75 倍の長さになります。なお、和音の場合は和音内の 1 つの音符(最後の音符を推奨)に付けてください。そして、付点を指定したあとの音符は、元の長さに戻ります。

[Version 3.0 以降] 付点は r 命令z 命令にも付けることが出来ます(複付点も)。

例: o2 l4C. l8C l4C. l8C|l4C. l8C l4C. l8C|>l4G. l8G l4G. l8G|<l4C. l8C l4C. l8C ・・・「w」の項目で示した例と同じです。

tupn

連符

直後のいくつかの音符を連符にします。「n」は n 連符を示し、3~31 の数値で指定します。

この命令を指定する前に、「l」を使って連符に使う音符の長さを指定してください。また、連符命令のあとに音符の長さを変えても、元の連符が必要とする連符全体の時間の長さだけ連符の効果が持続します。例えば、8 分音符の 3 連符を指定して、付点 8 分音符、16 分音符、普通の 8 分音符と置くと、この 3 つを足した長さは、 同じ連符の指定で 8 分音符を 3 つ置いた時の合計の長さと同じになります。このようなことをやるとき、合計の長さを同じにしないとズレが発生します。

[Version 3.5 以降] 拍子の分母が 8 の倍数、分子が 3 の倍数である場合、音符の長さによって連符の長さの計算が一部変わります。例として、12/8 拍子における「8 分音符の 4 連符」に対する音符の長さは「8 分音符の 3 つ分」の長さを4等分する長さになります。

例 1: l4C l8 C D tup3E F G A B|l1<C ・・・「ミ ファ ソ」が 8 分音符の 3 連符になります。

例 2: l8tup12 C D E F E D l16m3C l16E l8D m3C ・・・8 分音符で 12 連符を指定していますが、理論的には音符 3 つずつに 3 連符をかけるのと同じです。途中の「ド ミ レ」が弾みますが、3 連符 (12 連符) の流れを崩してはいません。

rhm/n

拍子

拍子を設定します。演奏には関係ありませんが、作成したSMFファイルを楽譜にして表示するアプリケーションではこの命令を使用する場合があります。

m」では拍子の分数の分子 (1 以上 32 以下)、「n」では拍子の分数の分母 (こちらは 2、4、8、16、32、64 のいずれか) を指定します。また、必ず間に「/」を指定します。

[Version 3.0 以降] 拍子は全休符の長さに影響します。

[Version 3.5 以降] 拍子は連符の計算に影響する場合があります。

例: rh4/4 l4C D E F|E F C r ・・・4 分の 4 拍子にして演奏します。

Version 1.05 以降

Version 1.05 以降では、t 命令に新しい機能が追加されています。

arpn

アルペジオ / アルペッジョ

和音を構成する音符命令の直前に置きます。 直後の和音を 1 音ずつすばやく演奏します。「n」は 1 音の鳴らす長さを 1 桁~2 桁の数値で指定します。指定しない場合、この数値は 10 になりますこの数値は 8 になります。なお、3048 で 8 分音符と同じ長さです。

この命令は、ピアノなどで最後の和音によくある「縦の波線」を再現したものです。ただし、音を鳴らす順番は和音で指定した音の記述順になります。

[Version 3.0 以降] n で指定する値は、0~96 の間で指定するようになりました。96 で 4 分音符 1 つ分になります。

例: l4F C C >B|l1arp20CG<CEG<C ・・・最後の和音が、下の音から順番に(ややすばやく)演奏されます。終わりなどでよくあるパターンです。

tnnnn

テンポ + 休符

[Version 3.0 以降] この命令は削除されました。

stac

スタッカート

この命令は、直後の音(和音)をスタッカートにして短く切るようにします。(音符命令の直前に置きます。)

この命令は、h40 とほぼ同義ですが、1 つの音(和音)のみ有効です。

stacs

スタッカーティシモ

この命令は、直後の音(和音)をスタッカートよりも短く切るようにします。(音符命令の直前に置きます。)

この命令は、h15 とほぼ同義ですが、1 つの音(和音)のみ有効です。

stact

スタッカートテヌート

この命令は、直後の音(和音)をスタッカートにして短く切り、さらにテヌート付けます。(音符命令の直前に置きます。)

現在この命令は、h40 とほぼ同義で、1 つの音(和音)のみ有効ですが、 将来この命令の効果は変更される可能性があります(「ten」参照)。

ten

テヌート

この命令は、直後の音(和音)をたっぷりと演奏します。(音符命令の直前に置きます。)

現在この命令は、h90 とほぼ同義で、1 つの音(和音)のみ有効ですが、 テヌートの本来の効果から、将来この命令の効果は変更される可能性があります。

Version 2.01.2 以降

Version 2.01.2 以降では、t 命令に新しい機能が追加されています。

cresc<m,n>{ }

クレッシェンド

{ } で囲んだメロディーを演奏中に、だんだんと音を強くしていきます (ボリュームを使用)。<m,n>m は始めの大きさ、n は終わりの大きさで、10 進数で 0~127 の数値を指定します。この数値は、頭に「x」をつけた場合は 16 進数、「0」をつけた場合は 8 進数、何もつけない場合は 10 進数となります。この数値は m < n でも m > n でも構いません (後者はデクレッシェンドになります)。

<m,n>の直後に { } を入れる必要があります。> と { の間にスペースなどを入れることはできません。

例: l4 cresc<80,127>{C D E F|G A B <C} ・・・鳴っている音がだんだん大きくなります。

rep{ }

リピート

{ } で囲んだメロディーを合計 2 回演奏します。crescと同様に、repの直後に { } を入れる必要があります。

※ この命令は将来拡張される可能性があります。

例: l4 C D E F|rep{E D C D}|E D C r ・・・「E D C D」が 2 回演奏されます。

rit<m,n>{ }

リタルダンド

{ } で囲んだメロディーを演奏中にテンポをだんだんとゆっくりにします。数値の指定方法や注意はcresc命令をご覧ください。mn の数値の範囲は 10 進数で 0~65535 で、この数値はテンポを意味します。

例: t100l4 A. l8B l4<C >A|G Ew C|rit<100,70>{r l8D E l4F D|l1C} ・・・3 小節目からテンポがゆっくりになります。

sigccsignn

調号(1)

曲の調号を設定します。調号を設定すると、対応する音符について、+ - を付けなくてもシャープやフラットが自動的に付きます。

cc は調号の主音と、長調か短調を文字で指定します。短調にする場合のみ主音の次に「m」をつけ、長調の場合には何もつけません。たとえば、cc に「E」と指定すると、主音がミで長調の調号、つまりシャープが 4 つある調号になります。「F+m」だと主音がファ♯で短調の調号、つまりシャープが 3 つある調号になります。

nn は調号のシャープ・フラットの数を、+ や - をつけて指定します。たとえば、nn に「-4」と指定するとフラットが 4 つの調号に、「+7」と指定するとシャープが 7 つの調号になります。

長調か短調を指定した場合(数値指定をしなかった場合)、SMFファイルを作成する際にその情報が書き込まれます。また、MIDIデバイスによっては長調/短調の情報を認識する可能性があります。数値指定をした場合は長調として書き込まれます。

[Version 3.0 以降] 調号はどのパートに記述しても、すべてのパートに影響を及ぼします。個々のパートに調号を指定する場合は、調号(2) をご覧ください。

例: l4 C D E F|sigG D E F G ・・・ 2 小節目の F にシャープが付きます。

Version 3.0 以降

Version 3.0 以降では、音符命令臨時記号r 命令z 命令、に新しい機能が追加されています。また、臨時記号命令arp 命令の動作を多少変更し、tn 命令は廃止しました。

|

小節区切り

これは厳密には命令ではありませんが、| は小節の区切りとして使用されます。この命令が来ると、臨時記号はリセットされます。

※ 改行文字(C 言語のエスケープシーケンスで「\r」「\n」)も小節区切りと見なされます。

例: l4 E B A <C+|D C B/ C ・・・ 1 小節目の C にシャープがありますが、2 小節目の C にはシャープが付きません。

rfn

休符(2)

「全休符」を指定します。休む長さは rh 命令に依存します。本来は小節区切りではさみますが、厳密にチェックは行っていません。

n は 1 以上 32767 以下の数値を指定することが出来ます。この数値は「n 小節分休む」という意味を表します。1 小節ごとに拍子をチェックするため、休んでいる間に拍子が変わっても問題ありません。n を指定しなかった場合は 1 と見なされます。

例: rh3/4 rf|l2r l8G F|l4E G C*|B A G ・・・ 1 小節目は 3 拍分の休符となります。

sigpccsigpnnsigpr

調号(2)

そのパート内でのみ影響される調号を設定します。ccnn に指定する値は調号(1)と同じです。

ここで指定した調号は、調号(1)より優先されます。つまり、sigpを使った後で sig を書いても、そのパートの調号は変わりません。それを解くには、sigpr を使います(r はリセットの意味)。これを使うと、最後に sig で指定された調号が使用されます。

keyn

キーコントロール

音を上げ下げします。これは臨時記号調号が指定されていても上げ下げを行います。n に指定する値は 1 桁の 10 進数(+ や - の符号も可能)で、半音単位です(2 なら全音)。この記号は、これを記述したパート内でのみ影響されます。

ped{ }

ペダル (ホールドペダル)

ホールドペダルの効果を適用します。hold 命令と異なり、{ } しか使用できません。この命令はピアノのペダルとほぼ同じ働きをさせることが出来ます。

※ 「ed」が 16 進数の数値になっているため、p 命令と捉えることもできるかもしれませんが、指定できる楽器の番号は 127 (0x7F) までで、0xED は範囲外であるため、ped は楽器命令にはなりません。

holdlegatoportsoftsust

効果(2)

それぞれの効果を適用します。

hold: ホールドペダル、legato: レガート、port: ポルタメント、soft: ソフトペダル、sust: ソステヌート。

いずれの効果も、直後に「-」を付けるとその効果は OFF になります。また、直後に「{」を付けて { } を作った場合、最初は ON になり、} に達した時点で OFF になります。

balnnexprnnfootnnmodlnnpannnportsnnvolnn bal[n]expr[n]foot[n]modl[n]pan[n]ports[n]vol[n]

効果(3)

それぞれの効果を適用します。

bal: バランス、expr: エクスプレッション(音量の大小表現)、foot: フットペダル、modl: モジュレーション、pan: パン(左右のバランス)位置、ports: ポルタメント時間設定、vol: パート音量。

いずれの効果も、nn には 2 桁の 16 進数を直接指定するか、[n] の形式で指定します。後者の形式では、n に 10 進数、0x または x で始まる 16 進数、および 0 で始まる 8 進数を指定しますが、nn での値の範囲が 00~7F なのに対し、こちらは 0~0x3FFF (14ビット値)の範囲で指定します。(nn に128を掛けた値が n の値になります。)

[n] の形式は、[m,n] と、7 ビットずつに分けて指定してもかまいません。このときは、m が上位 7 ビット、n が下位 7 ビットです。

chonnrevbnntremnn

効果(4)

それぞれの効果を適用します。

cho: コーラス、revb: リバーブ、trem: トレモロ。

いずれの効果も、nn には 2 桁の 16 進数を直接指定します。効果(3)と違い、0~127 (0~7F) の値の範囲しか指定できません。

pb<m,n>{ } pb[m] / pb[m,n]

ピッチベンド(ピッチホイール)

ピッチベンドの効果を適用します。mn に指定する値は -8192~8191 の範囲です。初期設定では 8191 でほぼ半音上にずれます。0 を指定すると元の位置になります。1 つ目の構文では、rit 命令と同様に徐々に変えることができます。2 つ目の構文は値を直接指定するので、徐々に変えた後、元に戻すときなどに使用できます。

2 つ目の構文における [n][m,n] は、効果(3)の値の指定方法と同様です。ただし、マイナスの値を指定する場合、[m,n] の文では m にのみマイナスの記号を付けてください。([-32,0]で-4096、[-32,64]で-4032となります。)

ピッチベンドの最大幅を変更するには pbs 命令を使用します。

pbs[m] / pbs[p,q] pbspp

ピッチベンド設定

ピッチベンドの最大幅を変更します。m に指定する値は 0~0x3FFF の範囲です。

この命令は [p,q]pbspp の構文を使う方が楽に設定できます。pqpp に指定する値は 0~0x7F (pp のみ 2 桁の 16 進数限定、残りの 2 つは 10 進数、16 進数、8 進数いずれも可)で、ppp は半音単位、q はセント単位です。q はデバイスによっては無視されるので、p または pp に値を指定して q に 0 を指定するのが一般的です。

Version 3.1 以降

Version 3.1 以降では、n 命令を r 命令に変更しています。

atc[notes,n] atc[notes]<m,n>{ }

アフタータッチ(ポリフォニック キー プレッシャー)

アフタータッチの効果を適用します。この効果は既に鳴っている(再生されている)音の圧力(音量)を変化させるときに使います。

notes には音符命令z命令を置きます(ただしタイや付点など、音の高低に関係ない要素と、<>を指定するとエラーになります)。ここで指定された音に対して効果が適用されます。

1つ目の構文では、音符命令の後ろに「,」を置き、その直後に実際の効果の値を指定します。値は10進数、0x または x で始まる16進数、および 0 で始まる8進数を指定します。使用可能な値の範囲は 0 から 127 までです。

2つ目の構文では音符命令をすぐ「]」で閉じ、その後にrit 命令と同様に値を指定します。使用可能な値の範囲は 0 から 127 までです。

celennphasnn

効果(4-2)

それぞれの効果を適用します。

cele: セレステ、phas: フェイザー。

指定方法は効果(4)と同じです。

rpn[efx]nn rpn[efx]-

追加効果指定1(RPN)

効果を指定します。efx に指定したい効果の番号を10進数、0x または x で始まる16進数、および 0 で始まる8進数で指定します。

nnには、効果の指定に必要な値を、効果(3)の値の指定方法で指定します(16進2桁、[ ]で囲んだ値指定など)。

2つ目の構文は効果に指定する値が不要な場合に用います。

なお、efx が0の場合はpbs命令とほぼ同じものとして扱われます(pbsは加えて「rpn[x3FFF]-」が実行されます)。

nrpn[efx]nn nrpn[efx]-

追加効果指定2(NRPN)

効果を指定します。構文は追加効果指定1(RPN)と同じです。

macro[name=command] macro[name]{ }

マクロ

「マクロ」を作ります。マクロ呼び出しを利用することで、command または { } の中に記述されている命令セットと同じ命令として扱うことができます。

name には、マクロ呼び出しで利用する「マクロ」の名前を指定します。この名前に使用できる文字はアルファベットと数字と「_」と非ASCII文字(UTF-8表現における文字コード0x80以降)のみです。

また、macro と「[」の間に「+」および「-」を記述することができます。「-」を記述すると、「マクロ」の命令セット中で変更した一部の効果を元に戻します。元に戻すのは l, m, h, p, v, key, sigp であり、「macro+」と記述した場合か「+」および「-」を記述しなかった場合は元に戻しません。

1番目の構文は命令が1つのときのみ有効で、その命令を直接「=」の後に記述します。2番目の構文は1つ以上の命令をセットとした「マクロ」を作ります。

mmacro[name]{ }

メロディーマクロ

「メロディーマクロ」を作ります。メロディーマクロ呼び出しを利用することで、{ } の中に記述されている命令セットと同じ命令として扱うことができます。

mmacro では macro と異なり、{ } の中に特殊な音符指定 1 2 3... および zz を記述します。(使用しないこともできますが、その場合でも呼び出し時は1つ以上音符を指定する必要があります。)

name には、マクロ呼び出しで利用する「メロディーマクロ」の名前を指定します。この名前に使用できる文字はアルファベットと数字と「_」と非ASCII文字(UTF-8表現における文字コード0x80以降)のみです。

また、mmacro と「[」の間に「+」および「-」を記述することができます。macro と異なり、「+」を記述すると、「メロディーマクロ」の命令セット中で変更した一部の効果を元に戻さず持続させます。持続させるのは l, m, h, p, v, key, sigp であり、「mmacro-」と記述した場合か「+」および「-」を記述しなかった場合は元に戻します。

なお macro と異なり、「mmacro[name=command]」と記述することはできません。

&name;

マクロ呼び出し

macro で作成した「マクロ」に紐づいた命令を実行します。name には実行したい「マクロ」の名前を直接記述します。名前を記述した直後には必ず「;」を記述する必要があります。

なお、「メロディーマクロ」をマクロ呼び出しで利用することはできません。

&name[notes];

メロディーマクロ呼び出し

mmacro で作成した「メロディーマクロ」に紐づいた命令を実行します。name には実行したい「メロディーマクロ」の名前を直接記述します。(なお、末尾の「;」は省略することができます。)

メロディーマクロ呼び出しはマクロ呼び出しと異なり、「[notes]」を記述する必要があります。notes には1つ以上の音符命令を和音のように記述します。この記述順序はマクロ内音符の数値に対応させます。メロディーマクロ呼び出しがメロディーマクロ内にある場合は、notes にマクロ内音符を使うこともできます。

なお、「マクロ」をメロディーマクロ呼び出しで利用することはできません。

123...

マクロ内音符(1)

メロディーマクロ内でのみ使用できる仮音符です(1 から 9 のいずれかの数字文字を使います)。これらは通常の音符命令とほぼ同様に記述することができますが、表記として「1」から「9」の数字文字を用いているため、l 命令など数字を伴う命令の直後に記述する場合は必ずスペースを挟む必要があります。

なお、9 より大きな数値を記述することはできません。その場合は zz 命令 を利用します。

zznn

マクロ内音符(2)

メロディーマクロ内でのみ使用できる仮音符です。この命令では、仮音符を 2 桁の 16 進数(nn)で指定します。この nn はメロディーマクロ内命令実行時に 01, 02, 03, ... の順でメロディーマクロ呼び出しに指定した音符が割り当てられます。それ以外は z 命令 と同様の記述方法になります。なお、nn に 00 を使用することはできません。