Wanted: Developer for time stretch plug

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

obviously any time-stretching has tradeoffs.

Live has the different modes of course, beats/tones/texture/complex.

I'd think the place to start would be with transient detection (beat slicing), because this works wonderful for drumloops (which is the most common type of "loop" that people wish to stretch).

Of course taking a slower loop to a faster BPM will give wonderful results this way... done.

Then for a faster loop to a slower BPM, there are many "tricks" to fill these gaps.

To keep CPU load down, we could introduce a precalculated timestretch (like FL studio does in the slicer with elastique), or we could loop the last few grains of each slice in a forwards-reverse/phaseflip-forwards manner (with envelope), or we could use a dirac-type library for precalculation.

Honestly if this is to get off the ground, I think we should just start with WAV loading, beat slicing, and tempo-sync playback of this. Thats a good chunk of time/development right there, and a good foundation to build from. We could then add different stretch modes/algo's after the fact.
Image

Post

I have to admit, I am not the specialist for such project direction -> beat slicing.

I am interested in the real "time stretch - pitch shift" aspect of the entire theme.

So my imagination was an *realtime* effect, which is able to load any kind of audio material into its buffer and then apply realtimestrech and pitshifting (speeding up, slowing down, rising pitch up and down) on demand on user action.

Performing completely realtime (with a little bit of latency). It is quite completely different, you see ...

While your idea is more in the direction of Intakt and consorts - thus we have to fight against them, my idea is (as far I know) not available yet and more a very special performance effect with no competitors. :roll:

In example: It would be possible to put larger recorded pieces of audio into it and then change the tempo of the sequencer while stretching that entire static audio regarding the dynamic tempo changes then. Or you you would be able to transpose the arrangement 2 semitones, or simply apply a "slowing down / speeding up effect" to the loaded samples and so on.

.
Last edited by ;-) on Sat Aug 20, 2005 7:21 pm, edited 1 time in total.

Post

I thought the idea was to load a WAV, not be a realtime effect. Things will be rather tricky doing timestretch as an effect, for obvious reasons (input time != output time). But Dirac would probably be the way to go for that.


Heres a realtime effect I've been mindlessly experimenting with for realtime pitch-shifting as an effect, it can be fun (but quality was not the goal):

http://www.devine-machine.com/steve/CheapShiftb4.rar

its a VST effect that expects MIDI notes for pitch.
Image

Post

Well not really "realtime". merely the changes (speed, pitch) can be applied in realtime. Because the plugin works of course with a sample in memory (like Intakt and all those others too...) ...

I'll check your suggestion now.

[EDIT]
Ah, yes, I already betatested this some time ago...

Are the audio clicks it produces now removed or still there? In the state I tested it, it was quite "alpha"-ish. The different modi for the number of overlappings/buffer count did not work right and editing caused total discontinuity sometimes.

By the way, it does not much different, than the J&H AudioPitch, which is able to react on MIDI note input too. But higher quality (because of the frequency domain algos used) but is single timbre only. You can use multiple instances thought.

.

Post

I've improved a lot of click situations in it, but yes, theres plenty of quirks in that version. I'll upload a new one soon!

I understand what you mean better now I guess (an instrument, but with realtime time/pitch process). But still I think that the only solution is to have different "modes", there is a tradeoff between rhythmic accuracy and sound quality, and for any stretching there needs to be some sort of transient detection as you mentioned.
Image

Post

Just want to mention that there are tons of beatslicers around but only a very few timetrechers.

Beatslicers:
Ableton Live (App)
FL Studio (App)
Reloop 2 (App)
Reflex (Vst)
Dicer (Vst)
MicroDicer (Vst)
Intakt (Vst/APp)
Phatmatic Pro (Vst)
Guru (Vst)
ReCycle (App)
Reaktor (App/Vst)

(And there are megatons of sliced beat players)

Timestretchers:
Intakt (Vst/App)
Kompakt (Vst/App)
Ableton Live (App)

FYI

Post

Galleoneer wrote:Just want to mention that there are tons of beatslicers around but only a very few timetrechers.
FYI
My words! :)

Post

I have no desire to read thru the bickering so I don't know if this has been solved but I believe Basement Arts Reflex does time stretching as well as beat slicing. Each instance of Reflex can run 4 loops. CPU hit is almost non-existant.

For time stretching it uses the Prosoniq MPEX2 Time and Pitch machine

Then again, maybe I am off base of what you are seeking. Dunno.

Post

WOW.

Just a couple days away from the computer and this thread has blown up!

First off, I'm very pleased to hear that there are some folks who would consider teaming up to make this prospective plugin happen.

OK. Let's not forget some of my original points:

- NO, this is not meant to be a realtime effect on incoming audio. (I'm only guessing that the folks who keep misinterpreting this aren't familiar with Ableton Live.) It is meant to playback already existing loops.

- K.I.S.S - I don't need a lot of "helper" features. I would be perfectly happy to input the original bars/measures or tempo or both for a given wav file. I'm sure others would disagree to have an easier interface, but I'd rather trade CPU stability and transparency for automatic beat or transient detection. All other fx-processing could be handled with other plugins. Low CPU hit and stability is paramount!

I would certainly be able to put in my time for GUI development as I am a graphic designer by trade and was the designer of the Muzynth skin in Muzys 3.0.

Thanks for everyone's generosity!

Post

I just even don't understand, what you finally want. A "beat slicer" or a "time stretcher". That are two completely different shoes.

Did you really read the thread? There is no cooperation yet for some reasons. One reason is, that we don't even know what you want. "Automatic beat and transient detection" is assigned to beat slicing. Timestretching usually don't use that.

If you want beat slicing, so I am out. Because that's not my desire and I also find, that there are tons of such plugs already available, exactly doing that. Simply license one of them.

.

Post

Hi 000, I don't mean to disagree or belabor a small point, but I believe beat detection is *essential* to time stretching. Therefore "beat slicing" (detection) is the appropriate place to begin, regardless of what (more complex) playback algorithms are put on top of this data.

Check out www.zplane.de, which makes the algorithm that Ableton uses in their "complex" mode, of which the core component is beat detection. Obviously if you are dealing with audio that has no rhythmic element, you don't need beat detection, but the majority of musical phrases have some rhythmic element, which you don't want to muck-up.
Image

Post

Hi,
bitcrusher wrote: Check out www.zplane.de, which makes the algorithm that Ableton uses in their "complex" mode, of which the core component is beat detection. Obviously if you are dealing with audio that has no rhythmic element, you don't need beat detection, but the majority of musical phrases have some rhythmic element, which you don't want to muck-up.
Just to clarify: none of our time stretchers has beat-tracking or rhythm detection included. However, any good (general purpose) stretcher has to have kind of transient detection since those parts have to be processed differently than tonal parts.

As a sidenote: All time stretching modes (except complex, which is our "normal" élastique) in ableton live are proprietary ableton technology.

Sorry if this was too much off-topic.

(a)

Post

bitcrusher wrote:Hi 000, I don't mean to disagree or belabor a small point, but I believe beat detection is *essential* to time stretching. Therefore "beat slicing" (detection) is the appropriate place to begin, regardless of what (more complex) playback algorithms are put on top of this data.

Check out www.zplane.de, which makes the algorithm that Ableton uses in their "complex" mode, of which the core component is beat detection. Obviously if you are dealing with audio that has no rhythmic element, you don't need beat detection, but the majority of musical phrases have some rhythmic element, which you don't want to muck-up.
Well I know that. Not "beat detection" but a kind of transient consideration (like said above).

But the famous "ACID" algorithm for instance uses obviously NO such techs at all (You can easiely hear that). :roll: And it works too, since generations now...

My imagination was to develop an effect, which works like the super easy ACID technology. Loading simply a loop and pitching and/or stretching it as wanted in realtime. Quite easy for the user. Elastic Audio pure.

I dont like complex effects (meaning complex GUIs and editing) that much. A really good effect is merely internally complex and hides it all to the user. The user don't even know, what massive tech he uses at that moment. That's what I call "software ergonomics".

.
Last edited by ;-) on Mon Aug 22, 2005 7:41 pm, edited 1 time in total.

Post

000 wrote:
But the famous "ACID" algorithm for instance uses obviously NO such techs at all (You can easiely hear that). :roll: And it works too, since generations now...

My imagination was to develop an effect, which works like the super easy ACID technology. Loading simply a loop and pitching and/or stretching it as wanted in realtime. Quite easy for the user. Elastic Audio pure.

.
I'm not sure about Acid but Sonar (which is Acid compatible) uses transient-detection as well as a basis for their algorithm so I assume Acid is kind of similar...

Post

Probably. And therefore it is obviously that good: It hides the algorithm selection to the user.

With ACID you cannot select any special algorithm. The program does that automatically for you (if even).

A beat slicer is the complete contradiction: It massively bombards you with all possible options and editing controls to finally achieve a useful and correct result. Of course, the possibilities are much wider then finally. But it is probably only situable for the people who want such detailled microsurgical control.

Then they usually take Intakt or all the others.

.
Last edited by ;-) on Mon Aug 22, 2005 7:48 pm, edited 2 times in total.

Post Reply

Return to “DSP and Plugin Development”