[MID-Play の仕組み]

概要
MID-Play は、一般的なウェーブテーブル型波形生成による波形ジェネレータを
搭載しており、その波形を加算合成することにより和音を実現しています。
この波形ジェネレータ+加算合成に MIDIエミュレーションと SMFパーサを追加
することにより MIDファイルの演奏を実現しています。

構成
大まかな構成は Fig.1 のようになります。



SMF Parser のインスタンスは1つ。これが、与えられた MIDファイル(SMF0, 1) を
解析・解釈して、MIDIメッセージを生成します。つまり、この段階では、演奏デバイ
スがソフトウェアMIDIであることを意識していません。MIDIメッセージの送信先を
本物の MIDI音源にすることで、そちらで演奏することもできます。

MIDI Synthesizer emulator のインスタンスも1つ。これは MIDI音源をエミュレート
します。送られてきた MIDIメッセージを解釈して、Wave table sound generator を
制御します。

Wave table sound generator のインスタンスは「最大発声数」で指定された数になり
ます。このインスタンスは、1つにつき1つの音しか生成できませんし、Note Off を
受けた後でも、実際に音が消える(消される場合も含む)まで動き続けます。

Sound Mixer のインスタンスは1つで、複数の Wave table sound generator が生成し
た波形を、加算合成により合成して 1ch の PCM 波形に変換します。この変換の際に
指定されたフィルタ(LPF や Reberb など)に通す機能もあります。

Sound Driver のインスタンスも1つ。Windows の音声再生 API をラッピングして、
Sound Mixer より上位を Windows に依存しない形で実装できるようにします。

[▲上へ][次へ]
Copyright (C)2004 t.hara, 無断転載禁止