Time stretching algorithms
-
Hi,
As we discussed I've done some tests comparing elastique to rubber band and although it's probably a good idea to do more tests I think that the rubber band algorithm is a very good candidate for HISE. It has a lot of settings that I had to play around with to get it to sound as good as elastique so it would be wise I think to make all of these settings available to users.
These are the two demos, the first is melodic, the second percussive. The examples are structured in this order: Original (not time stretched), elastique efficient at 50%, rubber band at 50%, elastique efficient at 200%, rubber band at 200%.
Melodic - https://www.dropbox.com/s/zwza9erodxq6juv/time stretch demos - melodic.wav?dl=0
Percussive - https://www.dropbox.com/s/522tqmup6bj4nty/time stretch demos - percussion.wav?dl=0 -
@d-healey said in Time stretching algorithms:
As we discussed I've done some tests comparing ela
Very interested to hear. Gonna check this in the studio on Monday.
-
Man, this is great news. Had a listen, there's a little more artifacts on the rubber band, but it sounds good.
Sounds like there might be some phase issues on the 200% rubber band melodic, frequencies sound a bit sucked?
-
@d-healey Both are amazing. Cool stuff
-
I also found this one - https://github.com/0xfe/vexwarp - it's not particularly high quality but might be useful for some synthy stuff.
I've just been reading the license terms of rubber band, I definitely think this is the best option available for HISE. It's not as good as elastique (at least at extreme changes) but it isn't far off and I haven't seen anything as good that has an appropriate license. My only concern is it may not be fast enough for real-time use cases.
MiniBPM, from the same developer, might be useful too if you plan to add any grid/slicing type features.
-
Just had another listen to this David - if you duplicate the track on the 200% rubber band melodic, and the flip the left to the right, and the right to the left on the duplicated track, then layer it over the original, pretty much gets rid of the problem, but makes it mono. Might be something to do with the stereo matrix in there?
-
@duno I had to switch the algorithm's phase parameter to get it to sound decent so that might have something to do with it. If it gets implemented in HISE then I assume Christoph will make all the parameters he can available to us so you'll be able to set is as necessary for your projects.
-
@d-healey Ah ok. Think it sounds really nice if you just draw one of the channels off, will be amazing to have it in Hise.
-
Haven‘t checked, can Rubberband do more than stereo? For multimic positions it would be useful.
-
@christoph-hart It says this in the technical documentation
Construct a time and pitch stretcher object to run at the given sample rate, with the given number of channels
https://breakfastquay.com/rubberband/code-doc/classRubberBand_1_1RubberBandStretcher.html