[sharing der Niebelungen] Looper with gen~


    Oct 30 2013 | 4:54 pm
    A first step towards a bounce simulation: a simple looper with speed and direction control, random speed deviation, short ramps to avoid clicks...
    Got some headaches building it. Happily it was made during summer holiday and I had some spare time. Now I have to figure out again how it works exactly in order to improve it. Gasp !

    • Oct 30 2013 | 8:12 pm
      Nice one!
      -A
    • Oct 31 2013 | 11:40 am
      Hey, very cool ! Though ( :p ) when i have max set at 48000 of samplerate and i try to loop a sample recorded at 44100 Hz sr, inconsistency appears when manipulating the looppoints on the waveform. I don't see a way to get the samplerate of a sample from inside gen~, then to solve that problem one would need to use info~ outside gen, then plug in the samplerate information :/ ...
    • Oct 31 2013 | 4:28 pm
      I get very long ramps instead of short ones - sawtooth ones, to be specific.
    • Nov 05 2013 | 12:56 pm
      @vichug, yes, currently there is no way to get the samplerate of a sound file from within gen~ (I've added that as a feature request). But you could easily do that from the MSP patch using buffer~, and pass it into gen~ through a param.
    • Nov 20 2013 | 2:10 pm
      Hi !
      Its really great idea to stay in samlpe's domain . awesome patch .
      Is there a way force this circuit to loop forward then backward ? im really having problems to remix it ,as i could not find any proper way to switch "deplacement" to negative values . or maybe there is a different solution ?
    • Nov 20 2013 | 2:28 pm
      You need to change "current" every repetition of the loop, not according to "deplacement".
      You might use a variable you change to 1 when its value is 0 and conversely after every repetition of the loop, and set current according to this value.
      I don't give you the code because even if it appears simple sometimes it takes me hours to achieve simple things with gen~...
      if (deplacement >= 0)
      {
      current = mstosamps(startpos);
      }
      else
      {
      current = mstosamps(endpos);
      }
      }
    • Nov 20 2013 | 2:33 pm
      All right , this make a lot of sense , will give a try ! thank you for your time
    • Nov 20 2013 | 6:29 pm
      I could come up with something like this . it was good suggestion of yours for this idea .
      now
      "current" is a "ghost" template for actual position . i dont know if its efficient and done properly , but you have directed me in a right way . thanks
      edit :
      im not sure if two statements checking the same condition is a good idea of mine
      edit 2 :
      your "amp" circuit would be useful to provide loop crossfading .
    • Sep 08 2014 | 11:54 pm
      Thanks for this gen looping solution!
    • Dec 04 2015 | 12:19 am
      Thank you for this wonderful Gen example!
      I'm trying to figure out how to 'overdub' using this patch.
      How can that be done?
      Larry