Thanks, Julius.

I think that there's an error in my code. When I calculate the coefficients
for smooth, I check if the slope is positive to select AT, RT otherwise.
I'm thinking that if the limiter is in the AT phase, the gain curve must be
decreasing and vice versa, right? So I should check for coeff = ba.if(in -
in' < 0, AT, RT);

Zölzer says that: "A small hysteresis curve determines whether the control
factor is in the attack or release state". I'm not sure if checking for the
slope gives the same result but I don't know how to implement a hysteresis
curve.

Despite correcting that, the behaviour of limiter_Z doesn't look too
different.

Dario

On Sun, 24 May 2020 at 04:32, Julius Smith <[email protected]> wrote:

> Interesting!
>
> Attached is my updated test and the plot it generates.  At this point I
> would go for "basic" with a reduced delay.  The lookahead avoids the
> initial overshoot, at the expense of adding 9 ms of audio latency, and that
> can be reduced.  It looks like the attack of Zolzer's is still adapting, so
> maybe that can be pulled back.
>
> Cheers,
> - Julius
>
> On Sat, May 23, 2020 at 5:56 PM Dario Sanfilippo <
> [email protected]> wrote:
>
>>
>> Great, my pleasure.
>>
>> Here attached is also Zölzer's algorithm. I'll need to double-check and
>> see if all is correct but it might be a good starting point.
>>
>> Dario
>>
>>
>> On Sat, 23 May 2020 at 23:31, Julius Smith <[email protected]>
>> wrote:
>>
>>> Cool, these are great to have for evaluation, learning, and variety of
>>> choice, thanks!
>>>
>>> - Julius
>>>
>>> On Sat, May 23, 2020 at 2:24 PM Dario Sanfilippo <
>>> [email protected]> wrote:
>>>
>>>>
>>>> Thanks for testing, Julius.
>>>>
>>>> I'll see if I can get the limiter in Zölzers book in the next few days
>>>> and I'll do another PR with that if I manage.
>>>>
>>>> I've also just added the stereo version of the other limiter:
>>>> https://github.com/grame-cncm/faustlibraries/pull/37/commits/12763e053c7fb84371cfaa17bf89f2c9a1821418
>>>> .
>>>>
>>>> Dario
>>>>
>>>>
>>>> On Sat, 23 May 2020 at 22:10, Julius Smith <[email protected]>
>>>> wrote:
>>>>
>>>>> Since the delay for the input path is our "lookahead delay", setting
>>>>> it to the attack time sounds ideal to me.
>>>>>
>>>>> On Sat, May 23, 2020 at 12:54 PM Julius Smith <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> I've been happy with limiter_1176_R4_mono, but I'll now compare it
>>>>>> to limiter_basic_mono, by offering both with a checkbox to choose, and
>>>>>> listen for the difference (see attached test program).
>>>>>> My limiter needs are merely to turn hard-clipping into soft-clipping
>>>>>> for voice and tonal instruments.
>>>>>>
>>>>>> I believe the "limiter slope" is the compression ratio to use above
>>>>>> threshold (4 in the case of  limiter_1176_R4_mono).
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sat, May 23, 2020 at 3:57 AM Dario Sanfilippo <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>>
>>>>>>> Hi, Julius. I understand.
>>>>>>>
>>>>>>> See this:
>>>>>>> https://github.com/grame-cncm/faustlibraries/pull/37/commits/8f1bd1ba78ff4919637a9bfd9ec635225cfb4ba5
>>>>>>> .
>>>>>>>
>>>>>>> That's a basic lookahead limiter based on this post:
>>>>>>> http://iem.at/~zmoelnig/publications/limiter/.
>>>>>>>
>>>>>>> This algorithm is even simpler: it just calculates the amplitude
>>>>>>> profile using a peak-holder and it smooths out attack and release using,
>>>>>>> respectively, a one-pole lowpass and a peak envelope. Those filters are
>>>>>>> based on the e^(-2pi) time constant (Chamberlin's design for 1pole
>>>>>>> filters). This time constant works in this case as the input delay is 
>>>>>>> set
>>>>>>> by the attack of the system, so the amplitude profile to calculate the
>>>>>>> scaling factor roughly reaches its maximum after the attack time. The
>>>>>>> release time might be changed with some other constant, if more 
>>>>>>> appropriate.
>>>>>>>
>>>>>>> Personally, I'm satisfied with it but I also designed it for my
>>>>>>> specific case, that is, stability in self-oscillating systems. I needed 
>>>>>>> a
>>>>>>> cheap solution with low distortion; I'm not sure if this works well for
>>>>>>> most applications. People are invited to test and comment.
>>>>>>>
>>>>>>> I had a look at Zölzer's limiter, pp 231 and 232, but I don't quite
>>>>>>> understand what "the slope of the limiter" is. What do you think?
>>>>>>> He also doesn't mention a specific delay for the input path but I'd 
>>>>>>> assume
>>>>>>> that it is the same as the attack time.
>>>>>>>
>>>>>>> Dario
>>>>>>>
>>>>>>>
>>>>>>> On Sat, 23 May 2020 at 01:38, Julius Smith <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Dario,
>>>>>>>>
>>>>>>>> Yes the current limiter is simply a compressor, using the usual
>>>>>>>> (causal) amplitude follower, that applies a ratio of 4 starting 
>>>>>>>> halfway up
>>>>>>>> (-6 dB). Please feel free to make us a new one that is nicer!
>>>>>>>>
>>>>>>>> Julius
>>>>>>>>
>>>>>>>> On Fri, May 22, 2020 at 11:19 AM Dario Sanfilippo <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hello, list.
>>>>>>>>>
>>>>>>>>> Am I missing something with co.limiter_1176_R4_mono? I see that
>>>>>>>>> there is no lookahead mechanism inside and, if I test it with a song 
>>>>>>>>> at
>>>>>>>>> +60dB, the output of the limiter is rather consistently at about 25 
>>>>>>>>> dB.
>>>>>>>>>
>>>>>>>>> Best,
>>>>>>>>> Dario
>>>>>>>>> _______________________________________________
>>>>>>>>> Faudiostream-users mailing list
>>>>>>>>> [email protected]
>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>>>>>>>>>
>>>>>>>> --
>>>>>>>> "Anybody who knows all about nothing knows everything" -- Leonard
>>>>>>>> Susskind
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> "Anybody who knows all about nothing knows everything" -- Leonard
>>>>>> Susskind
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> "Anybody who knows all about nothing knows everything" -- Leonard
>>>>> Susskind
>>>>>
>>>>
>>>
>>> --
>>> "Anybody who knows all about nothing knows everything" -- Leonard
>>> Susskind
>>>
>>
>
> --
> "Anybody who knows all about nothing knows everything" -- Leonard Susskind
>
_______________________________________________
Faudiostream-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to