I mentioned in a discussion yesterday that I sometimes get clicks when using APan when modulating the knob with a ‘cv’.
In trying to come up with a clean simple example, I noticed that I also get surprising clicks and transients without the APan node being involved.
Take a look at the attached patch. It is just a clock driving the 4-step sequencer driving the K35 Curve synth. As you crank up the clock towards halfway, you get clicks at the note onset, even though the attack is not super fast.
I suspect my auto pan clicks are related.
Any idea what is causing the clicks?
Click cause research.audulus (145.1 KB)
Clicking like this is almost always due to an instantaneous change in amplitude. Stick a saw wave LFO into a speaker and you’ll see what I mean. Despite the attack being low, the envelope modulation is resetting quickly to 0, causing the click. If you have an autopan where it’s quickly modulating left and right, you’ll get the same thing.
Instantaneous change creates infinite harmonics, and that burst of noise you hear is a burst of harmonics as the speaker/headphone tries to snap into a new position without being able to do it smoothly.
What to do about the envelope? Just use the Analog Envelope here - it’s not susceptible to that happening.
Analog Envelope.audulus (22.7 KB)
How to solve it with your autopan - just like you were doing, add a little slew and it will smooth out clicks.
As @biminiroad pointed out, the ADSR module used in this synth resets to 0 when a new trigger is received. If the output of the ADSR hasn’t reached 0 before a new trigger is received you will get an abrupt transition from the current ADSR output to 0. Since this is connected to the output level, you will get a click whenever the clock rate is faster than the cycle time of the ADSR. There are other ADSRs that do not reset on a retriever. Some ignore the trigger until the current cycle is complete and some start a new cycle from the current output level. Each approach has its advantages and disadvantages.
You have also connected an external speaker node as well as having the internal speaker in the synth turned up. The two nodes will add and result in clipping the audio output at higher volumes. You should use one or the other, but not both. Audulus will clip output audio at -1 to 1. This hard clip is generally undesirable since it introduces pretty harsh distortion.
After experimenting more after posting that example, I think that the clicks I am encountering are mostly envelope related. The autopan was less implicated than I thought.
I didn’t think to focus on those earlier as I have used a lot of synths over the years and never had issues like that except when the attack was short to non-existent – which wasn’t the problem here.
I guess I will have to dig into the guts of the non-problematic envelope and re-examine the envelope modules that I am using in my synth. (Mostly AR style envelopes and the Slope module from 0-Toast.)
@stschoen: thanks for the insights. Btw, the speaker connection was unrelated to the issue I was having. I subbed in that synth at the last minute when I realized that the issue could be reproduced without my ugly monstrosity of a synth and also without the autopan module that I had originally pegged as the culprit. I had the K35’s speaker turned all the way down for most of my testing.
Do you now what strategy Buchla envelopes and 0-Coast modules use to avoid clicks when a new note starts before the previous note’s envelope has completed its cycle?
I’m pretty sure most analog envelopes work like the analog envelope module you see there - it’s a network of charging and discharging capacitors, so I don’t know if any analog envelope can discharge and reset from 0. Might be wrong, but almost certain most of the envelopes, especially for west coast stuff, are mostly just attack-release.
As @biminiroad says, most don”t reset to 0 at retrigger. I believe most start a new cycle from the current value. The built-in ADSR node behaves like this and is very CPU efficient. It has a linear output but is fine for many applications. Here is an exponential AR and a variable curve ADSR. Each segment has a level, time and curve control. The curve varies from exponential to linear to log. Because you can adjust the release level as well as time, it is possible to have the unit go low on attack and high on release.
Envelopes.audulus (69.4 KB)