MIDI to OPLDRV(FM-BIOS) Converter その2
MIDI to OPLDRV(FM-BIOS) Converter for MSX
ダウンロードはこちらから
http://mikusx.html.xdomain.jp/MIDIOPLL.zip
解凍すると、
フォルダに以下のファイルが収録されています。
MIDIOPLL.COM
コンバータ本体、MIDIデータをOPLDRV用データに変換する
PLAYOPLL.COM
OPDV.BIN
簡易OPLLプレイヤー
SAMPLE1.MID
サンプル曲ファイル(FM9音モード)
SAMPLE2.MID
サンプル曲ファイル(リズム音+FM6音)
MIDIOPLL.DSK
上記ファイルを収録したイメージディスク。
BlueMSX、WebMSXなど実機以外エミュでもテストできるよう用意しました。
(Autoexec.bat は Mode80にするためなので、なくても構いません)
YM2413(OPLL)についてはこちらを参照ください。
3.3 FM BIOS - MSX Datapack wiki化計画
イメージディスク内部を閲覧したり、ファイルの書き出し、追加、
MSX用の空のブランクイメージディスクを作成する場合は
DiskManagerをご利用ください。詳しい説明は以下の記事をご参考に
~MIDIデータ用意して環境を整える~
筆者CUBASEユーザーのため、CUBASE8.5環境にて解説します。
使用する音源は変換を想定して、ありがた~いフリーVST
”VST2413”を使用しました。
VST2413 - FM Synthesizer Plug-in
© 2013 Keijiro Takahashi / Radium Software
~トラック~
FM9音モードの場合
最大9トラックにそれぞれ1~9チャンネルを順に割り当てる。
このため、和音は単音に分散させる必要があります。
MIDIOPLLコンバータは、
トラック名の先頭文字でOPLLのプリセット音を判別します
半角英数字 1~F、OPLLの内蔵音番号1~F(16進数)を指定します
半角数字 0nn、FM-BIOSの拡張音色を指定します。nnは00~63
以降のトラック名はMSXで読み込みするので半角英数字のほうが良いです。
FM6音+リズム音の場合
第1トラックにリズムトラック
以降2~7トラックにFM1~6チャンネルのトラックを順に置きます
半角英数字 R、リズムトラックであることを示す。
リズムのノート情報は先に紹介した2413VSTに対応しています。
以下のノート情報でトラックを作成すれば、各音色に変換されます。
・ドラムパートのノートデータ
2413VST MIDI(SMF)
BD(Kick) C1 24H
Snare D1 26H
HH F#1,G#1 2AH,2CH
Tom G1,B1,D2 2BH,2FH,32H
Cym C#2,D#2 31H,33H
音色番号とデータはこちらを参照ください
内蔵音
3.4 YM2413(OPLL) - MSX Datapack wiki化計画
拡張音色 ライブラリ
3.2 MSX-MUSIC 拡張BASIC - MSX Datapack wiki化計画
~使用できるテンポが限られる~
CUBASEのテンポ値は反映されません。
CUBASEでは、拡張子.MIDファイル(SMFファイル)を
ファイル→書き出し→MIDIファイルで作成しますが、
FM-BIOS(OPLDRV)の1/60秒タイマ割込みにあわせるため
保存直前に表示されるダイアログの
書き出しオプションの分解能値でテンポが決定します。
(チェックボックスはすべて解除)
テンポ対応表(ここでは1tick=1/60(s))
SLOW | MID | FAST | ||||||||||||
BPM | 56.25 | 60.00 | 64.29 | 69.23 | 75.00 | 81.82 | 90.00 | 99.99 | 112.50 | 128.57 | 150.00 | 180.00 | 225.00 | 300.00 |
4分音符 | 64 | 60 | 56 | 52 | 48 | 44 | 40 | 36 | 32 | 28 | 24 | 20 | 16 | 12 |
8分音符 | 32 | 30 | 28 | 26 | 24 | 22 | 20 | 18 | 16 | 14 | 12 | 10 | 8 | 6 |
16分音符 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 |
3連符(16) | 4 | 5 | x | x | 4 | x | x | 3 | x | x | 2 | x | x | 1 |
32分音符 | 6 | x | 7 | x | 6 | x | 5 | x | 4 | x | 3 | x | 2 |
x |
分解能=4分音符欄に記載された数値。
(現在のDAWなら480や960が普通なので、衝撃特価な数値ではある)
対応表で分解能28なので、スクショの場合はテンポ128.57になります。
CUBASEでは最小値24なのでそれ以下は不可です。
16分音符までは対応できるが、32分や3連符となると限られてくる。
75や112.5なら3連符は厳しいが、64分が対応できる。
~MIDIデータを揃える、不要データの削除~
CUBASEのメニューバーから
編集→クオンタイズをかける
編集→高度なクオンタイズ→音の長さのクオンタイズをかけて
下図のようにMIDIデータを揃えてください。
メニューバーのMIDI→機能から
・すべてのコントロールデータを削除
・重複ノートを解消してください。
また、下図のような被りも修正します。
ドラムパートも同様に
クオンタイズで音を揃えて、不要データを削除しておきます。
同時発音するパートの音の長さも同一にそろえておきます。
その3へつづく