[PD] Re: removing clicks

Chris McCormick chris at mccormick.cx
Tue May 24 03:30:48 CEST 2005


On Mon, May 23, 2005 at 07:49:04PM +0900, hard off wrote:
> the common way people do it is to send a line message to send the
> audio level to zero at the start and end of each sound / loop /
> whatever.  a line ramp taking only 5 or 10 milliseconds usually works.

Hi,

Thanks for the tip - I tried this one but for drum beats with long bass
noises the tremolo was very noticeable, and quite annoying.

> i was doing this for a long time, but now i crossfade the end of the
> first loop / beat, with the start of the next loop / beat.  this means
> you don't get an audio drop (even a tiny one) at the end of each loop.

Sounds good, I'll try that one out. For the sake of search engines I am
now going to write the words de-click and getting rid of clicks.

Best,

Chris.

> On 5/23/05, matthew jones <mj at isvr.soton.ac.uk> wrote:
> > > 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. 
> > 
> > 
> > _______________________________________________
> > PD-list at iem.at mailing list
> > UNSUBSCRIBE and account-management ->
> > http://lists.puredata.info/listinfo/pd-list
> >
-------------------
chris at mccormick.cx
http://mccormick.cx




More information about the Pd-list mailing list