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

From: Johannes Lorenz <j.spam@email-addr-hidden-ho.me>
Date: Tue Sep 24 2019 - 21:38:19 EEST

A note-on event can lead to clicks in synths, which is often fixed by a
fade-in algorithm.

If the attack rate for a synth's signal is 0, the synth shall not click,
and still fade in as fast as possible. What is the best algorithm for
fading in a signal, that scales also with small buffersizes, like 32
samples per buffer (at 44100 samples/s)?

For example, in zynaddsubfx, we count the ascending zero crossings and
calculate the fade-in length upon it [1]. Then, an S-curve of that
length is multiplied with the signal. Counting zero crossings prevents
clicking on lower notes, and it makes higher notes more punchy. That
algorithm works very well for a buffersize of 256 samples (at 44100
samples/s), but it fails at 32 samples (since the zero crossings of 32
samples are often not representive).

Any papers, or experience with other synths? We currently need a good
solution for (at least) zynaddsubfx and the triple oscillator in LMMS.

Links:
[1]
https://github.com/zynaddsubfx/zynaddsubfx/blob/4e36e765f677dbc689461889e502d015c22966a5/src/Synth/ADnote.cpp#L1202-L1222
_______________________________________________
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:09 2020

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