Forums > MaxMSP

More clipping…

Mar 01 2009 | 3:02 am

I’m having another issue with clipping. I’m looping an audio sample via groove~. Then that signal is being sent to delay~. Then I have a slider going into the delay~ to alter the delay time. But when I change the delay time while the audio sample is still playing, it of course clips. I tried using deltaclip~ which works, except it alters the overall sound to much.

Anyone have any ideas?

Mar 01 2009 | 3:27 am

The clicks you hear while altering the delay time are most likely caused by discontinuities in the delay setting – i.e. you need to send some sort of "smoothed" change that avoids leaps. Not so easy to do using integers, as [delay~] requires. If you want to dynamically change delay times, I might suggest that you look into [tapin~] and [tapout~] and use a signal to change the delay time setting through something like [line~].

Let me know if you get stuck with that approach and I can probably dig up an example patch to show you.

Mar 01 2009 | 3:56 am

Thanks smill! I’ll have to try that out. Is it called a click? What’s a clip then?

Mar 01 2009 | 6:08 am

Clipping is distortion caused by exceeding the dynamic range of the system. In analog systems, the positive and/or negative peaks of the waveform are litterally clipped off if you look at it on a scope – hence the term ‘clipping.’

A click, on the other hand, is just simply any type of sudden spike or discontinuity in the waveform that is audible as a, well, click…

Mar 02 2009 | 1:24 am

with tap delays altered in such a way you are going to get a different artifact which is that strange tape delay pitch sweep (turntable style pitching up and down sort of sounds) there is also allpass~ which I think does a bit better job of not clicking.. but tap is great, I use it for most of my delays. You could also do really technical solution which is to do a sort of window/envelope that turns down the feedback delay audio for a very short time whne the delay time is altered, and that might take out the click.

Mar 02 2009 | 1:34 am

One possibility, as alluded to before, would be to "duck" the amplitude of the delay line output very briefly to mask the clip. But there’s another approach.

I think that we have Jedi Master Richard Dudas to thank for this particularly elegant way of handling matters. Whether or not it meets your specific needs will be a matter of your own personal tastes.

— Pasted Max Patch, click to expand. —
Mar 02 2009 | 2:08 am

great work gregory! though the solution you posted seems to work until I turn up the feedback all the way.. what do you think needs to be adjusted to fix this? could it have to do with sample vector size?

Mar 02 2009 | 8:06 pm

I think this is because the feedback loop operates independently of the crossfading between delay times. You may get better results by feeding back the output of the last *~ object rather than the tapout~ object.

Viewing 8 posts - 1 through 8 (of 8 total)

Forums > MaxMSP