Ways to combat osc clickthump


#1

I’ve been noticing a click or thump when building bigger bass patches with lots of low end. My question is: Are there other ways to declick the transient other than upping adsr values? Because I still want a sharp attack, just minus the click. Cheers!

Clickthump.audulus (12.1 KB)


#2

Clickthump Synced.audulus (12.2 KB)

It’s worse synced.


#3

I’m guessing it is values jumping too quick and causing a tear. So, I’m thinking one way would be to use a log/exp adsr. But I also imagine there must be some sort utility that can kind of “round off” the upper sharp corner (and perhaps the bottom edge as well to make a "S shaped curve”) of a fast attack. Or some way to take the click, flip it, add it back using sample delays, and nullify it like noise cancelling headphones. Or maybe some sort of ultra fast "transient limiter” or “transient compressor”…


#4

I pretty much want it to make the attack sound like an electric bass in picked, plucked, and slapped forms (eventually I’ll want to figure out bowed attacks as well). Any help appreciated. I’m a bit of a newbie to all this stuff still.


#5

Another approach might be to phase modulate the attack of your bass sound so you get added harmonics without added dynamics.


FM thump .audulus (20.1 KB)


#6

Interesting! Will try. Thanks!


#7

"There’s more than one way to skin a cat” seems to fit into this.


#8

You might want to try this ASDR. Variable Curve ADSR Envelope Generator You can vary the curve for the attack, release and decay from exponential to linear to log. NO sigmoid curves at this point, but it’s an interesting idea There’s also a smoothstep() function which produces an s curve and might be able to accomplish a “declick”.


#9

That adsr was the first thing to come to mind. That thing is great. Still, would like to explore other lightweight/simple options as well. Will look into that smoothstep() function. Thanks!


#10

Somehow using really fast glide on the gate signal is another idea. Don’t know if that’s possible.


#11

I may be way out to lunch, but what about instead of a subtractive approach, you use an exciter?

*keep in mind, I am usually out to lunch. Is Karplus-Strong subtractive?


#12

It’s a bit hard to say. Since the heart of Karplus-Strong is a highly resonant filter which you excite with a noise burst, you could look at it as filtered noise, which would be subtractive. On the other hand you’re generating a complex waveform initially, rather than filtering something simple, so you could argue it’s more of an additive approach. In the end, I’m not sure it fits either category very well.


#13

What I’m thinking is the way a bass string is plucked. Your finger first muffles the previous note quick, then pulls the string back before the note is to be played, and then lets go to play the note. In my patch above, that muffle and pull back isn’t there. Maybe you need to “preload” the upcoming note using that note a few octaves down. That quick (low enough that you don’t hear) wave could maybe flick into a clean start. And I’m guessing the phase of the wave should start at 1 and not 0 as when you use sync.


#14


#15

You’d probably have to use a delay or sequence the bass ahead of everything else to get that premeditated preload in there.


#16

This works great for sine waves! Lightweight too!


#17

I think you are thinking of a different string modeling technique. Karplus-Strong is just a delay line and a lowpass filtered noise.


#18

S Shape Small.audulus (116.1 KB)

S Shape Large.audulus (113.2 KB)

Found this chainable adsr in the old files. Can make S curves if you line up the gate. Seems to work.


#19

I stand corrected. There is a low-pass filter in the feedback loop that feeds the delay line but it’s not resonant. I was thinking of the Peng! style circuit. I think the rest of my comment is still valid since there is a filter involved and you are subtracting the higher harmonics with each pass through the delay.


#20

I remember that one. Very flexible, but a bit of a CPU hog.