Skip to content

Latest commit

 

History

History
170 lines (141 loc) · 12.4 KB

husic_tech.md

File metadata and controls

170 lines (141 loc) · 12.4 KB

HuSIC Technical Document

このドキュメントについて

このドキュメントは基本情報を記述することを目的としています。
内容に不備や誤記がある場合があります。

トラック

行頭にトラック記号を記述することで、ノートやコマンドが使用可能になります。

トラック記号 内容
A HuC6280 Ch.0 FMLFO(*1)
B HuC6280 Ch.1 FMLFOコントロール(*1)
C HuC6280 Ch.2
D HuC6280 Ch.3
E HuC6280 Ch.4 ノイズ使用可(*2) XPCM使用可(*3)
F HuC6280 Ch.5 ノイズ使用可(*2) XPCM使用可(*3)

(*1): FMLFO使用時はCh.0とCh.1を合わせて1チャンネルとして扱います。
(*2): ノイズ使用時はノートは発音できません。
(*3): XPCM使用時はノートやノイズは発音できません。

使用可能ヘッダ一覧

行頭に以下のいずれかの文字列があった場合、 ヘッダ行として扱います。

文字列 効果 備考
#TITLE <str> タイトル
#COMPOSER <str> 作曲者名
#MAKER <str> メーカー カバー用
#PROGRAMER <str> プログラマ
#OCTAVE-REV オクターブ記号反転
#GATE-DENOM <num> ゲートタイム分母 qコマンドの分母
#INCLUDE <file> インクルード ファイルを挿入する
#OCTAVE-OFS <num> オクターブオフセット
@XPCM<num> = { "ファイル",再生周波数 } PCMデータ 再生周波数は0-15
@WT<num> = { ... } 波形メモリデータ 32サンプル分の値を書く
@MP<num> = { ... } ソフトウェアLFO
@EN<num> = { ... } ノートエンベロープ
@EP<num> = { ... } ピッチエンベロープ
@V<num> = { ... } 音量エンベロープ
@<num> = { ... } トーンエンベロープ HuSICではハードウェア仕様により音色変更時にノイズあり
@ME<num> = { ... } マルチエンベロープ

@系コマンドではnumは定義番号として機能します。 エンベロープに関しては"|"がループ開始記号として機能します。
また、x<num>で直前の値*num回の繰り返しが可能です。

例:

@V0 = { 31 x4 0 x4 }

は、

@V0 = { 31 31 31 31 0 0 0 0 }

と等価です。

使用可能コマンド一覧

行頭にトラック記号がある行では、以下のコマンドを使用することができます。

文字列 効果 備考
w[len] ウェイト
@t<num,num2> テンポ2 num * num2 / 192.0
t<num> テンポ
o<num> オクターブ
> オクターブアップ
< オクターブダウン
l<len> 音長
v+ 音量プラス
v- 音量マイナス
v<num> 音量 0:最小 31:最大
NB バンク切り替え
EPOF ピッチエンベロープ オフ
EP<num> ピッチエンベロープ
ENOF ノートエンベロープ オフ
EN<num> ノートエンベロープ
MPOF ソフトウェアLFO オフ
MP<num> ソフトウェアLFO
FSOF FMLFO オフ
FS<num> FMLFO 有効/コントロール num=0~3
FF<num> FMLFO 周波数
FR FMLFO リセット
FM FMLFO モジュレータ周波数 num=(oct<<4) | (note%12)
MV<num> マスターボリューム 左右4bit、16段階。MV$ccなどと設定。
N<num> ノイズスイッチ num=1でオン
PL<num> パンL 音量
PR<num> パンR 音量
PC<num> パンセンター 音量
P<num> パン 音量
RI<num> リセット無視 RIフラグの項目を参照
W<num> 波形メモリ変更
M<num> モード変更 num=1でXPCM
SDQR セルフディレイ キューリセット
SDOF セルフディレイ オフ
SD<num> セルフディレイ
D<num> デチューン
K<num> トランスポーズ
@q<num> クオンタイズ2 num=フレーム指定のクオンタイズ
@pe<num> パンエンベロープ @MEの定義を使用
@vr<num> リリース音量エンベロープ @vと同じ定義を使用
@v<num> 音量エンベロープ
@@r<num> リリーストーンエンベロープ @@と同じ定義を使用
@@<num> トーンエンベロープ
<ノート>_<ノート> ポルタメント 例:c_g
<ノート>&<ノート> スラー 例:c&g
x データ直接出力(デバッグ用)
k<num> キーオフ
L 曲ループ記号
|: リピート2開始
: | リピート2終了
\ リピート2エスケープ
[ リピート開始
] リピート終了
| リピートエスケープ
{ 連符開始
} 連符終了
q<num> クオンタイズ 音長のn/8以降でキーオフ
^ タイ 例:c4^2
! トラック強制終了 この記号以降を無視する

FMLFOについて

FMLFO有効時はCh.1の波形データを周波数変調として利用します。
FMLFOはFSコマンド使用時に有効になります。
FMLFOモードを無効化するにはFSOFコマンドを使用します。

FSコマンドの数値と機能

数値 機能
0 変調されない。Ch.0の波形は変化せず。
1 波形データはCh.0の周波数に直接加算される。
2 波形データは左に4回シフト(16倍)されてCh.0の周波数に加算される
3 波形データは左に8回シフト(256倍)されてCh.0の周波数に加算される

RIフラグ

エンベロープのキーオン時のリセットを無視するフラグです(各ビットが1で無視します)

機能 ビット
トーン 0 1
ノート 1 2
ピッチ 2 4
LFO 3 8
パン 4 16

ノート表記

行頭にトラック記号がある行では、ノート(音符)を使用することができる。

ファ 休符
c d e f g a b r
"ノート[音長]"となり、音長を付加しない場合はlコマンドの設定値が音長になる。
文字列 内容
n<数値>[,音長] ノート番号直接入力