1. IMPORTANT:
    We launched a new online community and this space is now closed. This community will be available as a read-only resources until further notice.
    JOIN US HERE

granular time stretch/pitch shift/mangler

Discussion in 'Building With Reaktor' started by ashd, Nov 1, 2007.

Thread Status:
Not open for further replies.
  1. ashd

    ashd Forum Member

    Messages:
    54
    Hello,
    I've been trying to make a beat synced (well, tempo influenced) granular time stretcher/pitch shifter that sounds like c-lists beatlookup granular time stretch but live - the only problem is i'm not really that sure what defines 'granular synthesis' or how to go about hacking the beatlookup parts out of it out and into a small core cell specifically designed for it.
    I have made the following using my basic understanding of everything and the ableton pitch shift macro from exiles keymasher (because it was easy to take out and change for this purpose unlike c-lists beatlookup time stretch which is spread across several different macros i have little understanding of), but it sounds a bit rubbish to me...
    I'm pretty sure what im doing isnt actually granular, can anyone point me in the right direction?
    Thanks,
    Ash
     

    Attached Files:

  2. babyshaker

    babyshaker Forum Member

    Messages:
    42
    i would really like somone to help me out also with some advice in building a live timestretching device with Reaktor..
     
  3. theologiae

    theologiae NI Product Owner

    Messages:
    652
    i don't really have time to pick up this project and be of any help (i'm lost with this stuff too) but couldn't you just use clist's ens. and delete all the things you don't want?

    i don't know what the final goal would be for either of you, but it would work and saves you the time of learning dsp in a weekend. i would say make a copy of beatlookup 7 and just clear things you don't want, and stop when it doesn't work anymore. hit undo once and you should be good.
     
  4. theologiae

    theologiae NI Product Owner

    Messages:
    652
    like this.
     

    Attached Files:

  5. kid_sputnik

    kid_sputnik NI Product Owner

    Messages:
    3,552
    i have a fairly simple custome granulator in the user library called buffer::graf, but this requires explicit sampling of the signal via a trigger.

    one thing that helped me learn, is the pitch shifter macro in building blocks, which has a core-cell that does all the work.

    the basics is that there is a master clock/phase source, and at each grain either a smaller grain clock is triggered or the maiin clock is transformed somehow. there is usually 2 of these grains that are overlapped. and, each grain needs a "window" (envelope) to smooth the transition between the 2 of them.
     
  6. ashd

    ashd Forum Member

    Messages:
    54
    This is the kind of thing i was looking for, thanks for the explanation, i now think I understand the basics of granular synthesis.
    I ended up finding a core version of the grain delay module and adapting that.
     
  7. kid_sputnik

    kid_sputnik NI Product Owner

    Messages:
    3,552
    the one by Chris List from 6 months ago or so? that one is great.
     
  8. ashd

    ashd Forum Member

    Messages:
    54
  9. sw004g

    sw004g NI Product Owner

    Messages:
    511
    I'd try to find the CList one -- much more adaptable and universally applicable, I think.

    Though if you continue using the one you mentioned, here's a quick change which saves some CPU -- removing the initial Delays, and instead adding the delay times together, like in the attached.

    Also, reading from the same buffer could help (two taps on one delay line rather than two separate delay lines).
     

    Attached Files:

  10. CList

    CList Moderator

    Messages:
    3,299
Thread Status:
Not open for further replies.