Wavetable interpolation at loop points

christiancurtis's icon

Does anyone know where I'm going wrong here? I'm writing the function envelope into a buffer, so I can use the curve functionality and have breakpoint envelopes that will loop at audio rate. The problem is that I'm getting a click on every cycle. I'm pretty sure the issue is with the way the wave~ object interpolates at the loop point. If I turn the interpolation off then the click disappears. The problem is that I need the interpolation so I can adjust the playback speed without getting artefacts, but I don't want it to interpolate at the loop points as that's screwing up the cycles. Is there a way of doing this with wave~ or should I be using another object? I tried play~ but had the same issue. Not sure what else to do as the these are the only 2 wavetables I know of that are phasor driven and interpolate.

Max Patch
Copy patch and select New From Clipboard in Max.

christiancurtis's icon

Actually, I've just been looking at it again and it's not quite as simple as just the end loop interpolation. If I use multiple breakpoints, even if I'm jumping to different places within the file that have the same sample value, I still get clicks. In the example below, I'm jumping between different points in the waveform but it's only ever jumping from one 0 crossing to another, but I still get this unwanted sound for each move.

Max Patch
Copy patch and select New From Clipboard in Max.

christiancurtis's icon

I just realised I left a couple of objects in the previous patch that I was just using for testing, so here it is again without them. Any advise greatly appreciated. I can't work out where these clicks are coming from...

Max Patch
Copy patch and select New From Clipboard in Max.

christiancurtis's icon

I've added an example into the patch to show that the clicks don't occur when using curve~. Only when playing the curve back through the buffer and wave~ objects.

Max Patch
Copy patch and select New From Clipboard in Max.