SynthMaker

Time Stretch Algorythm???????????

Archive · 2005 10 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

The Sound Scientist ·

Hello Everybody... 🙂 I imagine this thread will gain alot of attention as we get closer and closer to version 1 and are nearing the professional feel phase of this wonderful program..My question is has anybody created a decent sounding time stretch algo in which they are willing to share????I have worked with the basic cnt=1 or cnt=0.75 codes and they sound like crap!!!!! Every time i stretch out a loaded wave for my ROMpler this way it just frustrates the hell out of me!!! Its like i dipped my sample in a pool of metal... 😕 I NEED a good time stretch algorythm..Unfortunately most of the DSP Melodyne type algorythms are over my head and even further more I'm not even sure that when I think I understand how to implement one of these into my project If I will actually be able to have it function properly given the software is still in the developmental phase....If nobody has created anything like this I think the "brighter side" of this community should pull together and try to implicate this very important building block that is missing... I would appreciate any feedback on this Hot topic......Constantly trying, The Sound Scientist 🙂 😀 😉

Tom7777 ·

There was pitchshifting example a while back, not sure if this would help in any way, also some of the buffer sampling engine examples had built in timestretch which is probably what you would want.

The Sound Scientist ·

I have searched through every possible name.Pitch ,Pitchshift , Timestretch,etc.... I really can't find anything except a faint idea that my only option at this time is to use the buffer mod and write in more samples than needed in order to stretch out my samples... Is this the case? I would really apprecate any help that can be given...I realize you guys are all busy with your own stuff but i just cant find a GREAT way to timestretch and pitchshift...Am I just being blind? Even a link would help me right about now. I think what i need is somebody to confirm what&how exactly is the BEST way of going about timestretch algorythms... Great Thanks to anybody willing to take the time or the effort to help me..Peace and Science 😝

skOre ·

Well, unless we are talking about lame up- and down-sampling pitch-shifting, this whole time stretching things is a huge pile of work to do. And there are lots and lots of theoretical books and even web sources floating around...

The Sound Scientist ·

Well, I guess what you're saying is the good stuff really is as hard as it seems.. So all in all the only way to make a pro time stretch is to code all of the stuff from scratch... I'm sure this will have to to with streaming audio, buffers, and making a smooth variable sample rate? Well maybe I'm not so sure ... 😉 ...Just for the record, has anybody made a decent timestretch?...With code that is?........Now I feel stuck 😝 ..Peace and Science

skOre ·

Well, I just cross-read some stuff about it, and already just creating good sounding sample rate conversion is far from "upsample by x, downsample by y". With pitch shifting we move into the domain of automatic pitch recognition for creating realistic effects. Just this takes about 20 pages in the Computer Music Tutorial, which are just basic thoughts on the theory with footnotes like "read the following twenty books on each word of this sentence". Then also, you would have to have a system to embedd these two things in to work correctly together... I don't think its impossible at all, but it really is loads of work, at first theoretical, then practical trying out until it starts to sound right...

fritzman ·

Hello,

I'm interested in timestretching, too. From what I know the easiest method is to use granular stuff. Basically it is to cut audio (idealy at the zero crossings) into small portions (grains) and then have an intelligent algorithm that measures the length of the grains, and repeats grains. Or drops some. Depending of speeding up or down. Add some crossfading for smoother transitions. Detect peaks to let the algorithm repeat the grains without transients. Also use the transients to measure the speed of your audio to calculate the new speed. Basically like that. For someone who has the time and programming skills this shouldn't be too hard me thinks. 😉

Best wishes, FRitz

Tom7777 ·

Actually using Timestretch in realtime well would probably be quite hard to do unless you know a lot about it and how to code DSP well also, as you say fritzman granular stuff would be the best thing im guessing.

Kingston ·

a pretty good time scretcher is possible to do with multiresolution FFT.

Basically we would use the old "phase vocoder" fft time scretching method, but process the original sound to several FFT resolutions independently. Before the FFT stage the audio is divided with a linearphase crossover, and these resulting bands would processed to their own FFT resolutions.

High bands get short FFT buffers (16-256samples) and low bands bigger buffers. 5 band crossover is the minimum for a good sound, even response and clean transients (I've tried and tested it with a different process).

This is extremely CPU intensive, but creates a convincing sound. It is essentially a wavelet implementation by the way. Or maybe pseudo wavelets (thru fft trickery) to be academical about it.

I'll try to implement this as I get the time.

The Sound Scientist ·

Hello Kingston... 😉 Nice!!! It would be great if you, or someone else with this much knowledge at the moment, could create this..... I just feel like it's a great "community" module that will add that dimension to SM that is unfound by other software currently...It will increase the quality of finished SM projects attempting to offer this feature.... I'm not sure I completely understand exactly how to do what you're talking about:) but it sounds logical.. 😉 .. Great post ... Much Love 😍 Peace and Science

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.