[FFmpeg-user] asubboost and asupercut

Paul B Mahol onemda at gmail.com
Sat Nov 28 23:09:54 EET 2020


On Sat, Nov 28, 2020 at 8:55 PM Michael Koch <astroelectronic at t-online.de>
wrote:

> Am 28.11.2020 um 19:18 schrieb Paul B Mahol:
> > On Sat, Nov 28, 2020 at 5:18 PM Michael Koch <
> astroelectronic at t-online.de>
> > wrote:
> >
> >> Am 28.11.2020 um 14:48 schrieb Paul B Mahol:
> >>> On Sat, Nov 28, 2020 at 2:46 PM Paul B Mahol <onemda at gmail.com> wrote:
> >>>
> >>>> On Sat, Nov 28, 2020 at 2:24 PM Michael Koch <
> >> astroelectronic at t-online.de>
> >>>> wrote:
> >>>>
> >>>>> Am 28.11.2020 um 13:44 schrieb Paul B Mahol:
> >>>>>> On Sat, Nov 28, 2020 at 1:35 PM Michael Koch <
> >>>>> astroelectronic at t-online.de>
> >>>>>> wrote:
> >>>>>>
> >>>>>>> Am 28.11.2020 um 12:57 schrieb Paul B Mahol:
> >>>>>>>> On Sat, Nov 28, 2020 at 12:41 PM Michael Koch <
> >>>>>>> astroelectronic at t-online.de>
> >>>>>>>> wrote:
> >>>>>>>>
> >>>>>>>>> Am 27.11.2020 um 20:50 schrieb Paul B Mahol:
> >>>>>>>>>> On Fri, Nov 27, 2020 at 8:24 PM Michael Koch <
> >>>>>>>>> astroelectronic at t-online.de>
> >>>>>>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>>> Am 27.11.2020 um 19:25 schrieb Paul B Mahol:
> >>>>>>>>>>>> On Fri, Nov 27, 2020 at 7:09 PM Michael Koch <
> >>>>>>>>>>> astroelectronic at t-online.de>
> >>>>>>>>>>>> wrote:
> >>>>>>>>>>>>
> >>>>>>>>>>>>> Hello,
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> I have a few questions about the asubboost and asupercut
> >> filters.
> >>>>>>>>>>>>> -- In asubboost it's not yet clear how the block diagram of
> the
> >>>>>>> filter
> >>>>>>>>>>>>> looks like. Especially the "decay" and "feedback" options are
> >>>>>>> unclear.
> >>>>>>>>>>>>> What's the input of the the delay line? Before or after the
> low
> >>>>> pass
> >>>>>>>>>>>>> filter? Where does the feedback go to? Before or after the
> >>>>> lowpass
> >>>>>>>>>>>>> filter? I have attached a sketch of a possible block diagram,
> >> but
> >>>>>>> it's
> >>>>>>>>>>>>> only a wild guess.
> >>>>>>>>>>>>>
> >>>>>>>>>>>> This filter just adds delayed sub frequencies set by cut off
> >>>>>>> frequency
> >>>>>>>>>>> back
> >>>>>>>>>>>> to output. Decay sets decay of old sub echo in buffer and
> >> feedback
> >>>>>>> sets
> >>>>>>>>>>> how
> >>>>>>>>>>>> much
> >>>>>>>>>>>> new sub frequencies are added to the delay buffer.
> >>>>>>>>> I did try to reverse engineer the asubboost filter from its
> output
> >>>>>>>>> signal. Is the attached sketch correct?
> >>>>>>>>> It seems the "feedback" parameter is unnecessary because it does
> >>>>> exactly
> >>>>>>>>> the same thing as "wet".
> >>>>>>>>>
> >>>>>>>> No, your reasoning is invalid.
> >>>>>>>>
> >>>>>>>> I do not have time to draw graphs or do consulting for free.
> >>>>>>> When you swap the values of "wet" and "feedback", the output does
> >>>>> always
> >>>>>>> remain the same.
> >>>>>>> If you think that I'm wrong, please show an example to prove the
> >>>>> opposite.
> >>>>>> Make sure that you take into account decay parameter, delay buffer
> is
> >>>>> still
> >>>>>> used.
> >>>>> When you swap the values of "wet" and "feedback", the output does
> >> always
> >>>>> remain the same, regardless which values you use for "dry", "decay"
> and
> >>>>> "delay".
> >>>>> As can be shown with this example:
> >>>>>
> >>>>> set "A=0.4"
> >>>>> set "B=0.7"
> >>>>>
> >>>>> ffmpeg -f lavfi -i aevalsrc='0.5*gt(t,0.1)':d=1 -lavfi
> >>>>>
> >>
> asplit[a][b];[b]asubboost=dry=0.3:wet=%A%:decay=0.4:feedback=%B%:delay=50[c],[a][c]join,showwaves=draw=full:s=800x300:r=1
> >>>>> -frames 1 -y out1.png
> >>>>>
> >>>>> ffmpeg -f lavfi -i aevalsrc='0.5*gt(t,0.1)':d=1 -lavfi
> >>>>>
> >>
> asplit[a][b];[b]asubboost=dry=0.3:wet=%B%:decay=0.4:feedback=%A%:delay=50[c],[a][c]join,showwaves=draw=full:s=800x300:r=1
> >>>>> -frames 1 -y out2.png
> >>>>>
> >>>>> ffmpeg -i out1.png -i out2.png -lavfi vstack -y out.png
> >>>>>
> >>>>>
> >>>>> Red is input step signal, green is output step response of the
> >> asubboost
> >>>>> filter. In the lower half of the output image the "wet" and
> "feedback"
> >>>>> values are swapped.
> >>>>>
> >>>> What we said previously about delay buffers and that above command?
> >>>> It was literally less than 24h.
> >> The previous example was "showfreqs" which has a frequency domain
> >> output. Not suitable for analyzing filters which contain delays.
> >> Now I'm using "showwaves" which has time domain output. That's a
> >> different thing. Of course delay lines can be analyzed in time domain.
> >>
> >>
> >>>> That command can not show you the action of delayed input as it is not
> >>>> designed for it.
> >> A step signal contains all frequencies and is the best possible source
> >> for analyzing unknown black boxes that may contain delays. You can
> >> replace the input by any other source, but you will never find any
> >> difference in the two outputs. It's a fact, "wet" and "feedback" are
> >> interchangeable.
> >>
> > Nope, you are very mistaken. Try with real audio.
>
> You can use this example with any real audio input you want:
>
> set "A=0.4"
> set "B=0.7"
>
> ffmpeg -i dog.mp3 -lavfi
> asubboost=dry=0.3:wet=%A%:decay=0.4:feedback=%B%:delay=50 -y out1.wav
> ffmpeg -i dog.mp3 -lavfi
> asubboost=dry=0.3:wet=%B%:decay=0.4:feedback=%A%:delay=50 -y out2.wav
> ffmpeg -i out1.wav -i out2.wav -lavfi [0][1]amerge,aeval=val(0)-val(1)
> -y out.wav
>
> out.wav is the difference between out1.wav and out2.wav, and it's
> perfect silence. Which means the two inputs are equal.
>

Ok, made the wet option do actually apply gain to final output.


> Michael
>
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-user mailing list