SoundTouch in SC?

Hello,

Is there a quark or extension with the SoundTouch library? Any other higher quality Pitchshifter? “PitchShift.ar” is a little basic…

cheers, Benu

(i love PitchShift.ar)

The classic chop’n crossfade type can be interesting for it’s artefacts, but sometimes something smoother is nice too. I love reapitch in reaper which is SoundTouch. If I could code, I’d invest the time to port SoundTouch to SC, but I’m still a lamer at some point.:slight_smile:

Is SoundTouch open source?

Hi Josh,

yep it’s open source https://surina.net/soundtouch/ https://gitlab.com/soundtouch/soundtouch

Since I have the occasion: Thank you for your great work on SC.

cheers, Benu

well… thanks for the thanks!

and for the link. Since I did the Warp1 work, I’m curious to see how similar it is.

Cheers

On the one hand it’s true, on the other hand I think its bad reputation also comes from the fact that many people are not aware of the possibilities of fine-tuning parameters. If you split the dispersion params into mantissa and exponent you can tweak PitchShift to deliver pretty good results:

https://www.listarc.bham.ac.uk/lists/sc-users-2017/msg55080.html

Of course fine-tuning makes sense also with other ugens, including Warp1

Not sure if it is generally known about, but there is also WarpZ in sc3-plugins. It is Warp1, but it tries to find a zero crossing in the audio signal in the buffer to get a little more correlation. What it mostly can do in harmonic sounds is preserve upper partials better… makes the results a little more crisp at the cost of some CPU cycles.

What I saw in the quick glance at SoundTouch is that they do something very similar! More robust, but they try to find a window in the sound that correlates well with the overlapping grains.

Finally - to get the best stretch effect on a sound, I tend to do a mix of WarpZ and PV_BufRd. It can be a little tricky to set up initially, but you kind of get the best of both worlds in granular and FFT approaches to time stretching. The strengths tend to overshadow the faults of both techniques.

1 Like

Thank you Daniel and Josh for the hints.

I’ll try tweaking “PitchShift.ar”. I don’t really understand the splitting of dispersion params in the example.

If I understand right Warp reads a buffer. Is there a convenient way to use it realtime?

How do you mix WarpZ and PV_BufRd ? Literally mix the audio? If yes: any phase issues?

E.g. see

BTW also directly possible in SC:

1e-3
-> 0.001