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

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

[第341回]


●バッハのMIDIファイル

四季の歌のMIDIファイルの演奏に成功しましたら、欲がでてきました。
最初にBASICで試しましたバッハのMIDIファイル(bwv140.mid)です([第333回])。
それをぜひとも演奏してみたい。
で。
MIDI演奏プログラムで実行してみましたところ、見事にこけてしまいました。
ええ。
音は出たのですが、とても曲を演奏しているといえる状態ではありませぬ。
時折ホワァとかブワァとか音が出まして、なんだか暴走している様子でありました。

そこで、四季の歌のMIDIファイル(siki−b.mid)のときと同じように、ファイルをメモリにロードして、そこでファイルの解析をおこないました。
その結果、siki−b.midとはファイルの構造(フォーマット形式)が異なっていることがわかりました。
フォーマットにつきましては[第338回]で説明をいたしました。

siki−b.midはフォーマット1という形式で、データトラックが複数あります。
そして1番目のトラックに速度の情報などの、いわば指揮者のための情報が書かれていて、2番目以降のトラックに音源に送る音のデータや制御情報などが書かれています
これに対しましてbwv140.midはフォーマット0という形式で、こちらはデータトラックが1つしかありません。
ただ1つのデータトラックに、指揮者のための情報と演奏者のための情報を一緒に書いていまっています。

私は最初siki−b.midだけを解析して、それが演奏できればいい、という考えでMIDI演奏プログラムを作りましたので、フォーマット1の形式に合わせてプログラムを作成してしまいました。
それじゃあ形式の違うbwv140.midを読み込んでもまともに演奏してくれるわけはありません。
さらにそのトラックの内容をじっくり確認してみますと、siki−b.midにはなかったいろいろなイベントデータがたくさん使われていることがわかりました。

本日は時間がなくなってしまいました。
途中ですが続きは次回にいたします。

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

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