Original Post
First: Yes, I used google .. yes, I used the forum search ... Hi guys (and girls?), I am new to this community and fairly new to DirectX programming. Now I encountered a problem with DirectSound. Arlight, I managed to set up all those buffers and stuff and, yeah, the sound is playing. However when it come to altering the volume I stumbled over something odd. I'll get to the point. Basically this: dsound->play(); Sleep(1000); dsound->setVolume(0); works ... bit this: dsound->play(); dsound->setVolume(0); doesn't! ( dsound->play() basically results in a call to IDirectSoundBuffer8::play(...) and dsound->setVolume(0) to IDirectSoundBuffer8::setVolume(-10000) )The first snipped does exactly what it's supposed to. It plays the sound at full volume, continues to do so for a second and then sets the volume to 0 (silence). However in the second snipped the setVolume() call doesn't seem to have any effect at all. The sound simply continues to play at full volume. Even something like this: dsound->play(); while(1) dsound->setVolume(); doesn't have any effect. (except that the App is caught in an infinite loop ^^). I already checked the function's return values and tried to tinker around with various priority levels and flags, but it didn't help. I simply can't change a sound's volume unless i give it some time to ... yeah what? settle in or something ... I tried changing the primary buffer's volume which worked just fine but doesn't really have the desired effect. So if anyone could give me any advice I'd gladly appreciate it. Thanks.