S.F.Tracker(51)

公開:2005-06-28 20:31
更新:2020-02-15 04:36
カテゴリ:sftracker,windows,audio,tracker

ソングデータの再生をコントロールするplayerを作成し始めた。
演奏はメインスレッドと別のスレッドで行う。
処理の流れは以下のとおりだ。
1.演奏スレッドは、せっせと演奏データを、バッファがいっぱいになるまで生成する。
2.いっぱいになるまで生成したら、演奏スレッドは眠る。
3.それを後追いして、ドライバがバッファのデータを音源に渡す。
4.バッファの半分くらいまで音源にデータを渡したら、演奏スレッドをたたき起こす。
5.1に戻る

問題になるのが、リアルタイムメッセージをどのようにバッファに反映させるかである。たとえば、あるソフトシンセのVCFを演奏中にいじった場合、そのいじり具合をリアルタイムに演奏データに反映させないといけない。しかし、実時間よりかなり先行して演奏データを生成しているので、かなり遅れて演奏データに反映されることになってしまう。

なので、ここはひと工夫必要なのである。