[PD] removing clicks

matthew jones mj at isvr.soton.ac.uk
Mon May 23 10:35:02 CEST 2005


> filter which looks for discontinuities greater than a certain amplitude

Well at first that sounds just like a low-pass filter...
Which would probably ruin the sound of the signal passing through it.

Two things: you could write an abstraction/external to do a fancy non-linear 
filtering, based on a threshold.  I think I remember seeing stuff in Max 
related to this, like the 'temperature' of the signal which was simply the 
difference between this sample and the last (..?).  So you could possibly 
control the cutoff of the low-pass filter based on the output of a 1-tap 
high-pass IIR filter that simply gave you the difference between consecutive 
samples..  But this would bring plenty of difficulties related to reaction 
speed and distortion.  Oh, but you know when it is going to click..anyway..

Secondly, the nicest approach would be to use windows (or envelopes) where 
before you jump to a new place in the array, you begin fading in the new 
position output (and fading out the old position output).  If you use 
half-sine waves around 50ms in length as your windows then I would be 
surprised if you ever heard any more clicks.


Matt

-=-=-=-=-=-=-=-=-=-=-=-
http://www.loopit.org
-=-=-=-=-=-=-=-=-=-=-=-
----- Original Message ----- 
From: "Chris McCormick" <chris at mccormick.cx>
To: <pd-list at iem.at>
Sent: Monday, May 23, 2005 8:01 AM
Subject: [PD] removing clicks


> Hi!
>
> Though this seems to be discussed every second day on the music-dsp
> list, I couldn't find anything pd-specific in the archives. If anyone
> has a pd specific idea of implementation of this I'd be grateful,
> preferably using native pd elements (I'd rather build it as an
> abstraction than as an external).
>
> There's a GOP abstraction which I constructed some time ago and have
> been using for months. It's pretty elementary - loops drum beats and
> jumps between different positions in the beat. My problem is a decades
> old one - discontinuities in the wave-form at the jump time result in an
> audible 'click' when the amplitude of the wave is loud enough to hear it.
>
> Someone is painting the office downstairs so this might be a paint-fume
> infused dsp-n00b simplification, but I guess what I'm looking for is a
> filter which looks for discontinuities greater than a certain amplitude
> and only lets the wave jump by a smaller amount than that. Is there any
> way I can use expr~ to evaluate an expression which takes into account
> previous values which passed through it?
>
> Best regards,
>
> Chris. 





More information about the Pd-list mailing list