技術情報ということのものではないですが、備忘録もかねて、スキを見てメモ書き程度にまとめていこうと思います。 *VST [#p59f6bae] - *ASIO [#v9a612fa] -レイテンシは小さい。けっこうローレベルな IF なので、自前で諸々処理が必要。 *DirectSound [#y41d8398] -レイテンシはそんなに大きくなさげ。デバイスをアプリで独占するわけでないので、MediaPlayer で MP3 を再生させつつ、VST の出力も再生するとかもできる。 *複数の出力デバイスの同時再生 [#v5c5c9e6] - Magome 内部の再生エンジンは、 複数のオーディオ出力デバイスから、同時に音を出すことを可能にしている。 - IF 的には、ASIO も DirectSound も同時に使うことが可能。がしかし、同時に使うとデバイスによるズレをどう吸収するのがよいのか。(とりあえず手元のデバイスでは、複数デバイスのズレが気になることはないが、理屈上は有りえそう。) - Magome では、PC の高分解能カウンタをマスターとして使う。もし PC のカウンタとそれぞれのデバイスのカウンタ(時間)にズレが出てきたら、PCのカウンタに合うように発声のタイミングを調整する。 -- PC の機種によっては高分解能カウンタはアテにならないということもあるようだが、昨今のPCなら問題なさそうな気配がするので気にせず使用。 *MIDI [#d2400d1b] -Windows標準のMIDI音源はレイテンシがものすごく大きい。VST などと同時に再生させたときのズレを吸収させる工夫は要実装。 *boost::asio [#m0182c20] -WinSock を直接にはなるべく使わず boost::asio のお世話になっている。が、通信以外でも、非同期IFとしての利用にも便利。 - Webサーバーのとの通信には基本的に使わない。Magome サーバーとクライアントアプリとの P2P 通信で使用。(Webサーバーとのやり取りは IE コンポーネントを利用。) *XOOPS [#xc86e2f1] -Web サーバーの土台として利用。 *SQLITE [#g4dd63ec] -Magome サーバーにて、楽曲データなどの管理で使用。 *アプリケーションの自動更新 [#g9e1d1ca] -アプリ起動時にサーバーのファイルを参照して、新しくなっていれば、ダウンロードして自身を置き換える。
(This host) = https://tr9.sakura.ne.jp