MIDI to OPLDRV(FM-BIOS) Converter その 4
MSX用
SMFデータ → FM-BIOSデータコンバータ
http://mikusx.html.xdomain.jp/MIDIOPLL.zip
コンバート時、SMFデータの
ランニングステータスの処理に不具合あったので修正
メモ)
VST2413はプリセットデータが保存されない。
MIDI to OPLDRV(FM-BIOS) Converter その3
MIDI to OPLDRV(FM-BIOS) Converter 解説・その3
http://mikusx.html.xdomain.jp/MIDIOPLL.zip
その2で整えたMIDIデータをセーブして
(MIDIOPLLが扱えるMIDIデータのサイズは32KBまで)
フロッピーまたは、イメージディスクにコピーします。
MSXDOS1のファイル名は半角英数字で8文字までです。
ではMIDIOPLLを動かしてみる。
実際にコンバートしてみるため変換前のMIDIファイルのみです。
所有実機(SANYO WAVY70FD2、MSX2+)で説明しましょう!
・・・といきたいところだが、手短にWebMSXで説明します。
なぜならスクショがとりやすいので。記事3つで終わらせたい。
(くっそ、このMSX2+、RAM512KBも積みやがって・・・ありがとうございます)
(※WebMSXはIEでは動きません)
イメージディスクをブラウザへ直接
ドラッグアンドドロップすると起動します
(DRIVE A)らっくらくぅ~♪
MIDIOPLL SAMPLE1 ⏎ (拡張子は省略可)
終了したので確認
dir sample1.*⏎
SAMPLE1.OPLが生成されます。
MIDIファイルと比較するとサイズはコンパクトになりました。
実機やBlueMSXの場合は、この時点でフロッピーやイメージファイルに書き込み済み
しかし、WEBMSXはローカルのイメージファイルは変更しないので
パワーボタンアイコンの隣のAドライブをクリックして、
"Save Image File"を選択して変換処理済みのイメージディスクをダウンロードしてください。
PLAYOPLL SAMPLE1⏎(拡張子OPLは省略可)
簡易プレイヤー起動して試聴できます。
今後の課題
Qの指定、サスティンのオンオフ、
自作音色のアドレス指定とか
変換後多少修正できる簡易エディターがあればいいかなー。
CUBASEからのSMF書き出ししか試していないので、
シーケンスデーターにクオンタイズをかけてノートデータ揃えても
他DAWでのMIDIデータ構造が(ランニングステータスの扱い方)異なってたら
エラーはいたり、正常に演奏されないじゃないかという懸念が・・・。
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へつづく
MIDI to OPLDRV(FM-BIOS) Converter その1
MIDIOPLL.COM(MSX-DOS1)
FM音源(YM2413/OPLL)ドライバ”OPLDRV”用に変換するフリーウェア(※)
MIDIOPLL
http://mikusx.html.xdomain.jp/MIDIOPLL.zip
自作ゲーム”スラ道楽”の改良版の一環で
BGMの追加変更を進めていて、
曲作りにCUBASE使っているので
MIDIデーターをOPLDRV用に変換できれば制作捗るし
今後のMSX用ゲーム開発などにも役に立つ。
いままでのストックや巷に溢れるフリーMIDIデータを
好きなだけ編集してMSXに投入できると思って、
スラ道楽(MSX2版)
MSX Resource Centerにないかなー(いろいろあります)
検索したらどっかにないかなー
漁っていてもみつからない。
本当はどこかにすごいのがあるかもしれない。
探すのが下手なのか?
しょうがない、自分で作りました。
使い方
フロッピーに変換したいMIDI(SMF)ファイルをコピーして
MIDIOPLL MIDIデータのファイル名(.MID) ⏎
OPLDRV用演奏データファイル、
"MIDIデータのファイル名.OPL"を作成します。
OPLDRVのメリットは初期化後、
タイマ割り込みルーチンに
OPLDRVをコールする命令を入れておき、
あとは操作命令をコールするだけで、
BGMの再生・停止ができるという手軽さです。
使用上の注意、制限が多数御座います。
その2以降で解説します。