DirectSoundでサウンド再生開始時にノイズがのる件

何を思ったか、突然DirectSoundを触ってみた。

とは言っても、今までまともにサウンド再生なんてやったこと無かったので、
一先ず簡単そうなオンメモリなWAVを再生する所から始めてみたんだけど、表題の件で躓いた。

まずDirectSoundのサウンド再生システムは、まとめるとこんな感じになっているらしい。
DirectSoundには「プライマリバッファ」と「セカンダリバッファ」という2種類のサウンドバッファがあり、
「プライマリバッファ」はDirectSoundCreate8関数(多分)を実行した時に1個だけ自動的に作成されるもので、
セカンダリバッファ」はプログラマが何個でも作れる(というかサウンドの数だけ作ることになる)。
そして、あるセカンダリバッファの再生を指定すると、プライマリバッファにおいて
「再生中の他のセカンダリバッファたち」とミキシングされ、サウンドが出力されるという寸法。

で、表題の件が起こるのは、この「再生中の他のセカンダリバッファたち」が0個から1個になるとき。
つまり何か1個のサウンドを再生やら停止やらしていると、再生開始直後にプチノイズがのる。
プライマリバッファで何が起こってるのかは知らないけど、どうもそれまで再生していたサウンドが残っている感じ。

そこで、なんやかんや調べていたら、
「常にプライマリバッファの内容を更新し続けるために、無音のループサウンドを垂れ流しにする」
という方法に行き当たり、これがビンゴ。

結局他に同じような記事(というかこの現象に遭遇しているという記事自体)は見つからなかったんだけど、
もしかして結構常套手段だったりするのかな。。。

というか今からやるならXAudio2なのか。

ツールボックスにユーザーコントロールが追加されない

昨日から調べてたんだけど、調べ方が悪かったのか、さっきようやく解決方法を見つけることが出来た。


[問題]
既存のWindowsアプリケーションプロジェクトに、
ユーザーコントロールを追加しても、ツールボックスに追加されない。
また、別途Windowsコントロールライブラリを作成し、参照の追加をしても、ツールボックスに追加されない。

[開発環境]
Microsoft Visual Studio 2005 Academic Editioin

[解決方法]
メニューの [ツール] - [オプション] を開き、
[Windows フォーム デザイナ ] - [全般] の <AutoToolboxPopulate> を True にする。