Looping machine

    Jan 22 2006 | 9:03 pm
    Hi there,
    Please bear with me, I've been using Max/MSP for less than two months at the moment so my question is probably quite simple.
    I'm trying to create a looping patch which begins recording live audio fom the adc when you hit a button, then, when the button is hit a second time, stops recording and loops playback from the point at which you pressed the button the first time. (Now theres a round about way of describing it.)
    I've tried using the tapin~ tapout~ objects and played around with sfrecord~, but nothing seems to work in exactly the way I was hoping.
    Any ideas? Or can anyone just send me a patch so I can work it out for myself?

    • Jan 22 2006 | 9:26 pm
      Remember that there is more than one way to do just about anything, using sfrecord would be rife with problems involving disk latency, you want to record straight to memory.
      Try buffer~ with an adc~, and then either play~ or groove~ (I'd go with groove~ for your needs). I'm guessing you have figured out how to capture keydown events.
      Please take a look at the MSP tutorials, specifically tutorial 13. The patcher that accompanies that tutorial has basically all of the pieces you need to do what you want, you just need to get creative and rearrange.
      In general, the Tutorials will give you pointers on just about anything you will think of doing for the first year or two. Read them, know them, understand them, hack them.
    • Jan 23 2006 | 1:22 pm
      Thanks for your help guys.
      I'm sure I'll have it down in an hour or two.
    • Jan 24 2006 | 7:31 am
      hi, just a thought about how to go about this. I have not liked the results that I have gotten using buffer~ and groove~ for looping, for the following reason: unlike a tape loop or digital delay, the sustaining/decaying sounds at the end of the buffer are cut off when the loop begins. If you're using short percussive sounds, this won't present a huge problem, but for sustaining sounds it will sound terrible.
      tapin~/tapout~ seems like a better way to go. you just need to (very accurately) time the interval between your two button presses and send that value immediately to the tapout~ (give the tapout a very large value to start).
      the counter object probably isn't precise enough. you need something sample-accurate.
    • Jan 24 2006 | 8:00 am
      I've had not much experience with midi in max. I have a few questions: How can I generate midiclock messages or any sort of bpm sync message using taps on a keyboard? I want to programm a few (say 20) sequencers all targetting one midichannel but they need to have different tempo's how do I make onechannel midi seq's that are needed for the seq object (if that is the best object to do this)
      best regards
      pieter >