VGMGEN用のデータ作成手順
VGMGENの仕様に関しては割愛させていただきます。詳細はVGMGENに同梱の「vgmgen.txt」をご覧ください。
1. ソングヘッダーの作成
SMFを作成するときは、必ず各トラックの1小節目で音源の設定をします。これをソングヘッダーといいます。1小節目にはノート(音符)は入力しません。
通常、ソングヘッダーは4/4拍子で作るのですが、サンプルデータのソングヘッダーは1小節目が1/16拍子になっています。これは、変換したVGM/VGZを再生したときに、頭の空白時間を少しでも短くするための工夫と考えられます。
これに倣ってソングヘッダーは1/16拍子で作成しました。作例は以下のとおりです。(分解能=480)
※Measureは小節、Beatは拍、Tickは時間の分解能(タイムベース)の最小単位です。
Measure |
Beat |
Tick |
Type |
Value1 |
Value2 |
1 |
1 |
000 |
Control Change |
120 (All Sound Off) |
0 |
1 |
1 |
005 |
Control Change |
121 (Reset All Controllers) |
0 |
1 |
1 |
010 |
Control Change |
123 (All Note Off) |
0 |
1 |
1 |
015 |
Control Change |
0 (Bank Select MSB) |
0 |
1 |
1 |
020 |
Control Change |
32 (Back Select LSB) |
0 |
1 |
1 |
025 |
Program Change |
1 |
― |
1 |
1 |
030 |
Control Change |
1 (Modulation) |
0 |
1 |
1 |
035 |
Control Change |
7 (Volume) |
127 |
1 |
1 |
040 |
Control Change |
11 (Expression) |
127 |
1 |
1 |
045 |
Control Change |
10 (Pan) |
64 |
1 |
1 |
050 |
Control Change |
65 (Portamento) |
0 |
1 |
1 |
055 |
Control Change |
5 (Portamento Time) |
0 |
1 |
1 |
060 |
Control Change |
91 (Reverb Send) |
0 |
1 |
1 |
065 |
Control Change |
93 (Chorus Send) |
0 |
1 |
1 |
070 |
Control Change |
101 (RPN MSB) |
0 |
1 |
1 |
075 |
Control Change |
100 (RPN LSB) |
0 |
1 |
1 |
080 |
Control Change |
6 (Pitch Bend Sensitivity) |
12 |
1 |
1 |
085 |
Control Change |
101 (RPN MSB) |
0 |
1 |
1 |
090 |
Control Change |
100 (RPN LSB) |
1 |
1 |
1 |
095 |
Control Change |
6 (Fine Tuning MSB) |
64 |
1 |
1 |
100 |
Control Change |
38 (Fine Tuning LSB) |
0 |
1 |
1 |
105 |
Control Change |
101 (RPN MSB) |
127 |
1 |
1 |
110 |
Control Change |
100 (RPN LSB) |
127 |
1 |
1 |
115 |
Pitch Bend |
0 |
― |
- 1.1.000~010
- 音源のリセットです。GMシステムオンやGSリセットなどのシステムエクスクルーシブの代わりです。
- 1.1.015~025
- 音色の設定です。バンクセレクトはGS/XG用でGMでは不要ですが、念のため入れてあります。設定できる値はFM音源はVOPM音色ファイルで定義した音色の番号、DCSG音源は1固定です。
- 1.1.030
- モジュレーション(ビブラート)。VGMGENは非対応です。初期値は0(オフ)です。
- 1.1.035
- ボリューム。VGMGENは非対応です。初期値は127(最大)です。
- 1.1.040
- エクスプレッション。VGMGENではDCSG音源のボリュームをコントロールできます。初期値は127(最大)です。
- 1.1.045
- パン。VGMGENではFM音源は対応、DCSG音源は非対応です。初期値は64(中央)です。設定できる値は0(左)と127(右)のみです。
- 1.1.050~055
- ポルタメント。VGMGENではFM音源は対応、DCSG音源は非対応です。初期値は0(オフ)です。
- 1.1.060~065
- リバーブ・コーラス。VGMGENは非対応です。初期値は0(オフ)です。
- 1.1.070~080
- ピッチベンドレンジ。VGMGENではFM音源は0~24、DCSG音源は12固定です。初期値は12(2オクターブ)です。
- 1.1.085~100
- ファインチューニング。VGMGENは非対応です。初期値はMSB=64・LSB=0(440Hz)です。
※ピッチをずらしてデチューンをかけたい場合はピッチベンドを少しずらします。
- 1.1.105~110
- RPNヌル。ピッチベンドレンジ・ファインチューニングの誤動作防止です。
- 1.1.115
- ピッチベンド。初期値は0(オフ)です。
ソングヘッダーの作成が終わったらデフォルトとしてファイルを保存しておくとよいでしょう。
2. メロディーの打ち込み
VGMGENはベロシティー非対応なので、ベロシティーは100か127固定で打ち込みます。DCSG音源はエクスプレッションでボリュームをコントロールできますが、FM音源はボリュームをコントロールすることができないので、VOPMで音色を作成するときに調整しておく必要があります。

VGMGENはLFOがないのでビブラートはピッチベンドで入力します。ピッチベンドレンジの初期値が2オクターブなので、ピッチを少し揺らす程度の値は150くらいになります。ピッチベンドでビブラートをかけるのですから、DCSG音源のLFOは矩形波だろうとか、小難しいことは考えずに自由に入力すればいいと思います。作例ではサインカーブで入力しています。

3. ノイズの打ち込み
ノイズは3チャンネル目と同期させた場合を除き、音程固定なので全部C3固定で打ち込んでいきます。

バスドラムやスネアなどの音色の変化は、その都度プログラムチェンジを入力します。

ボリュームエンベロープはエクスプレッションで描きます。DCSGの音量は16段階なので、厳密には8の倍数で凸凹に入力しなければならないのですが、MIDIシーケンサーのペンツールで連続した値を入力してもちゃんと変換してくれるようなのであまり気にすることはありません。むしろ、VGM/VGZを再生するエミュレーターの精度に依存します(後述)。

4. ループポイントの設定
コントロールチェンジ56でループポイントが設定できます。これはダル・セーニョ(D.S.)のセーニョ記号に相当するものです。チャンネル1のループ始点にコントロールチェンジ56を入力してください。値は0でいいです。

ループさせる際に注意しなければならないのは、ループ終点に休符が入るとループがおかしくなってしまうことです。小節の最後まで音符が埋められる場合はよいのですが、埋められない場合はDCSG音源でエクスプレッションを0にしたゴーストノートを打ち込むなどして対処する必要があります。

5. VGMGENの実行
VGMGENはコマンドプロンプトから実行します。VGMGENをCドライブ直下に解凍した場合、
C:¥vgmgen¥vgmgen hoge.opm hoge.mid
のように打って実行しますが、変換するたびに毎回打つのは面倒なので、メモ帳に、
vgmgen hoge.opm hoge.mid
と打って、適当な名前のバッチファイル(.bat)で保存しておくとよいでしょう。
6. 試聴
変換してできたVGMかVGZのどちらかをプレーヤーで再生してチェックします。そして、納得が行く出来になるまで2.~5.を繰り返します。
VGM/VGZはWinampプラグインの「in_vgm.dll」で再生することができます。KbMedia Playerは「in_vgm.dll」に対応しているので便利です。
その他にAudio OverloadというソフトでもVGM/VGZを再生することができますが、「in_vgm.dll」に比べてエミュレーションの精度はイマイチです。また、ループポイントに対応していません。