Re: [LAD] Click-free fade-in algorithm for synths?

From: Tim <termtech@email-addr-hidden>
Date: Wed Sep 25 2019 - 02:12:47 EEST

On 9/24/19 4:26 PM, Paul Davis wrote:
>
>
> On Tue, Sep 24, 2019 at 12:38 PM Johannes Lorenz <j.spam@lorenz-ho.me
> <mailto:j.spam@lorenz-ho.me>> wrote:
>
> Counting zero crossings prevents
> clicking on lower notes, and it makes higher notes more punchy.
>
>
> There's fundamentally no such thing as a zero crossing. You might have
> two samples on either side of zero, but you still don't have a sample
> *at* zero, so in the general case, truncating one of them to zero and
> starting/ending there is still going to give you distortion and/or
> noise. Obviously there may be cases where one of them is close enough to
> zero for this not to be be an issue, but it's not a general method.
> Ardour applies declick fades every time the transport starts and stops.
> You can read about how we do it here:
>
> https://github.com/Ardour/ardour/blob/master/libs/ardour/ardour/disk_reader.h#L135
> https://github.com/Ardour/ardour/blob/master/libs/ardour/disk_reader.cc#L1445
> https://github.com/Ardour/ardour/blob/master/libs/ardour/amp.cc#L163

Hi Paul. Thanks, I was going to mention that.

We had a similar conversation a few years ago when I was adding
  anti-zipper noise to MusE, and I inquired about zero-crossing methods.

I replied that TV and amplifier electronic volumes use zero-crossing,
  so why not use it?

But I conceded the very point you mention above, ie. where exactly is
  the crossing point.
And it is dependent on frequency so you get a different attack result
  each time.

In a TV or amp volume chip it's OK but here, meh...

So in the end, looking at the code given above, I can see I did much
  the exact same thing as Ardour, using a fixed coefficient value
  driven by time passage (sample rate).

Cheers.
Tim.
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Wed Jan 1 02:16:10 2020

This archive was generated by hypermail 2.1.8 : Wed Jan 01 2020 - 02:16:10 EET