2013.3.11
前へ
次へ
ホームページトップへ戻る

復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります

[第342回]


●バッハのMIDIファイル(2)

前回からの続きです。
バッハのMIDIファイルbwv140.midのダンプリストをもとに、コードを解読いたしました。
下は解読をして、余白にメモを書き入れたダンプリストの一部です。

解読しました結果、四季の歌のMIDIファイルには出てこなかったイベントコードがたくさん出てきました。

●メタイベント FF 01 nn 〜 FF 09 nn

メタイベントについては[第338回]でも少し説明をしました。
FFから始まるメタイベントコードはMIDI音源には送られません。
FF 01 〜 FF 09 は、ファイルそのものの情報をテキスト文字で表記するために使われます。
nnは可変長表記の文字数でその後ろにその文字数分のテキスト文字が続きます。
01〜09でそれぞれ楽器とか曲名とか表示する内容が決められているのですが、割と適当に使われているようです。
FF 03 が比較的多く使われているようです。
この部分は演奏には関係ありませんから、MIDI演奏プログラムでは読み飛ばしています。

●コントロールチェンジいろいろ(BX XX)

BXで始まるコントロールチェンジについては、[第339回]で少し説明をしました。
これも四季の歌では出てこなかったものが沢山使われています。
しかしこれはメタイベントと違って、そのままMIDI音源に送りますから、その意味や働きについては、MIDI演奏プログラムとしては、特に意識していません。
とにかくBXから始まる3バイトはそのままMIDI音源に送るようにしています。

このほかDXで始まるコードもCXと同様に2バイトのコードということですので、そのようにプログラムしました。

上記の解析の結果をプログラムに織り込んで、いよいよbwv140.midを読み込んでMIDI演奏プログラムを実行しました。
結果は。
おお。
成功です!
バッハが、SC−88に接続したアンプ〜スピーカーから流れ出しました。

いやあ。
感激です。

こうなりますと。
バッハだけではなくて、もっと、もっといろいろな曲で試してみたくなります。
他にやらなくてはならないことが山積しているのですけれど。
これは、なかなかに楽しい、です。

あれこれネットからダウンロードして試してみました。

おお、おお。
いける、いける。
大成功でありましたよ。

あ。
MIDI演奏プログラムのプログラムリストにつきましては。
もうしばらくお待ちくださいませ。
もう少しあとで、整理しましてご披露いたしますので。

ワンボードマイコンでCP/Mを![第342回]
2013.3.11upload

前へ
次へ
ホームページトップへ戻る