Implementing a minimal asynchronous multitrack looper in hardware


#39

+1 for loopy. it does up to 12 loops (asynchronous or not). you can midi map a lot of the functions.
if you load it up as an interapp audio source in AUM (amazing mixing & routing app) you can route the outputs to separate channels of your soundcard.


#40

sounds exciting - some kind of multitrack looper maybe in eurorack format with per loop lengths and per loop playback position control? a eurorack mlr…just speculating…is this new thing likely to be appear at the same time as w/?


#41

Kaoss Pad/KP3 has 4 separate loopers. Easy and straight forward for live use. MIDI in/out. I use it for looping and processing live vocals.


#42

Go on, spill a few beans! :wink:


#43

update:

i’m happy to report that i’ve since been able to implement a 4-track asynchronous looper on organelle (with monome control of sub-loopoints).

thanks for all those that suggested i check out organelle… being able to get outside the off-the-shelf hardware game and start programming exactly what i want in pure data has been liberating.


#44

few more updates to report here.

i’ve now got the following features working for organelle/monome looper system.

  • freely assignbable buffer/playhead matrix. so, record into 4 buffers, each of which can be accessed by 4 different playheads. could do 1 buffer to 4 playheads, 4 buffers to 4 playheads, &c. can switch playhead between buffers live and playhead will pick up at the same relative position in the sample.

  • sublooppoints and forward/reverse playback, controlled by selecting holding down two looppoints on the grid. if you hold startpoint then press endpoint, it plays forward between those relative positions in the sample. hold endpoint, then press startpoint, it plays reverse.

  • ‘goto’ function. skip the loop to the designated point by a single key press, a la mlr. this is always mapped across 16 grid buttons, even if the subloop is shorter, for maximum resolution.

  • 0.25x, 0.5x, 1x, and 2x speed per playhead.

  • single knob LPF/HPF per playhead.

  • snapshot memory locations which recall looppoints for 4 tracks, playhead direction, buffer/playhead matrix, and playhead speeds.

  • pattern recorder which records any single button presses.


#45

here’s a video which gives a glimpse of the patch in action.

(i’m not really accessing any of the performative features here, like switching between buffers, changing loopoints/directions, snapshot memory, or pattern record in the video. honestly, these are all just add-ons to the original goal of just getting a simple asynchronous looper happening in hardware.)


#46

Sounds great! Are you planning to release it? Or did I already miss a link somewhere?

I’d love to adapt this to PiSound/Grid/Midi controller.


#47

yeah i’d love this on a Pi and sans monome.


#48

This is great - could you post the patch up on https://patchstorage.com/platform/organelle/ or github? Would love to try this out.


#49

Really nice work, looking forward to seeing it in the wild


#50

@emenel @baleen @knecht

haven’t released it yet… and have a crazy few weeks of recording/gigs ahead… but will definitely share once it’s all cleaned up.

i still want to add overdubbing and a couple other features.

since different people want to do different things with it, perhaps the cleanest way to do it would just be to release the core recording/looping mechanism as a nicely encapsulated and well-documented pure data abstraction. then it could be easily adapted to whatever platform, with whatever midi controllers.

the only other tricky thing to program was the snapshot system, and i’m happy to share that as well. (coming from a max/msp background, i was hoping to see something like autopattr for preset storage. since nothing like that exists natively, i came up what i think is a fairly elegant solution using scripted send/receive objects and a central storage hub.)

anyway, i’ll be sure to update the thread when i have time to clean all this up… but it will likely be a few weeks.


#51

yeah like, no hurry on this complex and robust passion project.


#52

@josephbranciforte, thanks - I’m sure it will be worth the wait


#53

Following this thread in hopes that this organelle patch can be adapted for control by something like the launchpad mini, for those of us without the monome <3 absolutely love this concept


#54

i’m sure it could be made to work with launchpad.

sorry for the delay in getting this together, have had zero time the last 2 weeks… but soon, i promise!


#55

ok, here are my first set of tools for implementing an mlr-like system in pd.

http://josephbranciforte.com/pd.html

download includes a record object [jblr.record], playback object [jblr.play], and a couple utility abstractions that handle dynamic non-local variables. documentation in the DEMO.pd patch should make pretty clear what’s going on, but any questions just let me know.

doesn’t include any of the monome- or organelle-specific stuff (yet), but if you have a look at the messages for [jblr.play] like “low”, “high”, and “goto” (as well as the loop position output)… should give you some clues on how to set it up.

(note: these do require the pd-extended library for a few essentials like [zl] from cyclone.)


#56

Interesting as to how this could be modified with C&G’s ONDA - from the demo video It looks like the keyboard can act as a one row grids… off the top of my head the first four black keys could select one of the four loops, then the white keys can show/edit the length… I have no idea about programming though!


#57

i thought there was already one called axiome that does this


#58

http://gwen.coffy.name/Puredata/Axiome/