Anyhow, the gist is that it's possible that SDL_mixer's volume routine is buggy and happens to be working when adjusting the audio for OSS's device format, but not the data format ALSA is expecting.
Can those having problems please compile the above attachment and run it a few times:
You'll need the compiler tools (apt-get install build-essential, I think) and the SDL development package (apt-get install libsdl1.2-dev, I think).
Argh, my comment got eaten.
Anyhow, the gist is that it's possible that SDL_mixer's volume routine is buggy and happens to be working when adjusting the audio for OSS's device format, but not the data format ALSA is expecting.
Can those having problems please compile the above attachment and run it a few times:
You'll need the compiler tools (apt-get install build-essential, I think) and the SDL development package (apt-get install libsdl1.2-dev, I think).
Compile it:
gcc -o test-sdl-audio test-sdl-audio.c `sdl-config --cflags --libs`
Run it: ER=assdf ./test-sdl-audio ER=alsa ./test-sdl-audio ER=oss ./test-sdl-audio
SDL_AUDIODRIV
SDL_AUDIODRIV
SDL_AUDIODRIV
Then please post the output from all three runs to this bug report. The first run will produce an error, that's okay, it's just a sanity check.
Thanks!
--ryan.