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にするためなので、なくても構いません)

 

MSX-MUSIC、FM-BIOSのOPLDRV、

YM2413(OPLL)についてはこちらを参照ください。

3.3 FM BIOS - MSX Datapack wiki化計画

 

イメージディスク内部を閲覧したり、ファイルの書き出し、追加、

MSX用の空のブランクイメージディスクを作成する場合は

DiskManagerをご利用ください。詳しい説明は以下の記事をご参考に

eidaht.hatenablog.com

 

MIDIデータ用意して環境を整える~

筆者CUBASEユーザーのため、CUBASE8.5環境にて解説します。

使用する音源は変換を想定して、ありがた~いフリーVST

”VST2413”を使用しました。

VST2413 - FM Synthesizer Plug-in

© 2013 Keijiro Takahashi / Radium Software

 

~トラック~

FM9音モードの場合

 

最大9トラックにそれぞれ1~9チャンネルを順に割り当てる。

このため、和音は単音に分散させる必要があります。

 f:id:MIKUSX:20181127201917j:plain

MIDIOPLLコンバータは、

トラック名の先頭文字でOPLLのプリセット音を判別します

半角英数字 1~F、OPLLの内蔵音番号1~F(16進数)を指定します

半角数字  0nn、FM-BIOSの拡張音色を指定します。nnは00~63 

以降のトラック名はMSXで読み込みするので半角英数字のほうが良いです。

 

FM6音+リズム音の場合 

f:id:MIKUSX:20181127211304j:plain

第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ファイルで作成しますが、

f:id:MIKUSX:20181127202935j:plain

 

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 4 3 2 1
32分音符 6 7 6 5 4 3 2

 

分解能=4分音符欄に記載された数値。

(現在のDAWなら480や960が普通なので、衝撃特価な数値ではある)

対応表で分解能28なので、スクショの場合はテンポ128.57になります。

CUBASEでは最小値24なのでそれ以下は不可です。

 

16分音符までは対応できるが、32分や3連符となると限られてくる。

75や112.5なら3連符は厳しいが、64分が対応できる。

 

MIDIデータを揃える、不要データの削除~

CUBASEのメニューバーから

編集→クオンタイズをかける

編集→高度なクオンタイズ→音の長さのクオンタイズをかけて

下図のようにMIDIデータを揃えてください。

 

f:id:MIKUSX:20181127213942j:plain

 

メニューバーのMIDI→機能から

・すべてのコントロールデータを削除

・すべてのコンティニュアスコントロールデータを削除

・重複ノートを解消してください。

 

また、下図のような被りも修正します。

f:id:MIKUSX:20181127214628j:plain

 ドラムパートも同様に

クオンタイズで音を揃えて、不要データを削除しておきます。

 

f:id:MIKUSX:20181127214926j:plain

同時発音するパートの音の長さも同一にそろえておきます。

その3へつづく