http://bugs.winehq.org/show_bug.cgi?id=30811
Cory cory.gugler@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |cory.gugler@gmail.com
--- Comment #9 from Cory cory.gugler@gmail.com --- (In reply to comment #6)
The following scripts are for fixing the symptoms, not the problems source, which lies somewhere within games and/or wine sound engine. Use these scripts from games directory. The first one is necessary, the second one not really. Both use Sound Exchange. Original audio files are not overwritten, but modified copies are made and then linked as primordial directory. Dithering is also added with no resampling. These scripts could be used with PlayOnLinux.
DIR0=fx;DIR1="$DIR0.org";DIR2="$DIR0.mod"; if [ ! -d "$DIR1" ]; then mv -v "$DIR0" "$DIR1"; fi; if [ ! -d "$DIR2" ]; then mkdir "$DIR2"; else rm -v "$DIR2"/*; fi; for FILES in $DIR1/*.wav; do FILE="`echo $FILES|rev|cut -d '/' -f 1|rev`"; sox "$DIR1/$FILE" --norm=-1 "$DIR2/$FILE" pad 0.1 2.4 rate -v 22050 dither; done; cp -nv "$DIR1"/* "$DIR2"; if [ ! -L "$DIR0" ]; then ln -sv "$DIR2" "$DIR0"; fi;
DIR0=voices;DIR1="$DIR0.org";DIR2="$DIR0.mod"; if [ ! -d "$DIR1" ]; then mv -v "$DIR0" "$DIR1"; fi; if [ ! -d "$DIR2" ]; then mkdir "$DIR2"; else rm -v "$DIR2"/*; fi; for FILES in $DIR1/*.mp3; do FILE="`echo $FILES|rev|cut -d '/' -f 1|rev`"; sox "$DIR1/$FILE" --norm=-1 "$DIR2/$FILE" pad 0.1 2.4 rate -v 22050 dither; done; cp -nv "$DIR1"/* "$DIR2"; if [ ! -L "$DIR0" ]; then ln -sv "$DIR2" "$DIR0"; fi;
It seems the sound buffer doesn't quit the right way on "cpu review your
options.wav". I did not find any significant offset in the audio, so maybe some other factors play a role here. However looping occurs on the last seconds of sound file, that probably stays in buffer forever, since it doesn't quit right. Therefore using soxs pad function (extending original audio file) fixes the problem. Clicks and stuttering seem to be related to sound file amplitudes, so reducing gain (sox INFILE OUTFILE gain -3) or normalizing audio to lower level like in the scripts fixes that problem. Resulting sounds in the game play more nicely with no stuttering, clicking and looping. They are a bit delayed, however this seems to be a problem of game engine. If problems with long sound files occur, one could loop them (sox INFILE INFILE INFILE OUTFILE).
Wine-1.5.12-157-gbdf9a9f from repository OpenSUSE 12.1 x86_64 AMD FX Bulldozer 8150 Asus M5A99X EVO G.Skill 16 GB DDR3-14900 AMD/ATI Radeon HD 4850 with Fglrx 12.4
Worked great for me. For anyone trying this now you may need to change: --norm=-1 to --norm in the scripts above.