[FFmpeg-user] asubboost and asupercut

Michael Koch astroelectronic at t-online.de
Sat Nov 28 18:17:58 EET 2020


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.

Michael



More information about the ffmpeg-user mailing list