Gnildaのページ



新・熱血硬派くにおたちの挽歌 : 制御コード

  1. トップ
  2. SPC
  3. 新・熱血硬派くにおたちの挽歌
  4. 制御コード
制御コード
00-BF
既定のステップタイム・既定のゲートタイム・既定のベロシティ・キー設定 など (トラック)
01-7E
ステップタイム設定 (チャネル)
C0 xx_yy
波形選択 など
C1 xx
パン設定
C2 xx
音量設定 (音楽)
C3 xx
演奏速度
C4 xx
キートランスポーズ値設定
C5 xx
音量設定
C6 xx
優先度設定
C7 xx
ピッチ微調整値設定
C8
エコーオン
C9
エコーオフ
CA ww xx yy zz
エコーディレイ・エコーボリューム・エコーフィードバック設定 FIR フィルタ係数テーブル選択
CB xx_yy
相対ジャンプ
CC xx_yy
相対ジャンプ (復帰アドレス退避)
CD
復帰
CE xx
ループ開始位置
CF
繰り返し・ループ終了
D0
演奏・チャネルコマンド処理終了
D1 xx
基準のノート番号設定
D2
オクターブ + 1
D3
オクターブ - 1
D4
ステップタイム設定 (休符)
D5 xx
内部フラグリセットとセット
D6 xx
ピッチベンドレンジ設定
D7 xx
キートランスポーズ値設定2
D8 xx
キートランスポーズ値相対設定
D9 xx
キートランスポーズ値・ピッチ微調整値相対設定
DA
キーオン
DB
キーオフ
DC xx
音量相対設定
DD xx
ピッチベンド値設定
DE xx_yy
波形選択
DF xx
キーオフ2
E0 xx
ノイズクロック設定
E1 xx
ノイズクロック相対設定
E2 xx
キートランスポーズ値・ピッチ微調整値設定
E3 xx
音量設定2
E4 xx
パン設定2
E5 xx
ステップタイム設定2

制御コード

00-BF既定のステップタイム・既定のゲートタイム・既定のベロシティ・ノート番号設定 などトラック

x1 x2 x3 x4
x1 : 既定のステップタイム (ティック数) (0x00 〜 0x7E, 省略可)
x2 : 既定のゲートタイム (ティック数) (0x00 〜 0x7F, 省略可)
x3 : 既定のベロシティ (0x00 〜 0x7F, 省略可)
x4 : キー (0x80 〜 0x9F)
x1 x4 x5
x1 : 既定のステップタイム (ティック数) (0x00 〜 0x7E, 省略可)
x4 : キー (0xA0 〜 0xBF)
x5 : 既定のゲートタイム または 既定のベロシティ | 0x80 (0x00 〜 0xFF)
x1 x2 x3 xx
x1 : 既定のステップタイム (ティック数) (0x00 〜 0x7E, 省略可)
x2 : 既定のゲートタイム (ティック数) (0x00 〜 0x7F, 省略可)
x3 : 既定のベロシティ (0x00 〜 0x7F, 省略可)
xx : コマンド (0xC0 〜 0xE5)

x1 で次のコマンドを実行するまでの待ち時間とその規定値 (ティック数) を設定します。値が 0x00 の場合は、既定の値として設定されません。省略された場合は、待ち時間は既定値が設定されます。

x2 でキーオフまでの待ち時間とその規定値 (ティック数) を設定します。省略された場合は、待ち時間は既定値が設定されます。0x00 を設定することでキーオフしなくなります (タイ)。

x3 でキーオオン時の音量の倍率とその規定値 (ティック数) を設定します。省略された場合は、音量の倍率は既定値が設定されます。

x4 の下位 5 ビットの値に基準のノート番号の値を加算した値がノート番号として設定されます (ドラムセットではない場合)。

x4 の下位 5 ビットの値で波形の種類を設定します (ドラムセットの場合)。

01-7Eステップタイム設定チャネル

xx 
xx : ステップタイム (ティック数) (0x01 〜 0x7E)

xx で次のコマンドを実行するまでの待ち時間 (ティック数) を設定します。

C0波形選択などトラック

C0 xx yy
yyxx 設定用データの先頭アドレス (相対指定)

ドラムセットであるかどうか、チャネル制御用のコード、DSP に設定する波形などの "データを設定するデータ" の先頭アドレスを設定します。

yyxx は 設定用データの先頭アドレスから次のコマンドのアドレスを減じた値を設定します。

 L_波形データ:
	00			;ドラムセットではない
	DE xx yy	;DSP の 波形 や ADSR などのデータ (yyxx = L_チャネルデータ - L_波形データ_0)
 L_波形データ_0:
	...

 L_チャネルデータ:
	?? ?? ?? ??	;DSP データ : SRCN, ADSR(1), ADSR(2), Gain
	?? ?? ??	;内部データ : C4+, C7+, ゲートタイム+

 L_トラックデータ:
	...
	C0 xx yy	;波形選択など (yyxx = L_波形データ - L_トラックデータ_0)
 L_トラックデータ_0:
	...
 L_波形データ:
	01			;ドラムセット
	xx yy		;相対アドレス (yyxx = L_波形データ80 - L_波形データ_o81)
 L_波形データ_o81:
	xx yy		;相対アドレス (yyxx = L_波形データ81 - L_波形データ_)
 L_波形データ_:
	...

 L_波形データ80:
	DE xx yy	;DSP の 波形 や ADSR などのデータ (yyxx = L_チャネルデータ80 - L_波形データ80_0)
 L_波形データ80_0:
	...
 L_波形データ81:
	DE xx yy	;DSP の 波形 や ADSR などのデータ (yyxx = L_チャネルデータ81 - L_波形データ81_0)
 L_波形データ81_0:
	...

 L_チャネルデータ80:
	?? ?? ?? ??	;DSP データ : SRCN, ADSR(1), ADSR(2), Gain
	?? ?? ??	;内部データ : C4+, C7+, ゲートタイム+
 L_チャネルデータ81:
	?? ?? ?? ??	;DSP データ : SRCN, ADSR(1), ADSR(2), Gain
	?? ?? ??	;内部データ : C4+, C7+, ゲートタイム+

 L_トラックデータ:
	...
	C0 xx yy	;波形選択など (yyxx = L_波形データ - L_トラックデータ_0)
 L_トラックデータ_0:
	...

C1パン設定トラック・チャネル

C1 xx 
xx : パン (0x00 〜 0x20)

パンの値が xx に設定されます。

0x00 (左) - 0x10 (中央・モノラル) - 0x20 (右)

C2音量設定 (音楽)全体 (音楽)

C2 xx
xx : 音量 (0x00 〜 0xFF)

音楽の音量計算に使用される倍率の値の一つが xx に設定されます。

C3演奏速度設定全体

C3 xx
xx : 演奏速度 (0x00 〜 0xFF)

演奏速度の値が xxに 設定されます。

C4キートランスポーズ値設定トラック

C4 xx
xx : トランスポーズ値 (0x80 〜 0x7F)

キーオン時のピッチ計算に使用される音程の値を xx (Semitone) 変化させます。

xx = 0 で解除されます。

C5音量設定トラック・チャネル

C5 xx
xx : 音量 (0x00 〜 0xFF)

音量の値が xx に設定されます。

DSP Voice の Volume (L, R) の値が再計算されます。

C6優先度設定トラック・チャネル

C6 xx
xx : 優先度 (0x02 〜 0xFF)

キーオン時に空きチャネルがない場合の優先度の値が xx に設定されます。値が大きいほど優先度が高くなります。

空きチャネルがない場合の処理
トラックの優先度よりも低いチャネル詳細
存在する優先度が最低かつ最小番号のチャネルがキーオフされ、そのチャネルでキーオンされる
存在しないトラックのキーオンコマンドは無視される

C7ピッチ微調整値設定トラック

C7 xx
xx : ピッチ微調整値 (0x00 〜 0xFF)

キーオン時のピッチ計算に使用される音程の値を xx/256 (Semitone) 変化させます。

xx = 0 で解除されます。

C8エコーオントラック

C8

エコーがかかるようになります。

C9エコーオフトラック

C9

エコーがかからなくなります。

CAエコーディレイ・エコーボリューム・エコーフィードバック設定 FIR フィルタ係数テーブル選択全体

CA ww xx yy zz
ww : エコーディレイ (0x00 〜 0x04)
xx : エコーボリュームの倍率 (0x80 〜 0x7F)
yy : エコーフィードバック (0x80 〜 0x7F)
zz : FIR フィルタ係数テーブル選択 (0x00 〜 0x02)

ww で DSP に設定するエコーディレイの値を設定します。

xx で DSP に設定するエコーボリュームの倍率を設定します。

yy で DSP に設定するエコーフィードバックの値を設定します。

zz で DSP に設定する FIR フィルタ係数のテーブルを選択します。

エコーボリューム (V = DSP の Master Volume)
xx詳細
0x00 - 0x7FV × xx >> 8 << 1
0x80 - 0xFF~(V × (~xx + 1) >> 8 << 1) + 1
FIR フィルタ係数 (16 進数)
zzエコーフィルタ
C0C1C2C3C4C5C6C7
007F00000000000000
0158BFDBF0FE070C0C
020C212B2B13FEF3F9

CB相対ジャンプトラック・チャネル

CB xx yy
yyxx : ジャンプ先 (相対指定)

次のコマンドのアドレスに yyxx を加算した結果の下位 16 ビットのアドレスへジャンプします。

CC相対ジャンプ (復帰アドレス退避)トラック・チャネル

CC xx yy
yyxx : ジャンプ先 (相対指定)

次のコマンドのアドレスを退避し、その値に yyxx を加算した結果の下位 16 ビットのアドレスへジャンプします。

このコマンドで退避領域を 2 バイト使用します。

復帰・ループ終了せずにこのコマンドと CE コマンドを使用し続けると、他のデータを破壊する可能性があります。

コマンド実行直後の退避領域
オフセットサイズ詳細
-22退避したアドレス
0-次に退避するデータの先頭

CD復帰トラック・チャネル

CD

退避領域の最後の 2 バイトの領域を解放し、その領域に退避されていた 16 ビットの値のアドレスに復帰します。

コマンド実行直後の退避領域
オフセットサイズ詳細
02退避していたアドレス

CEループ開始位置トラック・チャネル

CE xx
xx : カウントダウンカウンタの初期値 (0x00 〜 0xFF)

このコマンドと CF コマンドでループ処理を行うことができます。

xx でループ回数を設定します。

このコマンドで退避領域を 3 バイト使用します。

復帰・ループ終了せずにこのコマンドと CC コマンドを使用し続けると、他のデータを破壊する可能性があります。

カウントダウンカウンタ
xxループ回数
0x00256
0x01 - 0xFFxx
コマンド実行直後の退避領域
オフセットサイズ詳細
-32退避したアドレス
-11退避したカウントダウンカウンタの値
0-次に退避するデータの先頭

CF繰り返し・ループ終了チャネル

CF

退避領域の最後の 1 バイトの領域の値を 1 減じます。

結果が 0 以外の場合、結果を退避領域の最後の 1 バイトの領域に退避し、退避領域の最後の 3 バイトの領域のうちの 2 バイト (16 ビット) の値のアドレスに復帰します。

結果が 0 の場合、退避領域の最後の 3 バイトの領域を解放します。

ループ終了直後の退避領域
オフセットサイズ詳細
02退避していたアドレス
+210x01

D0演奏・チャネルコマンド処理終了トラック・チャネル

D0

演奏を終了します。 (トラック)

チャネルコマンド処理を終了します。 (チャネル)

D1基準のノート番号設定トラック

D1 xx
xx : 基準のノート番号 (0x00 〜 0xFF)

キーオン時のピッチ計算に使用される基準のノート番号の値が xx に設定されます。

D2オクターブ + 1トラック

D2

キーオン時のピッチ計算に使用される基準のノート番号の値が、現在の値 + 12 に設定されます。計算結果の下位 8 ビットの値が設定されます。

D3オクターブ - 1トラック

D3

キーオン時のピッチ計算に使用される基準のノート番号の値が、現在の値 - 12 に設定されます。計算結果の下位 8 ビットの値が設定されます。

D4ステップタイム設定 (休符)トラック

D4

次のコマンドを実行するまでの待ち時間が、既定の音長 (ティック数) に設定されます。

D5内部フラグリセットとセットトラック・チャネル

D5 xx
xx : フラグ

内部フラグに、現在の値のビット 2 をクリアした値と xx の論理和の結果が設定されます。

チャネルデータ初期化時にはトラックの演奏速度フラグのみ引き継がれます。

内部フラグ
ビットフラグクリアセット備考
0ドラムセットドラムセットではないドラムセットC0 コマンド
2演奏速度 (コマンド処理)演奏速度の値最高速度効果音 ?
3エコーオフオンC8C9 コマンド
4チャネルミュートオフオン

D6ピッチベンドレンジ設定トラック

D6 xx
xx : ピッチベンドレンジの倍率 (0x00 〜 0xFF)

ピッチ計算に使用されるピッチベンドレンジの倍率の値が、xx に設定されます。

ピッチベンドレンジ
xxピッチベンドレンジ
0x081
0x102
0x204
0x408
0x8016

D7キートランスポーズ値設定2チャネル ?

D7 xx
xx : トランスポーズ値 (0x80 〜 0x7F)

(キーオン時の) ピッチ計算に使用される音程の値を xx (Semitone) 変化させます。

xx = 0 で解除されます。

DSP Voice の Pitch の値が再計算されます。

D8キートランスポーズ値相対設定トラック・チャネル

D8 xx
xx : トランスポーズ値変化 (0x80 〜 0x7F)

トランスポーズ値が、現在の値 + xx に設定されます。計算結果の下位 8 ビットの値が設定されます。

DSP Voice の Pitch の値が再計算されます。

D9キートランスポーズ値・ピッチ微調整値相対設定トラック・チャネル

D9 xx
xx : ピッチ微調整値変化 (0x80 〜 0x7F)

キートランスポーズ値を上位バイト値、ピッチ微調整値を下位バイト値とした符号付き 16 ビットの値に、xx を 16 ビットに符号拡張した値が加算されます。計算結果の下位 16 ビットの値が使用されます。

下位 16 ビットの値が正の場合は、上位バイトの値がキートランスポーズ値、下位バイトの値がピッチ微調整値として設定されます。

下位 16 ビットの値が負の場合は、キートランスポーズ値とピッチ微調整値に 0 が設定されます。

DSP Voice の Pitch の値が再計算されます。

DAキーオンチャネル

DA

キーオンします。

DBキーオフチャネル

DB

キーオフします。

DC音量相対設定トラック・チャネル

DC xx
xx : 音量変化 (0x80 〜 0x7F)

音量の値が、現在の値 + xx に設定されます。計算結果の下位 8 ビットの値が設定されます。

DSP Voice の Volume (L, R) の値が再計算されます。

DDピッチベンド値設定トラック・チャネル

DD xx
xx : ピッチベンド値 (0x80 〜 0x7F)

ピッチベンド値が xx に設定されます。

ピッチ計算に使用される音程の値が ((xx * 64 * ピッチベンドレンジの倍率) SAR 8) / 256 (Semitone) 変化します。

DSP Voice の Pitch の値が再計算されます。

DE波形選択チャネル

DE xx yy
yyxx : データの先頭アドレス (相対指定)

チャネル初期化用のデータアドレスを設定します。

yyxx は 設定用データの先頭アドレスから次のコマンドのアドレスを減じた値を設定します。

自動的にキーオフし、DSP にチャネル初期化用のデータが設定されます。

データ (サイズはすべて 1 バイト)
オフセット説明詳細補足
+0Voice : Source number波形番号0x80 以上はノイズ再生 (SN = 0x00)
+1Voice : ADSR (1)Attack rate, Decay rate, ADSR/Gain モード選択
+2Voice : ADSR (2)Sustain rate, Sustain level
+3Voice : GainVolume (Direct) / Gain rate, Gain mode (Custom)
+4ゲートタイム延長キーオフまでの時間を延長 (ティック数)延長時のチャネル優先度 = 0x01
+5キートランスポーズ値C4 コマンドと同じ効果0x80 で Pitch 計算が変化
+6ピッチ微調整値C7 コマンドと同じ効果

DFキーオフ2チャネル

DF xx
xx : キーオフ・設定する値 (0x00 〜 0xFF)

xx が 0x00 の場合、チャネルのデータに 0x00 を設定して終了します。

xx が 0x00 以外の場合、同じ値のチャネルをすべてキーオフしデータに 0x00 を設定、コマンド実行中のチャネルのデータに xx を設定します。

E0ノイズクロック設定全体

E0 xx
xx : ノイズクロック (0x00 〜 0x1F)

DSP に設定するノイズクロックの値を設定します (0 〜 32kHz)。

上位 3 ビットは無視されません。

E1ノイズクロック相対設定全体

E1 xx
xx : ノイズクロック変化 (0xE1 〜 0x1F)

DSP のノイズクロックの値が現在の値 + xx に設定されます。計算結果の下位 5 ビットの値が設定されます。

  1. トップ
  2. SPC
  3. 新・熱血硬派くにおたちの挽歌
  4. 制御コード

- Rental Orbit Space -