「メモミュージックテキストデータの書き方」

メモミュージックのテキストデータは、音符や音符に付随する記号、各種の設定を半角のアルファベット・数字、記号類で表します。

フリーフォーマットですが、1小節単位にスペースで区切り、4小節程度で改行することを推奨しています。

拍子や1小節の拍数などを管理していませんので、適宜スペースを入れて分かりやすく書いてください。

セミコロンがあると、そこから次の改行までをコメントとして無視します。

各種の設定には、アルファベットと数字で指定するものと、&か$の記号で始まるものがあります。

&で始まるものは、データの先頭に指定して全体に掛かる設定か、全てのパートに共通する設定です。

$で始まるものは、各パートごとの設定です。

1.音譜の書き方

音符は、音の高さを表すアルファベット1文字と、音符の長さを表す数字で表します。

音の高さを表すアルファベットは、次の通りです。

(1)英語の音名を使用し、大文字のABCDEFGで、それぞれラシドレミファソの音を表します。

(2)点字楽譜の点字パターンと同じアルファベットを使用し、小文字のdefghijで、それぞれドレミファソラシの音を表します。

混乱を避けるため、同じデータ内では、大文字の表現と小文字の表現を混ぜて使用しないようにしてください。

(3)カタカナのドレミファソラシで、固定ドの音名を指定できます。


音符の長さは、次の数字で表します。

 1: 全音符

 2: 2分音符

 4: 4分音符

 8: 8分音符

  ...

 6: 4分音符の3連符

 12: 8分音符の3連符

  ...


(例)

"C4"は、大文字で書いたドの4分音符です。

"g8"は、小文字で書いたファの8分音符です。


ただし、同じ長さの音符が続く場合は、2番目以降の音符の長さを省略できます。

(例)

"C4GEG"は、ドソミゾの4個の4分音符です。


付点音符は音符の後にアポストロフィ"'"を付けて表します。

(例)

"C4'D8"は、ドの付点4分音符とレの8分音符です。


休符は、Rの後に休符の長さを表す数字を付けて表します。

大文字でも小文字でも構いません。

(例)

"R4"は、4分休符です。


フェルマータのように休符以外で休みが入る場合は、Rの代わりにWを使用して休止する間隔を指定します。


2.オクターブの表し方

メモミュージックでは、表記上、9オクターブの範囲の音を指定できます。

ただし、オーディオ録音のサンプリング周波数設定が小さいと、高音域の音がノイズになってしまう場合があります。


(オクターブの絶対指定)

どのオクターブの音を鳴らすかを次の記号で指定できます。

 O0~O8

*O4が中央のオクターブで、数字が小さい方が低い音になります。


(例)

"O4G4O5C"と書くと、第4オクターブのソと第5オクターブのドになります。


(オクターブの相対指定)

1オクターブの範囲の初期値は、音符を大文字で書くか小文字で書くかで、次のように変ります。

(1)A~G大文字表現の場合、ラから次のソ。

(2)d~j小文字表現の場合、ドから次のシ。

(3)ド~シの場合、ドから次のシ。


現在のオクターブから上下のオクターブに移動するには、プラスやマイナスの記号を指定します。

(例)

"A4CE+A"は音が高くなる向きのラドミラで、最後のラが最初のラの1オクターブ上になります。

"+A4-ECA"は音が低くなる向きのラミドラで、最後のラが最初のラの1オクターブ下になります。


(オクターブ開始音の変更)

オクターブの切れ目を変更するには、&+の後にオクターブの最初の音を指定します。


(例)

"&+C C4DEFGAB+C"

 "&+C"によりオクターブ開始音がドに変ります。


(暗黙のオクターブ移動)

例えば次のようにオクターブ開始音の前後で何度も移動する場合、その都度オクターブ記号を書くのは大変です。

 "G8+A-G+A-G+A"

そこで、オクターブ開始音の変更に続けて度数を指定すると、オクターブをまたぐその度数までの移動でオクターブ記号を省略することができます。

この場合、同じオクターブ内の大きな移動には、オクターブ継続符:を指定します。


(例)次の指定は、とちらも、オクターブの始まりをドとし、オクターブをまたぐ3度までの移動で+や-を省略可能にします。

 このため、オクターブ内の6度以上の移動にはオクターブ継続符:を付けます。

"&+C3"

"&+d3"


3.テンポの指定方法

テンポは、Tの後ろに1分間の4分音符の数を数値で指定します。

10から960の範囲で指定できます。

初期値は100です。


(例)T120


4.調号と臨時記号

シャープ、フラット、ナチュラルは以下の記号で表します。

 シャープ #

 フラット %

 ナチュラル *


調号は、次のように表します。

 &#1 ト長調、&#2 ニ長調、&#3 イ長調、&#4 ホ長調、...

 &%1 ヘ長調、&%2 変ロ長調、&%3 変ホ長調、&%4 変イ長調、...

 &# 調号のシャープを1つ増やす。

 &% 調号のフラットを1つ増やす。

 &* 調号のシャープ、またはフラットを1つ減らす。


シャープ、フラット、ナチュラルの臨時記号は音符の前に置きます。

臨時記号は次の空白文字、または改行まで有効です。


5.音の長さ

各パートの音を音符の長さに対してどれだけ伸ばすかを以下のようにパーセント単位で指定できます。

 $r数値

音の長さの初期値は80パーセントです。


各音符の後ろに以下の記号を置いて、それぞれの音の伸ばし方を調節できます。

 コンマ , スタッカート 音の長さを設定値の半分にします。複数個指定可能です。

 テヌート . 音の後ろの空白を設定値の半分にします。複数個指定可能です。

 タイ _ 音を音符の長さ分伸ばして、次の音に続けます。

 ブレス /[数値] 音の後ろの空白を指定した音符の長さ分確保します。数値を省略すると32になります。


6.音の強さ

各パートの音の強さをV1からV10の10段階で指定できます。

初期値はV6です。


<[数値] それ以降の音の強さを指定した段階分大きくします。数値を省略すると1段階大きくなります。

>[数値] それ以降の音の強さを指定した段階分小さくします。数値を省略すると1段階小さくなります。


各音符の前に以下の記号を置いて、それぞれの音の強さを調節できます。

 ! 音の強さを1段階大きくします。複数個指定可能です。

 ? 音の強さを1段階小さくします。複数個指定可能です。


7.トレモロ

トレモロは、^(べき乗記号)の後に音の長さを単音と同じ形式の数値で指定します。

すると、その後ろに書いた音がトレモロで出力されます。

数値を省略すると、32分音符になります。

数値に0を指定すると、トレモロを終了します。


(例)

"^32 C4DEF ^0"

4分音符分のドレミファが、それぞれ8個の32分音符のトレモロで出力されます。


トレモロの範囲内で以下の記号を指定すると、トレモロの最初の音だけに掛かります。

 ! 音の強さを1段階大きくします。複数個指定可能です。

 ? 音の強さを1段階小さくします。複数個指定可能です。


8.和音の表し方

和音は、構成音を(丸括弧)で囲み、その後ろに和音の長さを単音と同じ形式の数値で指定します。

(例)"(CEG)4"

ドミソの和音を4分音符の長さで鳴らします。


和音内には、最大16音まで指定できます。

和音内の音符に長さを指定した場合は、その音のみ指定した長さで出力します。

(例)"(C1)4GEG"

Cの音は全音符分伸ばしますが、和音としての長さは4分音符なので2拍目から後続の音が重なります。


和音の中には、次の記号を書くことができます。

シャープ、フラット、ナチュラルの臨時記号 # % *

オクターブ記号 O0~O8, + - :

音の強さ ! ?


(例)"(!CEG+C)4"

ドミソドの和音を4分音符の長さで鳴らします。

ベースのドだけ、1段階強い音にします。


和音の括弧内の先頭に、次の指定を挿入できます。

 数値 指定した音符の長さ分の時間で、ハープのように和音の構成音を順番にずらして鳴らします。

 /数値 上記を、和音が指定されたタイミングから前にさかのぼって行います。


(例)"(/8CEG+C)2"


9.パートの分割

1つのパートが複数パートに分かれる場合は、次のように指定します。

複数パートの部分を{中括弧}で囲み、その中に各パートを|で区切って書きます。

{中括弧}内の各パートは、それぞれパートが分割される前の設定を引き継ぎます。

また、分割部分の終了後は、{中括弧}内の最初のパートの設定を引き継ぎます。


パートの分割は、5回まで入れ子に指定できます。


(例)"{ C4DEF EDCR | E4FG+A -GFER }"


10.チャンネルと出力のオン/オフ

(チャンネル)

メモミュージックでは、最大15個のチャンネルにメロディーパートを割り当てて、それぞれのパートの設定や状態を記憶しておくことができます。

チャンネル番号は、次のように指定します。


(例)

&mel1 C4DEF EDCR

&mel2 E4FG+A -GFER


曲の同じ部分の楽譜は、チャンネル番号が小さいパートから書くことで、タイミングをそろえて出力できます。


(例)

; 1~4小節

&mel1 ...

&mel2 ...


; 5~8小節

&mel1 ...

&mel2 ...


チャンネルごとに、そのパートの音を出力するかどうかを次のように指定できます。

&mel1off ...

...

&mel1on ...


曲の一部分で全てのパートをオン/オフするには、次のように書きます。

&off

...

&on


*MIDIデータのチャンネル番号を直接指定したい場合には、&ch0~&ch15のような書き方も可能です。

この場合、&ch9は後述のリズムパートになります。

メロディーパートを指定する場合、通常は&mel1~&mel15の書き方をご使用ください。


11.その他の効果指定

(MIDIデータでの音の高さ調節)

MIDIデータでは、楽器によって実際に再生される音の高さが異なります。

そこで、以下のように指定すると、MIDIデータを生成する際の音の高さを指定した数の半音分ずらします。

 &base数値

 数値には-48から48までの値を指定します。

(例)

"&base12": MIDIデータで、このパートの音を1オクターブ高くします。


(パン設定)

左右の音量バランスを設定します。

パート毎に指定可能です。

 &pun数値

 0: 左端

 50: 中央

 100: 右端


MIDIデータにもパン設定(コントロールチェンジ10番)を出力します。

(Windowsメディアプレイヤーでは、この設定は無効です)


(ビブラート)

音の周波数に揺らぎを与えます。

パート毎に指定可能です。

 $v周期:レベル

周期は、音符の長さで指定します。

レベルは、揺らぎの強さを、元の音の1000分の1の単位で指定します。


(例)"$v8:5"

8分音符の周期で、0.5%の揺らぎを与えます。

元の音が"O4 A4" (440hzのラの音)の場合、約2hzの揺らぎが加わります。


(音のゆらぎ)

&mod数値 (0~100)

MIDIデータにモジュレーションデプス(コントロールチェンジ1番)を出力します。

(Windowsメディアプレイヤーでは、この設定は無効です)


(音の減衰)

鳴らした音を時間の経過と共に小さくします。

パート毎に指定可能です。

 $d数値

数値には、音が減衰して消えるまでの時間をミリ秒単位で指定します。


(例)"$d1000"


(エコー)

データ全体にエコーをかけます。

データの先頭で指定します。

 &echoディレイ:フィードバック

ディレイは、初期残響の到達時間をミリ秒単位で指定します。

フィードバックは、残響のレベルをパーセント単位で指定します。


(例)"&echo50:30"

50ミリ秒遅れで、30%の残響音を合成します。


(MIDI拍子指定)

MIDI出力時に使用する拍子を指定します。

(例)

"&3/4" 4分の3拍子


(MIDIプログラム番号)

MIDI出力時に使用する楽器を選択します。

パートごとに指定可能です。

 &p数値

 &p"<楽器名>"

数値と楽器の対応については、以下の項を参照してください。

 @a(href="GMMap.html"):〈ジェネラルMIDIで指定されている楽器番号〉

楽器名は、GM規格で指定された日本語/英語の楽器名を使用します。

楽器名の部分指定も可能です。

この場合、番号が若いものから検索し、最初に一致した楽器番号を使用します。


(音色)

メモミュージックのオーディオ出力時の各パートの音色を選択します(暫定機能)。

パートごとに指定可能です。

 $t数値

数値には、次の値が指定できます。

0: Sin波です。

1, 2, 5, 6: Sin波の加算合成音です。

10: 三角波です。

11: 三角波の加算合成音です。


12.リズムパートの書き方

MIDIデータには、メロディーパートの他に、リズムパートを含めることができます。

また、リズムパートで使用する打楽器の種類を番号で指定できるようになっています。


メモミュージックでも、MIDIデータへの出力のためにリズムパートを書くことができます。

リズムパートを開始するには、先頭に次のように指定します。

&rhy1


リズムパートでは、音符のアルファベット(A~G、またはd~j)の代りに、打楽器の種類を表すアルファベットA~Nを指定します。

初期設定で、次の楽器が割り当てられています。

 A: バスドラム1 (36番)

 B: スネアドラム1 (38番)

 C: ロートム1 (43番)

 D: ミドルトム1 (47番)

 E: ハイトム1 (50番)

 F: サイドスティック (37番)

 G: ライドシンバル1 (51番)

 H: クラッシュシンバル1 (49番)

 I: クローズハイハット (42番)

 J: ペダルハイハット (44番)

 K: オープンハイハット (46番)


(リズムパートの指定例)

&rhy1 A8IBIAIBI AIBIAIBI

&rhy1 { A8IBIAIBI AIBIAIBI | E8'D'CE'D'C E'D'CE'D'(CH) }

&rhy1 G8G12G24G8G12G24 G8G12G24G8G12G24


AからNのアルファベットに別の打楽器を割り当てるには、リズムパート内で次のように指定します。

(例)"&N39"

アルファベットNに、39番(ハンドクラップ)を割り当てます。

数値と打楽器の対応については、以下の項を参照してください。

 @a(href="DrumMap.html"):〈ジェネラルMIDIで指定されている打楽器番号〉


&A"<打楽器名>"

打楽器名は、GM規格で指定された日本語/英語の打楽器名を使用します。

打楽器名の部分指定も可能です。

この場合、番号が若いものから検索し、最初に一致した打楽器番号を使用します。