SMF(Standard MIDI files)の解説サイトを見つけましたので
勝手にリンク貼っておきます
このブログの
VL-BASICのPLAY(MML)をSMF(.mid)に変換(ver0.0002)
で紹介している
txt2mid.exe(VL,NL,XL-BASICに付属)
でバイナリーとテキストファイルの相互変換が
出来ますので
SMF(~.mid)をメモ帳(Windows標準添付)で編集できます
VL,NL,XL-BASICのダウンロードは下記へ
SMF(Standard MIDI files)の解説サイトを見つけましたので
勝手にリンク貼っておきます
このブログの
VL-BASICのPLAY(MML)をSMF(.mid)に変換(ver0.0002)
で紹介している
txt2mid.exe(VL,NL,XL-BASICに付属)
でバイナリーとテキストファイルの相互変換が
出来ますので
SMF(~.mid)をメモ帳(Windows標準添付)で編集できます
VL,NL,XL-BASICのダウンロードは下記へ
線画のサイト見つけましたので勝手にリンク貼っておきます
http://iradukai.com/nurie2.htm
保存した画像をwindows付属のペイントで24bitBMP640:400の
画像に変換して、このブログで公開している
PC-9801GVRAM(B,R,G,I)とBMP(24bit)の相互変換
の8色用変換でPC-9801GVRAM(B,R,G)にして、
N88-BASICのPAINTで色を塗る等の使い方が出来ると思います。
著作権はよく分からないので公開して良いかは分かりませんが
個人で楽しむ分には良いのではないでしょうか。
PC-9801GVRAM(B,R,G,I)とBMP(24bit)の相互変換
bmp20712.zipとNL-BASICは以下のリンクから
ダウンロードできます。
Readme.txtを読んで遊んで下さい。
VL-BASICのPLAY(MML)をSMF(.mid)に変換(ver0.0002)
ver0.0001のtxt2mid.exeで.midを.txtに変換した際に、
17バイト/行の表示を16バイト/行に修正しました。
また、tron2txt.exeを廃止しtron2txt2.exeをtron2txt.exe
にしました。
変換サンプルのtron.basをVLBasic01.exeに重ねると
PLAY(MML)演奏を.midに変換して再生します。
tron2.txt.exeとtxt2mid.exeの使い方は以下を読んで
下さい。
N88-BASIC(PC-9801)、NL-BASIC、VL-BASICのPLAY(MML)
やVL-BASICのMPU PLAY(MPU MIDI)などの
演奏データをSMF(Standard MIDI File)
~.midに変換する方法を紹介します。
(ただし、VL-BASICで動くものに限ります)
mid20712.zip(tron2txt.exe、txt2mid.exe、tron.bas)
とVL-BASICは以下からダウンロードして下さい。
VL-BASIC(N88-BASIC互換?)ホームページへのリンク
ホームページに書いてあるパスワードを入力して、
Readme.txtを読んで、遊んで見て下さい。
すべて、windows用です。
次の3Stepで変換します。
変換方法(MPU TRONの出力をa.txtで説明)
Step1
VL-BASICを起動し、
LOAD "ファイル名" で演奏プログラムをロードします。
CMD MPU ON
MPU TRON("a")
RUN 音はなりませんが演奏データ(MIDI)を出力します。
MPU TROFF ファイルをクローズします。
Step2
a.txtを
tron2txt.exe
に重ねる
Step3
a_txt.txtを
txt2mid.exe
に重ねる
a_txt_txt.midを
MIDIプレーヤーで演奏
もう少し、詳しく解説
Step1
VL-BASICのPLAYやMPU PLAYなどで演奏した。
データ(MIDI)をファイルに出力します。
LOAD "ファイル名" で演奏プログラムをロードします。
CMD MPU ON
MPU TRON("a") aは任意のファイル名
RUN 音はなりませんが演奏データ(MIDI)を出力します。
MPU TROFF ファイルをクローズします。
a.txtができます。
内容は
wait(msec), midiデータ...
...
です。
Step2
tron2txt.exe
にa.txtを重ねるとa_txt.txtを出力します。
重ねるファイル名に.が複数個あると誤動作します。
a.txtのwaitをSMF(Standard MIDI File)の
wait形式に変換しヘッダーを付けます。
二進数で(16進では最大FFFFFFF)
aaaa bbbbbbbb cccccccc dddddddd
は、SMF形式では(16進では最大FFFFFF7F)
1aaaabbb 1bbbbbcc 1ccccccd 0ddddddd
1byteの最上位bitが1は続きがあり
0はそこで終わりという符号で、
1バイト7bitで数値を表します。
例
十進 16進 SMF16進
0 → 0 00 00 00 → 00
127 → 0 00 00 7F → 7F
128 → 0 00 00 80 → 81 00
255 → 0 00 00 FF → 81 7F
256 → 0 00 01 00 → 82 00
Step3
txt2mid.exe
にa_txt.txtを重ねるとa_txt_txt.midを出力します。
重ねるファイル名に.が複数個あると誤動作します。
.txtは.midに、それ以外は.txtに変換します。
バイナリファイルを、16進数のダンプリストにして
テキストファイルに出力します。
例
4D,54,68,64,00,00,00,06,00,00,00,01,01,E0,4D,54,72 ; MThd・・・・・・・・・潼T
....
また、16進を,で区切った(;はコメント)テキストファイルを
バイナリーに変換できます。
(拡張子は.midになりますが、必要に応じて変更して下さい。)