Quality of timestretch

Here is the rendered result, in case you want to debug it: https://clyp.it/oylbr2th?token=2da791ec07cd15c81906b6bcacc0837a

Hmm. I’m able to get an almost perfect null test result between normal and rubberbanded at 1x rate. Almost because the timestretch enabled one has a little hardcoded fade in.

How much is zplane? Just ask for possibly future.

It seems the loud crackles I’m getting are some kind of playback issue. If I render a song to file, the timestretch works fine and there are no crackles. Non-stretched samples sound fine so this is a puzzling issue.

You’re right , but it’s not just the crackles . Renoise timestretch does something to the sound which is not intended

I’m not getting any crackles on ubuntu 18.04.

I can also almost perfect null result when the rate is exact.

A few parameters being exposed for the algos would be great here.

I confirm the little fade at the onset of the sample in timestretch mode, otherwise the phase of the sample sounds fine to me. (I first rendered an exact 64 lines of a drum track btw)

Just did little testing for new timestreching vs. old tool Rubberbend by Suva. To my ears I got better results with Suva tool. I dont know why, but maybe offline vs realtime is the key, or more algorithms in Suva’s tool. My proposal is about adding offline algorithms for rendering and ability to choose more like in tool.

Don’t know what technique rubberband uses , but I assume it’s some kind of fft , it’s normal that transients will get less pronounced when reconstructing the signal ( spectral bins )

2 Likes

it indeed sounds like FFt

Could you please tell me the Rubberband parameters the “Percussion” and “Texture” modes use exactly? I am trying to recreate the exact same output with other Rubberband implementations to see if there are also such extreme phase issues (cause I have not heard those before anywhere else).

And why not just implement the whole set of parameters?

I’ve no idea, you’d have to ask Taktik.

@taktik: Could you help out?

Percussion

  • WindowShort
  • DetectorCompound
  • PhaseIndependent
  • TransientsCrisp

Texture

  • WindowShort
  • DetectorSoft
  • PhaseIndependent
  • TransientsSmooth

You won’t be able to get exactly the same results with the same options in the command line tool, as the stretcher instanced in Renoise run in realtime mode. The command line tool can preanalyze the whole sample file first to do a lookup, which the real-time mode can’t.


This is caused by the “TransientsSmooth” setting.

This is exactly what makes it sound nice when used on, well, texture alike sounds: Sounds without lots of hard transients like percussion.

2 Likes

@taktik Well, you gave us a beautiful tool, I’ll tell 'ya that! Already we’re wanting full control, that’s how good it is! If we can have the ability to on/off AND change length/timing from the pattern sequencer and have control over more of the settings with some sliders on something… Wowee, man!!! It really is that damn good! You opened the floodgate :smiley:

Untitled

crackles over here too, and it also uses a lot of CPU on extreme stretching settings. (50% on a old i7 stretching a 5sec sample) when doubling LPB cpu explodes. i like the phasey/akaizer character for creative stuff tho :smile:

I see. Thanks for the detailed response. Appreciate it!

Regarding the “quality”:

Of course zplane’s or iZotope’s stretching can sound better, but their license models and CPU usage overhead are not acceptable for us.

Also remember that we’re using the stretcher in a sampler, and not for “simple” audio clip based playback as for example in Live. In a sampler every voice needs to be stretched separately and in realtime, with possibly changing pitch and tempo, so the audio signal never can be looked up. In audio clip playback, the entire sample can be preanalyzed first, which makes stretching a lot easier.

So in our realtime scenario, Rubberband IMHO really does an excellent job. But if that works for you, is something that only you can decide of course. And it’s an “option” only after all. You don’t need to use it. There always is the option to offline stretch a sample with other tools if all you want is resampling some loop to some other tempo.

3 Likes

I believe zplane also have a realtime algorithm. At least that is what I think is used in other samplers (e.g. the one in Beatmaker3). But yeah, their licensing is obviously something else… :slight_smile:

i like that its not a complex pro ultra zplane whatever algorithm, but i clearly get pops/clicks in the beginning of some samples (that are clearly not stretching artifacts). and it eats cpu :o