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?
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.
Thanks smill! I’ll have to try that out. Is it called a click? What’s a clip then?
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…
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.
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.
----------begin_max5_patcher---------- 2443.3oc6c0sjhaqD9ZlmBW9jqRHao+rk74T4hyKPdARkZJC3g0YAaJvytaR pLO6wVs.rWvFg+ULq1p1Ajw1z8W2pk51Re72OMycQ5WiN357ec9MmYy96mlM SdnhCLS0dl61vutbS3A4o49xlzjW25NG9nOlE80rkoaR2C2CzGDbjmPL+puC +AjyuO+zMMda9MJ+xxOr5foulsIJK6O2EA2thusvL24NtKBSV6d5heIMIKIb q7rb++6iC2bTfx1GeXY3F4mf9Pf5n4RbbR9cVpBX0AiWIu7zE+wOicKciOD+ WxKGSNIW4W8QgEc5f6ByV9w3j0OuOZYFHuL40jekrhWndE+kfJo04BBniRIg nN5h0UgP+7+wme02Igvhq5ed5oh+LWSyV9W7hn8c2rcgEJNYDrOjaXethofh XfoPZDXLywTjktdcN.zDfVVHaDXnt0i.DRQGKGe9QUuQ..2BMYazgCgqOoJE NUxieHKbe1WhSVk9kZUScbVpn8jK0d186VvjcPoH+hWDARWDwHAJo6FTzv69 QCOYmCJkV7B2a.PijnujKaW.FqBW9lam0X+6WiwToMm5KegeqvBn9Sk+w2xi cPp0C3P75jbMuG7C32OpPPTnag7EOw.DqXpQEQ68UFPT4c4roB5oYSQ7jCfQ fQvXAlyP30EiOcWTxfFiGiZgarubvt.IXxDiWP9CuraS3e9lyM6dOu76z027 lPEt083wDIhoZ0fKGUczCge9nJ8e9Uo5.pdway+Oo3VhB7yuYH3Ht+O2d0wa SZ5Nme.Or9dsXV3p4fB9ddjAv2qOmMMtooSq7F.UYPlNcMci14bXaZZ1GedU TtOUeOTI8Jv.q0yff.oagw3agOkuUQ6UnhBVx+hi2D84n8GhSSJc1ybKYNjV .OoMwGIavJ51d76qXbfMoK+TjTuPGO3pnWtm6QQ.8ymu7Lp7mpmYbxt8QGhR xByTBd4u2vW2j870Qzpe9KgKip8hupIcl658wqRSji+T9JKN7wutb8ELNdkk a4YjDt6JWbVZ5lEg6+b7g3Evb.NYGxcjCyGDOLKJKFjGB5z0Euc2dY+tR2qJ 0YpjktRmhJG+a5brLc61nhZMb9yO0C4knnUKBW9oxeX8XUcQBpqnPMzSn17p PvTV.7FcQvh5xzX1wfFvalO.XkLHhizp0qnEo8nEgglRzpRX2FxNQqvt2KZR tNZRaOZRgpZP8XWOqk5FrZ3Qyr7nLul8VQnhgDRK6fVIS.tOhKXEws4n.AR9 NAFy88pjLUcUYpM1Be4TdHBw4xMYL1h3j2xCTcCaQ94sLMIQpQ8q8.CCgJBP 3.e4fop20fovqylBrOZRLER3nQjFRN+aEmyvH55Phuay5MSPJEb8hr+pepYJ 6ELRRw2l667Xt716bEHwUJ.x1PtcNjqn8lBNj4AOvFwsOh3FzUKwTEvsAKQb RyQhKWyfdJ1BF0dbT8PkoAp7TMGf7W9EG7nijcHsLFLG.pOTJTx22tjcHiML AlTAjqlg4RhFcjrCYqg4lpK45vrHmlmGlr718MX1gzsHbXsNvjku2Wm4gQFo A+cV3D6rnQzT9fOle8UTSeURqNj.EQU8PnPubpFfKsGA2J04Wyt1ZAI2JAJk SElQzOCpwwo5mlfQe4cu2IBRVhabYf2r+SM4eiEtZ0u4wIA7C6hhVsIdaQoX aN7ee6bEz4nSPZeXDdjctfa6cWybjqNoP4qVJi536fFAema2S5ZkSPmNSDrV .hg0Wp5CkuZmoe.mmw+n1KhP5bplLp37DnFww5LLfj18DjlHfrgn6ahShd6F SbnlEiSegqrt6fBS+jSLmY3C3JZJwUut6uZd35O91D7n.H9c9AM4AdplTsQl Fnj20JHOUHYSqhhvWWEm5DmzyqghN7bOfpC200Pw40ETQ7rZVvNxu8hO+5f3 gzW2u7nS0wR15TURVEcHKN4zxj52NWkbGbkS7iwqVUcYIAqf3U6RySWSIfvR o7ll86Vt80UtuTAmR4VWwlZTncwzBzRrKBNaRxMQW4lYTdIxNaZI2DyRt8tm nIlibytidkOdRMw2nDac8QLqtjDcGnzqchs.8gh0cArc+n4yt5XqARenCq5P CDEZ.UnVrsv5drRKL7nfNpqL+ASWkgkv5DVhYVSxgqa3TCa3KsmbF27F9hni baVQTKJNud3smYI2Bck6.yRt0M3Yw533gLoI5CYRSbyJ4Cc8RHFVuRsSZh9f l7gYkzDQW4lXV92h6nWoAg15NmJhYkhJw+wTtE2iys4H15NiJgYEBjMrhMQ3 WjqFAdTTPJqxFScR2l07C4CqTiQbYt0b3QW6qVyVkagAR0RUTghFWUUUGLWm OyUBqdNWzhVl8bXV193EulAOpgx6.7asgoaXuP23dot1Cdqckcca75MoKB2n 1F6mNG2mNiBOpr.fW64Oi.1HwB.TDPTGxZ9HDvxQOPbez.fF2DKO.X4AfVwC .HnljVd.Pm0vopvzBKO.zK7..ryRXb6lRcx4A.fnEIBrcWoN07.fmZvO52Y7 ..PumTgkG.FPd..C7opvFxcp4A.efZWgkxpMh6DxC.fkXpB39NhG.PPD7.hk G.5HO.n38Zfhrr7.P621.XkKI0xC.cjG.7MUWxGRd..7DgpQZ4Af9kG.f8uc f+2az.fpJwdVZ.niz.fZXB72Wz.fh1CDVZ.XHoA..kgr9d2PC.PFTdAbKM.T FPLr9RuinA.HSSFEaoAftQC.3IEHe+RC.JGT3W1DKM.zaz..1Tw0GOZ..pwj G3oZoA.dWKf7TgjOXz..oOVBEVZ.vRC.VZ.vRC.VZ.vRC.VZ.Xrk5Aeayigs Mu5WcI0LFJ25zuRtLfh.Bl9ceQKUVNUpAvOniG0GhkF.rz.fkF.rz.fkF.rz .fkF.rz.fkF.rz.fc6z+nSeAOnz.vfug54Ax8Pu+wUr0wFVZMXL2O8HX+zq9 QwCejV5N2RsAjUYrVz38DiGXoA.fF.jvY0GqBvJ.eqUTwM.WFtnrQoojzOkc 4kVsu0hwH.+H5K8.oH1oVfY6BJLPWgknqvh0WXoXnGhGrzA8DmZ0QgMPCgke exZGkHsr0dcwVW7audOYqo5HrUcHFZ7iqgH4OtVTllNYiGHIerkXc5jNdxDQ WG+VG2nfiRFw3Fh6SVI9.uGEnVs47Ss5nrJzrGw3Yp85eIBJyu52TSLSbpUG EUV+Kpd3gQTwdZ5TNxwYzpS8HJSZEnAeexDgBiopVYxfQECq6ytIsnAPZwbu ARZoCfzVQlxa7OO8u4ZAIkC -----------end_max5_patcher-----------
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?
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.