[16 bit, float]

Normalize

Normalize(clip, float "volume", bool "show")


volume: poziom normalizacji w procentach (przy czym 1.0 -> 100%)

show: jeżeli przyjmie wartość "true", to wtedy zostanie wyświetlona maksymalna wartość wzmocnienia, przy której nie występują jeszcze zniekształcenia


Filtr ten wzmacnia cały sygnał audio do poziomu, w którym nie następuje jeszcze przesterowanie (obcinanie szczytów fali).

Domyślnie sygnał audio jest wzmacniany tak, że po wzmocnieniu wartość szczytowa sygnału będzie się znajdować na poziomie +/- 1.0. Ten poziom gwarantuje brak obcinania wartości szczytowych, wartości wyższe powodują przesterowanie i tym samym zniekształcenia dźwięku.

Począwszy od wersji 2.08 został dodany dodatkowy argument show. Jeżeli jego wartość jest równa prawdzie ("true"), to wtedy wyświetlona zostanie maksymalna wartość wzmocnienia, przy której nie występują jeszcze zniekształcenia.

Kanały stereo nigdy nie są wzmacniane oddzielnie przez ten filtr, nawet jeżeli bardzo się różnią wartością maksymalną. Po określeniu maksymalnej amplitudy każdy z sygnałów jest wzmacniany w jednakowy sposób. To oznacza, że jeżeli np. będą dwa kanały, które będą się znacznie różnić poziomem głośności, to maksymalna amplituda z "głośniejszego" kanału będzie wyznaczać maksymalny poziom wzmocnienia dla "cichszego" kanału. Np. kanał lewy ma maksymalną amplitudę równą 0.7, a prawy 0.3. Tak więc parametr wzmocnienia będzię równy (1.0/0.7) =~1.43 dla obydwu kanałów. W rezultacie po normalizacji kanał lewy będzie miał maksymalną amplitudę równą, ~1.0 a prawy ~0.43. Jeżeli chcesz oddzielnie normalizować każdy z kanałów to najpierw należy je rozdzielić filtrem GetChannel. Efektem ubocznym użycia GetChannel będzie konwersja sygnału audio do wartości całkowitych z przedziału 0-65535 (próbki 16-bitowe).


Przykłady:

video = AviSource("C:\video.avi")
audio = WavSource("c:\autechre.wav")
audio = Normalize(audio, 0.98)
return AudioDub(video, audio)

#

normalizacja sygnału do poziomu 98%

 

video = AviSource("C:\video.avi")
audio = WavSource("bjoer7000.wav")
left_ch = GetChannel(audio,1).Normalize
right_ch = GetChannel(audio,2).Normalize
audio = MergeChannels(left_ch, right_ch)
return AudioDub(video, audio)

#

normalizacja każdego kanału osobno

 

clip = AviSource("D:\Video\rawstuff\stereo-test file_left(-6db).avi")
left_ch = GetChannel(clip,1).Normalize
right_ch = GetChannel(clip,2).Normalize
audio = MergeChannels(left_ch, right_ch)
AudioDub(clip, audio)

#

normalizacja każdego kanału osobno


translated by Dj_AnT