I am new to AviSynth+. I have footage from several shows of a performance run. I am making one video of about an hour for each show. I would like to normalize the sound levels of all shows to a preset level, e.g. "spend 5% of show time in the 95-100% range of sound". In Final Cut Pro, I used to do this manually by moving an indicator so sound levels would be in the yellow region above the green and below the red.
Is it possible?
+ Reply to Thread
Results 1 to 6 of 6
Yes, I have tried, and this works:
video = AviSource("video.avi") audio = WavSource("audio.wav").Normalize(0.98) return AudioDub(video, audio)
I'm far from an audio expert, but isn't that what Normalize does? Normalize(1.0) is right where clipping begins and 0.98 will work the same for all audio streams. Now, if one of them has some high volume passage then the rest of it won't become much louder but that's hardly the fault of the Normalize filter. Maybe you'll find the third party AudioLimiter filter useful, together with Normalize.
@miguelmorin, what you want's NOT normalize.
Normalize, or more rightly known as "Peak Normalization", just scans the file for loudest sample (e.g. "-18.5 dB") and then raises it to an arbitrary digital ceiling, along with the all the other samples in similar bit fashion. So if you want your ceiling to be 0dB (most common), it would take that example clip and raise the whole thing by 18.5dB.
The issue with this is that it doesn't track what is going on in the program and whether the loudest sample is an outlier or not. Which goes to what the "calculating what 0-98%" question is. Another example: speech vs. pop music vs. symphonic music - RMS of each is like -12dB vs. -18dB vs. -24dB, and those are just vague averages which don't account for mastering variation.
As manono mentioned, you want a limiter and/or compressor/expander. Even that doesn't work perfectly, as those don't account for what could be called the "duty cycle" (aka percentage of on vs. off).