IDirectMusicAudioPath8::SetVolumeは、まんまフェードを作れる模様。
ただどういう実装でどの程度の精度があるのかは知らない。
ただDirectMusic自体が廃止される方向なのは周知の通り。

DirectSoundの話に戻ると、
Sleepでタイミングを作ってSetVolumeする方法は運任せすぎる。
せめてIDirectSoundBuffer8::GetCurrentPositionとかIDirectSoundNotify8でタイミングを作るべき。
ただDirectSound自体もVista以降はWASAPI上で動いてるから、期待した精度が出る保証はない。

確実にフェードを作るには、既に出ているように、バッファ内のサンプル値を直接いじるしかない。


なんつって