I’ve been experimenting with sample rate conversion and time-stretching techniques. The goal is to integrate this into Podium. I thought a nice way to test the quality of the algorithms was to create a pitch-shift plugin. Pitch-shifting is achieved by a combination of SRC and time-stretching.
Here’s a beta version of the plugin:
(Edit: Download link removed. Plugin is now bundled with the Podium installer.)
The time-stretching is implemented using a variant of the SOLA technique, meaning that the stretching is achieved by mixing/overlapping slices of the audio. This technique is CPU efficient, but high stretch percentages will not sound good with percussive material.
I would like to hear your opinion on the quality of zPitch. Do you think zPitch is a useful plugin? Is the time-stretching quality good enough to be integrated into Podium? How does it compare to that offered by other hosts? Personally I think it can be used for modest stretching of drum-loops, but for more complex material I think it sounds absolutely horrible.
I may be able to improve the quality, so consider zPitch as a beta version for now. The sound quality may change with the following updates.
I find it not so bad.
Considering that pitch shift introduces more artifacts than only timestretching, I am waiting to try the feature on events !
Actually it is not really possible to compare the quality of timestretching with other hosts since it is a pitch shift plugin. But it compares rather well with other pitch shift plugins.
So I consider that we will soon have timestretching and speed on events PLUS a nice pitch shifting plugin. Nice…
Good work !
Well, it may not be up to the quality or flexibility of the timestretch in Abelton Live but its a lot better than I expected. Its sound is certainly comparable to any other pitchshift plugin I have tried and is seriously more CPU efficient!
It will definately have its uses in future projects 😀
Good work, thank you Frits 8)
Just gave this a quick try and it sounds pretty good. I will try on some other stuff tonight but so far I would say this looks very promising.
I spent a bit more time with this last night. I have to preface this by stating that have no basis for comparison (I’ve never used pitch shift or time stretch as part of a DAW in the past), but this is quite good. When I goof around on guitar I often like to play along some of my favorite songs and its somewhat annoying when the originals are detuned. In the past I’ve used Winamp and a certain plugin to adjust pitch to get the song back in tune with my guitar (my guitar has a Floyd Rose trem so its not the easiest to retune). This easily sounds as good as (and probably better than) what winamp could do.
I think you need to keep things reasonable as it starts to fall apart when you starting going insane with the amount of change, but within tolerances it is very good.
I also tried it on pure drum track. Jamstix feeding into zPitch and again as long as you keep the amount of pitch alteration somewhat reasonable it works very well.
Thanks for the feedback. I’ll include zPitch in the installer of the next release. I’ll still try to improve the time-stretch quality in the coming weeks.
I have just downloaded the plug…I will give you some feedback tomorrow with some comparisons. 😉
when pressing ctrl and clicking on the pitch dial, the pitch is set to the lowest value. Wouldn’t it be better to have a reset here? And could you add some presets like +1 semitone, +2 semitones, -1 octave etc. ? Or you could add another dial for changing semitones instead of cents.
Very important addition to Podium by the way! I won’t have that much use for it because I have Melodyne Cre8, but for many users this will be an important feature I guess!
EDIT: And by the way.. I have tested zPitch on a drum loop I created, and it doesn’t sound horrible at all! I like the possibilities of changing a drum tracks pitch.
when pressing ctrl and clicking on the pitch dial, the pitch is set to the lowest value
Currently zPitch uses the generic editor interface, so that’s why it resets to zero. I plan to create a small native zPitch editor which will reset to center when ctrl-clicking the pitch dial. It will also have an additional semitone dial, as an alternative way of adjusting pitch. I think this removes the need for default semitone presets.
Sounds fine! 🙂
This plug is a bit of a surprise package. I use Live slice and while the zPitch is obviously not on that level ( I doubt that is what you had in mind anyway) it does pitch shifting rather well.
Do you think zPitch is a useful plugin?
I could definitely use it *as is* no problem.
Is the time-stretching quality good enough to be integrated into Podium?
Good enough yes. There are better options out there but it is certainly capable.
It is not that bad on drums but depending on where you want to take this plugin you may want to have a look at some of the features Liveslice offers.
Of course it does not nearly have to be so featured but there are some nice ideas in here…
Isn’t Liveslice a beat slicer? That’s a different technique than time-stretching. I browsed the Liveslice info, but could not find indication that it supports stretch.
I think zPitch is a noble first attempt, but I would try to improve it.
I don’t think drums are something many people will use a stretcher for, since they will be using slicing, unless it’s a very minor adjustment, but I think that drums are the best material for testing, and zPitch really sounds pretty bad.
If you take zPitch and use it on a guitar with a lot of strumming, picking, slaping, etc, zPitch makes it sound pretty bad. I haven’t tested on synths and vocals and other stuff yet but I would try to improve it if possible.
Have you listened to zPlane Elastique? FL Studio 7 has the newest version of zPlane built into it’s sampler channels and it sounds very impressive to my ears.
Obviously no one can expect you to spend all your time developing a super high quality stretching plugin similar to zPlane instead of working on other areas of Podium, but I’m wondering if you think there is room for improvement?
As is, Podium is better with it that without it, but I think there is room for improvement.
Yes, it can be improved. As I wrote previously, I will continue to work on it in the coming weeks, and that is why I announced it as a beta.
It will never be as good as any of the licensed commercial algos, but if I can get a decent quality out of it, I’ll have something to work with when designing the time-stretching feature in Podium. After this has been completed, I can start looking for more professional quality algos as a replacement.
Cool Frits, I’m interested to see how it evolves!