Apply arbitrary expressions to samples in frequency domain.
- real
-
Set frequency domain real expression for each separate channel separated by ’|’. Default is "re". If the number of input channels is greater than the number of expressions, the last specified expression is used for the remaining output channels.
- imag
-
Set frequency domain imaginary expression for each separate channel separated by ’|’. Default is "im".
Each expression in real and imag can contain the following constants and functions:
- sr
-
sample rate
- b
-
current frequency bin number
- nb
-
number of available bins
- ch
-
channel number of the current expression
- chs
-
number of channels
- pts
-
current frame pts
- re
-
current real part of frequency bin of current channel
- im
-
current imaginary part of frequency bin of current channel
- real(b, ch)
-
Return the value of real part of frequency bin at location (bin,channel)
- imag(b, ch)
-
Return the value of imaginary part of frequency bin at location (bin,channel)
- win_size
-
Set window size. Allowed range is from 16 to 131072. Default is
4096
- win_func
-
Set window function.
It accepts the following values:
- rect
- bartlett
- hann, hanning
- hamming
- blackman
- welch
- flattop
- bharris
- bnuttall
- bhann
- sine
- nuttall
- lanczos
- gauss
- tukey
- dolph
- cauchy
- parzen
- poisson
- bohman
- kaiser
Default is
hann
. - overlap
-
Set window overlap. If set to 1, the recommended overlap for selected window function will be picked. Default is
0.75
.
Examples
-
Leave almost only low frequencies in audio:
afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'"
-
Apply robotize effect:
afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75"
-
Apply whisper effect:
afftfilt="real='hypot(re,im)*cos((random(0)*2-1)*2*3.14)':imag='hypot(re,im)*sin((random(1)*2-1)*2*3.14)':win_size=128:overlap=0.8"
-
Apply phase shift:
afftfilt="real=re*cos(1)-im*sin(1):imag=re*sin(1)+im*cos(1)"