re: [GD-General] Sound
Brought to you by:
vexxed72
From: Brian H. <ho...@bo...> - 2005-05-16 17:46:25
|
> 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 |