re: Sound

Brian Hook <[email protected]> Mon, 16 May 2005 13:45:53 -0400
Newsgroups gmane.games.devel.general
Message-ID <2005516134553.118367@GATEWAY>
> IIRC what you're looking for is called "cross normalization". You
> don't average (add all channels together and divide by the number
> of channels) because dead channels will attenuate the output too
> much;

The other issue is how large a window you perform these operations on. 
 Clamping can be done per-sample-slice, but if you average per-sample 
then your volume is going to be all over the map.

>  Instead you add the absolute values of all the channels
> together (pseudo envelope) and then normalize each channel against
> this absolute value. To improve dynamic range this should be done
> on a logarithmic scale.

This is the similar to "riding the mixing slider", which works, but 
requires a lot more computational effort as you keep track of a 
sliding window and perform the normalization (via table lookup 
hopefully), along with a global volume atenuation.

Unfortunately it's still very susceptible to heavy transients, but at 
least loud sections get compressed down.

Something else to look at are compression/limitation DSP algorithms.

Brian




-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_idt12&alloc_id344&op=click
_______________________________________________
Gamedevlists-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gamedevlists-general
Archives:
http://sourceforge.net/mailarchive/forum.php?forum_idU7