[sharing] I made a M4L looper with gen~, check it out?


    Jan 20 2017 | 6:09 pm
    I eventually want to submit this as a project, but it's not quite polished enough for me to take the plunge, and I want to get documentation together. I made a very brief overview of the device that you cna check out here:
    All the audio processes are done in one big codebox in gen~. It was my first stab and writing audio code at that level, and I learned a ton. And also made a bunch of mistakes, some of which are still in there. Another reason not to put it through as a project yet ;)
    Sorry if the post seems self serving, but I've been having a lot of fun using this, and maybe someone here will too!

    • Jan 21 2017 | 7:39 pm
      Great video, looks like fun!
    • Jan 21 2017 | 11:23 pm
      This is awesome, thanks.
    • Jan 25 2017 | 4:05 pm
      Hi Evan, would really love to give this a try, looks great. If possible, please send it to martin(dot)dibek(at)icloud.com
      thanks a lot in advance!
    • Jan 25 2017 | 4:10 pm
      @Brenden thanks for checking it out!
      @Dibek Sent :) Thanks for your interest!
    • Jan 25 2017 | 4:40 pm
      Thanks, Evan! :)
    • Feb 18 2017 | 4:54 am
      Hey man would love to try this out and pick your brain. I'm developing a similar but different looper and am getting stuck synchronizing the loop to the ableton clock. Would love to chat. If you get a second to email your device to vince.cimo@gmail.com that would be awesome. Thanks brother.
    • Feb 19 2017 | 2:17 pm
      I am simply starting an a clock in my gen code whenever Live's transport starts. If it ever get's off from Live's clock due to tempo changes, meter changes, or if you start the transport in the middle of a bar, you can manually resync to the next 16th note. There's not much synchronization except for a few events.
      How are you building your looper? Native Objects? Gen~? Externals?
      I'll send you over a recent beta to check out later today.
    • Feb 20 2017 | 7:18 am
      Mostly building using java externals, i'm using a javascript object as a passthrough which sends the java external Live transport data. I'm attaching a dead simple project that shows how if the transport is running and there's a loop & you hit play, it should sync up by calculating the ms till the next bar. I'd be happy to share the whole project with you if you're interested. It's a midi looper, so no audio data is being processed.
    • Feb 20 2017 | 9:09 am
      Hey Evan, keen to take a look at this. Email is arhelazary@gmail.com
      Thanks!
    • Feb 20 2017 | 2:00 pm
      @vince cimo: Your javascript wasn't included in the device, so I can't take a look at that. But after hearing your description, it sounds like you are using both javascript, and the Live API to calculate timing parameters/events? javascript gnerally shouldn't be used (in my experience) for tasks that require really precise timing. And the Live API definitely shouldn't be used if you're after really accurate data, there's always been a bit of unpredictability when using the Live API to synchronize (again, in my experience).
      There are a few things you could do. The easiest might be using plugsync~ or plugphasor~ to get the audio rate clock of Live and do all your timing that way. Even if you're only recording MIDI events and you're not processing any audio, you might get better results if you were clocking with audio rather than asking the Live API for info, and then calculating the delay time. Here's a few ways to do it:
      @asher elazary: Check your email!
    • Feb 21 2017 | 12:10 am
      Thanks so much for the info! I'm gonna play around with this and see if I can get things syncing tighter. By the way....you should charge for your patch and release it to the public. There's a market for that sort of thing.....
    • Feb 21 2017 | 2:45 am
      Hey Evan
      Looks like interesting project! I would love to check out your device. If you have a minute to send it my email is usermotherearth@protonmail.com
      Thank you.
    • Feb 21 2017 | 3:12 pm
      This is so cool! Live looping is a big part of what I do, I would love to try to this out if possible. My email is: piersquared237@gmail.com
      Great job, man
    • Feb 21 2017 | 5:39 pm
      @vince I plan on doing that once I have all the features in and working (controller integration is taking some time) and I do some legit documentation.
      @Natalie Sent!
      @Mohammed Sent!
      If you find some time to use the device I would love to hear what you think. I'm finalizing features really soon for a release version.
    • Feb 21 2017 | 7:23 pm
      @evan! you are a badass. It was a bit of a pain but I pulled all of my data manipulation out of JS and into Max and fed that into my Java external and this thing is working so much better. Thanks so much for getting me unstuck.
    • Feb 21 2017 | 9:51 pm
      Glad to hear the advice was helpful!