-
Notifications
You must be signed in to change notification settings - Fork 3
MUCOM88 バグ・制限・補足情報
MUCOM™ edited this page Feb 5, 2024
·
135 revisions
本ページは以下のソフトウェアの情報についてまとめた物です。
- MUSICLALF Ver.1.0~1.2(MUCOM88 Ver.1.5~1.7)
- MUCOM88em Ver.1.00/1.01
-
初期化されないMMLコマンドの情報については「MUCOM88 各MMLコマンドの初期値情報」のページを参照下さい。
-
本項目内、「△」はスペース(空白文字)を明示的に表現する為に一部使用しております。
- ■「%」:音長をクロック値で指定する場合の制限
- ■「^」:タイの制限
- ■「.」:付点の制限
- ■ 休符の長さの制限
- ■ 音符の音長の制限
- ■「&」:タイ/スラーの制限
- ■「y」:レジストリ直接書き込みコマンドの制限
- ■「p」:パンコマンドの制限
- ■「@n1=」:SSGのプリセット音色設定コマンドの制限
- ■ マクロ定義の補足
- ■ FM音色定義の制限・補足
- ■「R」:リバーブコマンドの補足
- ■「v」:ボリュームコマンドの制限
- ■「T」:テンポコマンドの制限
- ■「t」:テンポコマンド(タイマーB指定)の制限
- ■「{...}」:ポルタメントコマンドの制限
- ■「¥」:エコーマクロの補足
- ■ 数値に関する補足
- ■「S」:スロットディチューンコマンドの制限
- ■「MT」:トレモロ・ワウワウコマンドの制限
- ■「ML」:ソフトウェアLFOの振幅指定コマンドの補足
注)デフォルト音長をクロック値で指定する「%」コマンドの事ではありません。
項目 | 内容 |
---|---|
制限 | 休符に使用できない。(MUSICLALF Ver.1.0のみ) |
違反時 | デフォルト音長指定の方の「%」コマンドとして認識されてしまう。 (コンパイラの仕様) |
例 | 「c%12」… OK 「r%12」…「r△%12」と記述したものと同義になる |
項目 | 内容 |
---|---|
制限 | 休符に使用してはいけない。 |
違反時 | 不正データになる。 (コンパイラのバグ) |
例 | 「c4^16」… OK 「r4^16」… NG |
項目 | 内容 |
---|---|
制限 | 休符には1つまでしか使用してはいけない。複付点不可。 (コンパイラの仕様) |
違反時 | 文法エラーになる。 |
例 | 「c4..」… OK 「r4..」… NG 「l4..」… OK |
項目 | 内容 |
---|---|
制限 | ひとつの休符の長さがクロック値で1~255の範囲を超えてはいけない。 |
違反時 | 不正データになる。 (コンパイラのバグ) |
例 | 「C192 r1.」… NG (288クロックで制限オーバー) 「C128 r1.」… OK (192クロックで制限内) 「r0」… NG (0クロックで制限オーバー) 「r%256」… NG (256クロックで制限オーバー) |
項目 | 内容 |
---|---|
制限 | 休符を複数連続で並べた時にNGのケースがある。 連続する休符の先頭からひとつ前の休符までの長さの合計クロックが111で割り切れる場合、対象の休符の長さが145クロック以上の場合にNG。 割り切れない場合、「連続する休符の先頭からひとつ前の休符までの長さの合計クロック÷111の余り+対象の休符の長さ」が256クロック以上の場合にNG。 (コンパイラのバグ) |
違反時 | 不正データになる。 |
例 | 「r%111r%145」… NG 「r%112r%144」… OK 「r%112r%255」… NG 「r%110r%112r%145」… NG 「C192 r1r1」… NG 「C128 r1r1」… OK |
項目 | 内容 |
---|---|
制限 | ひとつの音符の音長がクロック値で1~255の範囲を超えてはいけない。 |
違反時 | 文法エラー、もしくは不正データになる。 (コンパイラのバグ) |
例 | 「C192 c1.」… NG (288クロックで制限オーバー(文法エラーになる)) 「C128 c1.」… OK (192クロックで範囲内) 「c0」… NG (0クロックで制限オーバー(不正データになる)) 「c%256」… NG (256クロックで制限オーバー(不正データになる)) |
項目 | 内容 |
---|---|
制限 | 単独のひとつの音符の音長が255クロックなのはNG。 |
違反時 | 不正データになる。 (コンパイラのバグ) |
例 | 「c%255」… NG 「c%254^%1」… OK 「c%255^%1」… OK |
項目 | 内容 |
---|---|
制限 | 複数の音符をタイ(「&」or「^」)で繋いだ場合にNGのケースがある。 先頭を除く音符の中に音長が128クロック以上のものがあり、先頭からその音符までの音長の合計クロックが127×n+1 (nは2以上の整数)、且つ全て音符の音長の合計クロックが 127×n+1 (nは2以上の整数) の場合にNG。 もしくは先頭の音符が255クロックで、且つ全て音符の音長の合計クロックが127×n+1 (nは2以上の整数) の場合にNG。 |
違反時 | 不正データになる。 (コンパイラのバグ) |
例 | 「c%1&c%254」… NG 「c%1&d%254」… OK (スラーの場合は問題なし) 「c%127^%128」… NG 「c%128^%127」… OK 「c%254^%128」… NG 「c%255^%127」… NG 「c%127^%128^%127」… NG 「c%128^%127^%127」… OK |
項目 | 内容 |
---|---|
制限 | 休符に使用してはいけない。 |
違反時 | 不正データになる。 (コンパイラのバグ) |
例 | 「r4&r4」… NG |
項目 | 内容 |
---|---|
制限 | タイの場合、「&」の直前は音符でないといけない。 (スラーの場合は問題なし) |
違反時 | 不正データになる。 (コンパイラのバグ) |
例 | 「c4&)c4」… OK 「c4)&c4」… NG 「c4)&d4」… OK (スラーの場合は問題なし) 「c4&[c4]2」… OK 「c4[&c4]2」… NG |
項目 | 内容 |
---|---|
制限 | SSGパートに記述してはいけない。 |
違反時 | 不正データになる。 (コンパイラの仕様) |
項目 | 内容 |
---|---|
制限 | アドレスの指定可能範囲は0~178で179以上は指定してはいけない。 |
違反時 | 文法エラーになる。 (コンパイラの仕様) ★MUCOM88em Ver.1.01でFix。 |
項目 | 内容 |
---|---|
制限 | SSGパートに記述してはいけない。 |
違反時 | 不正データになる。 (コンパイラの仕様) |
項目 | 内容 |
---|---|
制限 | オミットされたコマンドのため使用してはいけない。 |
違反時 | 不正データになる。 (コンパイラの仕様) |
項目 | 内容 |
---|---|
補足 | #と*の間の空白は無くてもよい。 |
例 | 「#△*1{cde}」… OK 「#*1{cde}」… OK |
項目 | 内容 |
---|---|
制限 | キャリアのTLの値は無視され、常に「0」とみなされる。 (ドライバの仕様) |
例 | ; FB AL ; AR DR SR RR SL TL KS ML DT @90 5, 4 31, 0, 0, 0, 0,22, 0, 2, 7 18,10, 0, 6, 1,16, 0, 8, 7 31, 0, 0, 0, 0,23, 0, 4, 3 18,10, 0, 6, 1,16, 0, 4, 3 … 下記の内容(キャリアのTLが0)と同等の音色になる ; FB AL ; AR DR SR RR SL TL KS ML DT @90 5, 4 31, 0, 0, 0, 0,22, 0, 2, 7 18,10, 0, 6, 1, 0, 0, 8, 7 31, 0, 0, 0, 0,23, 0, 4, 3 18,10, 0, 6, 1, 0, 0, 4, 3 |
項目 | 内容 |
---|---|
制限 | 音色設定の途中にコメント行を挟んではいけない。 |
違反時 | 意図しない音色になる。 (コンパイラの仕様) |
例 | @90 ;FB AL 5, 4 ; AR DR SR RR SL TL KS ML DT 31, 0, 0, 0, 0,22, 0, 2, 7 18,10, 0, 6, 1,16, 0, 8, 7 31, 0, 0, 0, 0,23, 0, 4, 3 18,10, 0, 6, 1,16, 0, 4, 3 … NG @90 5, 4; FB,AL 31, 0, 0, 0, 0,22, 0, 2, 7 ; op1 18,10, 0, 6, 1,16, 0, 8, 7 ; op2 31, 0, 0, 0, 0,23, 0, 4, 3 ; op3 18,10, 0, 6, 1,16, 0, 4, 3 ; op4 … OK |
項目 | 内容 |
---|---|
補足 | 文字の区切りはカンマやスペースに限らず数字以外なら何でもいい。 各行の所定数のパラメータ以降は何を記載しても無視される。 |
例 | @70 7, 0 31,18, 0, 6, 2,36, 0,10, 3 31,14, 4, 6, 2,45, 0, 0, 3 31,10, 4, 6, 2,18, 1, 0, 3 31,10, 3, 6, 2, 0, 1, 0, 3 … OK @70 7 0 31 18 0 6 2 36 0 10 3 31 14 4 6 2 45 0 0 3 31 10 4 6 2 18 1 0 3 31 10 3 6 2 0 1 0 3 … OK xx@70 xx7xx0 xx31x18xx0xx6xx2x36xx0x10xx3xx xx31x14xx4xx6xx2x45xx0xx0xx3xx xx31x10xx4xx6xx2x18xx1xx0xx3xx xx31x10xx3xx6xx2xx0xx1xx0xx3xx … OK |
項目 | 内容 |
---|---|
制限 | FM音色を定義するとプリセット音色の@0と@1が破壊される可能性がある。 そのためプリセット音色の@0と@1は使用すべきではない(@0や@1に音色定義をして使用する事自体は問題なし)。 (MUCOM88emでは改善済) (コンパイラの仕様) |
項目 | 内容 |
---|---|
補足 | 予めvコマンドで音量が設定されている事が前提。 yコマンドやyTLコマンドで操作した音量は反映されないので注意。 (ドライバの仕様) |
項目 | 内容 |
---|---|
制限 | FMパートでの指定可能範囲は-4~15だが、その範囲を超えても特にエラーにはならない。 |
違反時 | v-4と等価になる。 (ドライバの仕様) |
項目 | 内容 |
---|---|
制限 | ADPCMパートでの指定可能範囲は-4~251だが、vm0(デフォルト)の時は246~251の範囲は使用できない。 |
違反時 | v-4(音量0)と等価になる。 (コンパイラのバグ) |
例 | 「vm0 v245」… OK 「vm0 v246」… NG 「vm1 v246」… OK 「vm1 v251」… OK 「vm1 v252」… NG |
※ボリュームコマンドの指定可能範囲の詳細については「MUCOM88 音量テーブル一覧」を参照下さい。
項目 | 内容 |
---|---|
制限 | SSGパートで使用した場合、指定した位置に関係なく曲の先頭からのテンポに反映される。 複数指定した場合は最後に指定したテンポのみ反映される。 (ドライバの仕様) |
項目 | 内容 |
---|---|
制限 | SSGパートで使用した場合、指定した位置に関係なく曲の先頭からのテンポに反映される。 複数指定した場合は最後に指定したテンポのみ反映される。 (ドライバの仕様) |
項目 | 内容 |
---|---|
制限 | タイマーB自体は0~255の値が指定可能だが、253~255の範囲は指定してはいけない。 |
違反時 | ドライバがハングアップする。 (ドライバの仕様?) |
例 | 「t252」… OK 「t253」… NG |
項目 | 内容 |
---|---|
制限 | 開始音程と終了音程の間にはオクターブ相対指定「<」「>」が記述可能だが、ひとつまでしか記述してはいけない。 |
違反時 | 文法エラーになる。 (コンパイラの仕様) |
例 | 「{c4>c}」… OK 「{c4>>c}」… NG |
項目 | 内容 |
---|---|
制限 | FMパートの場合、終了音程が開始音程よりひとつ上のオクターブのa以上の場合は音程がおかしくなる事がある。 |
違反時 | 異常な発音をする。 (ドライバの仕様) |
例 | 「C128 b2>g+」… OK 「C128 b2>a」… NG |
項目 | 内容 |
---|---|
制限 | 音長が128クロックを超えてはいけない。 |
違反時 | 128クロックを超えた部分から音程が逆方向に変化する。 (ドライバの仕様) |
例 | 「{c%128a}」… OK 「{c%129a}」… NG (129クロック目から音程が下がる) |
項目 | 内容 |
---|---|
補足 | 予めvコマンドで音量が設定されている事が前提。 yコマンドやyTLコマンドで操作した音量は反映されないので注意。 (コンパイラの仕様) |
項目 | 内容 |
---|---|
補足 | あらゆる数値は頭に「$」を付ける事によって16進数で記述可能。但しマイナスの値は記述できない。 値の直後に音符(a~f)が来る場合は空白を空けないと16進数の一部として解釈されてしまうので注意。 (コンパイラの仕様) |
項目 | 内容 |
---|---|
補足 | 各種コマンドのパラメータとなる数値の多くは範囲チェックがされておらず、指定可能範囲を越えても文法エラーとならない事が多い。その場合、オーバーフローした値がそのまま適用される。 (コンパイラの仕様) |
例 | 「t256」… 「t0」と同じ意味になる。 「MD-1」…「MD255」と同じ意味になる。 「[…]0」… 「[…]256」と同じ意味になる。 |
項目 | 内容 |
---|---|
補足 | あらゆる数値の前には空白を入れる事が可能。 (コンパイラの仕様) |
例 | 「c△4」… 「c4」と同じ意味になる。 「c△$10」…「c$10」と同じ意味になる。 「c%△24」… 「c%24」と同じ意味になる。 「M△1,△2,△-3,△4」…「M1,2,-3,4」と同じ意味になる。 |
項目 | 内容 |
---|---|
制限 | 第1パラメータが0以外の場合、その状態で音長が128クロック以上の音符を記述してはいけない。 |
違反時 | 他のFMパートにも第1パラメータ相当のディチューンが掛かる。 (ドライバのバグ) |
例 | 「S100,0,0,0 c%127」… OK 「S100,0,0,0 c%128」… NG 「S0,100,0,0 c%128」… OK |
項目 | 内容 |
---|---|
制限 | オミットされたコマンドのため使用してはいけない。 |
違反時 | 不正データになる。 (コンパイラの仕様) |
項目 | 内容 |
---|---|
補足 | SSGパートでは値の正負が逆になっている。 (コンパイラのバグ) |
MUCOM88 Copyright 1987-2019(C) Yuzo Koshiro / MUCOM88em maintained by MUCOM™