mmlp
名前:
mmlp - Music Macro Language Player
形式:
mmlp [options] filename [output-filename]
mmlp -sr [options] hostname:mml-file ...
オプション:
-Hz <base-Hz>
O4A の周波数を指定します.デフォルトでは 440 です.
-vol <volume>
ボリュームを指定します.1.0 が通常の大きさです.1.0 より
小さな値を指定すると,小さく音がでます.逆に 1.0 より大きく
すると大きく音がでます.
-s
演奏中に何も表示しないようにします.
-check 構文のチェックのみを行ないます.
-v
現在のバージョンを表示します.
-h
簡単な使い方の説明を表示します.
-sr
複数のホストによりサラウンドをならします.
-port <port>
TCP ポートの変更.<port> は 9678 からの相対番地です.
-ms
複数のホスト演奏する場合において,モノラルをステレオの
ような感じにして演奏します.
-mspart <1 or 2>
モノラルをステレオのような感じにするための補助オプションです.
ユーザは使用する必要ありあせん.
-surround-child <parent-host>
ユーザはこのオプションを使用してはなりません.これは
複数のホスト演奏する場合においての補助オプションです.
mmlp から生成される リモート mmlp プログラム用に
使用されます.
機能説明:
mmlp は mml player です.指定されたファイルから MML を
読み込んで,演奏します.
MML の各チャンネルは 「,」で区切って指定します.チャンネル数の制限は
ありません.
- というファイル名は端末を意味します.すなわち
% mmlp -
とすると標準入力から MML を入力します.同様に,
% mmlp file.mml -
とすると,音声データを標準出力に出力します.
mmlp は複数のホストによる同時演奏をサポートしてます.
コマンド説明:
音程
C, D, E, F, G, A, B はそれぞれ ドレミファソラシを表します.また,
C4 のように音程のすぐ後に数字で音の長さを指定します.音の長さが
省略された場合は L コマンドの値が使用されます.デフォルトの
長さは 4 です.
C D E F G A B
ド レ ミ ファ ソ ラ シ
1 2 4 8 16 32 64
全音符 2分音符 4分音符 8分音符 16分音符 32分音符 64分音符
タイ(&)
前後の音をつなぎます.
以下の場合は前の音を Q8 コマンドで指定した場合と同じです.
・前後の音程が異なる場合
・後に音程以外のコマンドが続いた場合
・行が変わった場合
シャープ(+, #)
音を半音上げます.B+ は,同じオクターブ上の C 音で定義されます.
# は + と全く同じです.
フラット(-)
音を半音下げます.C- は,同じオクターブ上の B 音で定義されます.
ナチュラル(/)
音を元の音程で鳴らします.
調号のデフォルト変更(~)
(~音符記号(#,+,-,/))音符記号=アルファベットのA〜G
このコマンド以後、指定した音符記号で調合の付いていないもの全てに
ついて自動的に指定した調合が付加されます。
/ はナチュラルで,元に戻します.
符点(.)
音の長さを 1.5 倍にします(符点音符).例えば,符点4分音符は
C4. とします.
音量(V, @V)
V0 〜 V15 まで音量を調節します.V0 は無音で,V15 は最大音量です.
デフォルトは V8 です.また,@V0 〜 @V127 を使用することによりより
細かく音量調節ができます.V15 と @V127 は同じ音量です.
V15(又は@V127)を超える音量を指定した場合は音が割れる可能性があります.
音量の相対設定(@<n,@>n)
音量を相対的に設定します.n が省略された場合は 1 です.
音の長さ(L)
音の長さを指定します.音程の長さを省略した場合の長さに使用されます.
音の長さの割合(Q)
音の長さの割合 を Q1 〜 Q8 を用いて指定します.割合は以下の通りです.
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
1/8 2/8 3/8 4/8 5/8 6/8 7/8 8/8
デフォルトは Q8 です.
オクターブ(O)
O1 〜 O8 を用いてオクターブを指定します.デフォルトは O4 です.
オクターブの上げ下げ(<, >)
> はオクターブを 1 つ上げます.< はオクターブを 1 つ下げます.
休符(R)
休符を指定します.長さの指定の仕方は音程と同じです.
テンポ(T)
テンポを指定します.デフォルトは T120 です.
Nコマンド(N)
N36 とすると定義されている音の一番下から 36 番目の音を発生します.
音程との対応を以下の表に示します.
O1 O2 O3 O4 O5 O6 O7 O8
C 0 12 24 36 48 60 72 84
C+(D-) 1 13 25 37 49 61 73 85
D 2 14 26 38 50 62 74 86
D+(E-) 3 15 27 39 51 63 75 87
E 4 16 28 40 52 64 76 88
F 5 17 29 41 53 65 77 89
F+(G-) 6 18 30 42 54 66 78 90
G 7 19 31 43 55 67 79 91
G+(A-) 8 20 32 44 56 68 80 92
A 9 21 33 45 57 69 81 93
A+(B-) 10 22 34 46 58 70 82 94
B 11 23 35 47 59 71 83 95
音色(y)
y0 〜 y5 を用いて音色を設定します.デフォルトは y0 です.この音色は
実際の MML で定義されたものとは異ります.y4 はノイズ音です.y5 は
金属を叩いた様な太鼓の音で,この音色は,音程やエンベロープを設定する
ことはできません.
繰り返し(|:, :|)
|: と :| で囲まれた領域を繰り返します.|: のすぐ後に数字を書けば
その回数だけ繰り返します.
例:
|:CEG:| CEG を 2回繰り返します.
|:5CEG:| CEG を 5回繰り返します.
|: の個数より :| の個数が多いとエラーとなります.
連符({,})
{音程}x は { と } で囲まれた領域を x 分の長さで等分割して
演奏します.
例:
{CEG}4 4 分の長さを3 等分して CEG を演奏します.
注意:
{ }内で使用可能なコマンドは,音程命令の他に
+, #, -, O, <, >, N, |:, :|
です.それ例外のコマンドを指定した場合は,正しく MML を
解釈できません.どの様な動作をするかは未定です.
エンベロープ周期(M)
エンベロープ周期を設定します.デフォルトは M256 です.M で指定する
数値 x は,エンベロープ周期を t(秒) とした場合,以下の式で計算でき
ます.
x = fclock * t / 256, (fclock = 1996800Hz)
エンベロープパターン(S)
エンベロープパターンを設定します.デフォルトは S13 です.
「?? S1 だったかな?」
エンベロープパターンは以下の形が定義できます.
「以下の形が正しいかどうかわかりません?間違ってるかもしれないので
詳しい方教えて!!」
S0, S1, S2, S3, S9:
\
\
\_________________
S4, S5, S6, S7, S15:
/|
/ |
/ |________________
S8:
\ |\ |\ |\ |\
\ | \ | \ | \ | \
\| \| \| \| \
S10:
\ /\ /\ /
\ / \ / \ /
\/ \/ \/
S11:
________________
\ |
\ |
\|
S12:
/| /| /| /| /|
/ | / | / | / | / |
/ |/ |/ |/ |/ |
S13:
__________________
/
/
/
S14:
/\ /\ /\ /\
/ \ / \ / \ / \
/ \/ \/ \/ \
拡張コマンド(\)
行頭のみ有効です(行末の '\' は継続行を意味します).
\PLAY 0 演奏をしないで,チェックのみします.
\PLAY 1 チェックのみのフラグを無効にし,演奏を開始します.
\TRACE 0 トレースモードを無効にします.
\TRACE 1 トレースモードを有効にします.
\HZ base ベース(O3A)の周波数を base にします.
\END 終了.以下の行はすべてコメントとみなされます.
複数ホストによる演奏:
sample.mml を2つのホスト(例えば rose01 と rose02)で同時に演奏したい
場合は以下のようにして起動します.
% mmlp -sr rose01:sample.mml rose02:sample.mml
サウンドの様な感じを出すには -ms オプションをつけて
% mmlp -sr -ms rose01:sample.mml rose02:sample.mml
とします.
s1.mml と s2.mml の 2 種類のパートを同時演奏するには,同様に,
% mmlp -sr rose01:s1.mml rose02:s2.mml
とします.
同時演奏は最大 16 までです.
尚,マシンの性能により,同時に演奏が始まらない場合があります.
そのような場合は,コードの最初に R(休符)をいれて下さい.
その他:
mmlp は大文字と小文字は区別されません.
% から改行まではコメントとして扱われ,入力がスキップされます.
改行の直前に \ があると,次の行とつながっているものと解釈されます.
数字の途中を除いて,どこにでもスペース(またはタブ)を挿入することが
できます.
和音を多く重ねると音が割れます.この場合,各パートの音量を下げて
演奏して下さい.
1行にあまり多くのコードを記述すると,メモリが足らなくなる恐れが
あります.
他人の迷惑のならないように,周りに気を使いながら演奏しましょう.
サンプル:
以下にサンプルを示します.以下のコードを sample.mml というファイルに
保存した後,mmlp sample.mml で演奏できます.
S0M10000,S0M10000L8O3
GEE2FDD2,CGEGCGEGDGFGDGFG
CDEFGGG2,CGEGCGEGCGEGCGEG
GEEEFDD2,CGEGCGEGDGFGDGFG
CEGGEEE2,CGEGCGEGCGEGCGEG
DDDDDEF2,DGFGDGFGDGFGDGFG
EEEEEFG2,CGEGCGEGCGEGCGEG
GEEEFDD2,CGEGCGEGDGFGDGFG
CEGGEEE2,CGEGCGEGCGEGCGEG
本ソフトウェアは全く無保証のフリーソフトウェアで,使用,再配付は自由です.
質問,意見,バグレポートなどがございましたら
出雲正尚 Masanao Izumo masana-i@is.aist-nara.ac.jp
宛にお願いします.
戻る