Live Loop Control Method

Hi community,

there is a card in Trello called „Live Loop Control“. It describes a possible future method to dynamically control loop ranges.

For me it would be most welcome as it offers the possibility to react to an audience dynamically (repeat a chorus…) for songs needing some background sequencing or percussion by design (dancefloor, etc.).

Of course I also noticed that @brad wants to lay hands on the play range section but not in small pieces which probably won´t fit to each other, instead as whole package which I totally understand and support.

So I tried to find a method to realise this functionality only using cantabile onboard tools and hopefully was successful. I would like to introduce it to whom it may interest. The method is a bit cumbersome and uses some „dirty hacks“ and is only meant for the time till the Trello card is realised.

It is based on some ideas on looped play ranges @dave_dore introduced some time ago. My method should be able to satisfy the following needs:

  1. Define any number of looped play ranges inside a song
  2. Possibility to „arm“ a loop dynamically by a free selectable specific Midi-event
  3. Possibility to „disarm“ armed loops dynamically by a free selectable specific Midi-event
  4. Mechanism to automatically disarm a loop after it has looped once (but of course with the possibility to re-arm it as often as needed)
  5. Mechanism prohibiting arming of loops depending on song position (strongly necessary to prohibit arming of loop ranges lying in the past).

To achieve this first task is to create play ranges. As rule of thump I stick to:

  1. Create a play range for each loop you want to establish, set loop to On (Infinite)
  2. For each loop define a second play range where start position equals start position of loop and end position equals end position of whole play range, set loop to off
  3. Create one no loop play range where start and stop positions equal begin and end of the whole play range

The following screenshots show the play ranges of an example using 2 loops.

For realisation 3 functions were necessary:

  1. Conditioned bindings from Midi-events to indexed play ranges
  2. Bindings controlling the conditioned bindings depending on Transport position. This binding is responsible for suppression of arming a loop for some reasons: only one loop play range can be armed at a time, so it could be clever to interlock play ranges. Even more important: lock the arming for loops lying completely in the past.
  3. Mechanism automatically switching from a looped to the corresponding non looped play range if a looped play range just had looped

As there are no binding conditioned bindings available atm I split the first item into 2 parts:

A) A named (and so binding-controllable) routing from a Midi-port to a Midi loopback port

B) A binding from this Loopback port to the desired play range

The second item is already available (Transport → In Range → [name of conditioned routing] → Enabled → Normal) means: no need for a dirty hack

Third item was a bit tricky: when choosing the end of the loop range I found that this position was never really reached in reality resulting in a perpetually running loop.

Setting the position earlier lets play range change before reaching its end resulting in a never looping loop.

I found out there was a very small interval near the end of loop play range where the loop established once followed by changing to the non-looped play range. But as this only seems to exist due to more or less parasitic effects (run time) I decided to implement a more deterministic solution.

Unfortunately a binding from Transport Position to Play Range has no delay implemented which forced me to split this binding into:

A) Transport → On Position → Specific Trigger Event

B) On Specific Trigger → Delay → Select Play Range Indexed

This way it is possible to place switching position in uncritical distance to loops end and increase delay so that loop is established sufficiently before switching to no looped play range.

Finally I found it useful to implement 2 bindings choosing the largest play range on song load and on transport on stop.

Counting in a a binding for arming and disarming for a certain loop the whole method for one loop consists of one conditioned routing & 5 bindings.

It may be a good idea to wrap latest into a group. This way a first created group can simply be duplicated and only parameters have to be modified for a second, third… loop. Please don‘t forget to add one conditioned binding for each group…

Using Filters in the routing it is easily possible to use any sort of Midi event (f.e.
Note on, Controller events) for arming/disarming loops. Generally spoken it is possible to map a seperate event to each loop and event (arm/disarm). On the other hand it is also possible to only use 2 events (f.e. 2 pedals) for a complete song consisting of a bunch of looped play ranges if interlocking is done properly.

I hope I could clarify the method sufficiently.

Any comments or ideas warmly welcome of course,

kind regards, humphrey :grinning:


Wow Volker,

This is wonderful work, very well laid out and explained. This qualifies as a new capabilty extension of the C3 platform Brad has constructed. If I think of anything to add I will post later but there isn’t much to add, once again Big Thanks for this contribution! :smile::+1::+1::+1:



You might be interested in watching this video…

…I tried a similar approach, but I had slightly different requirements.

I also found that the loop end is never reached, so I had to tweak positions of bindings by try-and-error.

It’s interesting o see what different kinds of things people want to do with loops,so it’ll be a hard job to create a solution that could cover all requirements.

BTW: Here’s a link to the related Trello card:

1 Like

Very interesting! I had never really thought about loops until I discovered Elise Trouw. She does a one-woman show, plays all the instruments, triggers Ableton for recording live and playing back. Sings like a goddess. And 20 years old.I think it’s really cool for these kids who grew up with technology and have no fear. Many people in my generation grew up with fear of computers, and you very seldom saw a young lady interested in computers.

1 Like

Hey Richard

I always embraced technology, but I know other musicians my age who will never change their “old school ways”…it’s all they know and trust.
In 1969, I bought a Sony reel-to-reel. It had a new feature that could bounce tracks, and I created a lot of music with many different instruments and voices. I wrote charts and scripted bounce sequences. It consumed much of my time, but I loved it. My friends and family were shocked to hear what I was creating. I look back now and think, where did all that young energy and creativity go? I’ve done the same with live loops in the last few years, just to see if I still had “it”. I found it takes the same dedication and planning as 50 years ago. But, I also found my attention span is not what it used to be. :slightly_frowning_face:

BTW…thanks for the Elise Trouw reference.

1 Like

@Corky Just to be clear, I’m not being critical. I’m a geek. But if “kickin’ it Old Skool” works and you create stuff, great. I’m just impressed with the young kids that have grown up with technology and it was never the “unknown” it was to a lot of my peers. I was always the guy in the band that figured out the PA and wireless mics and outboard effects, etc. One band I was in I had to program the guitar players’ pedal board because he just couldn’t understand it. Anyway, I’m just impressed as can be with these kids and their use of technology. Elise is a good example. Did I say she’s a SCARRY drummer? Think Stewart Copeland.

Did we just jack this thread?

1 Like


That is me also. Still doing it.

I know. I am not either, but it has been a challenge to move people away from stack Marshalls, 3ft X 3ft mixing boards, Altec Speakers as large as a Volkswagen, and enormous Neil Peart drum sets.

Just to stay O/T, live looping would solve these problems, lol. :laughing:

1 Like

@Corky I saw a guy with an Altec shirt at the airport last week. Reminded me of carrying Altec-Lansing “Voice of the Theater” speakers up fire escape stairs on the outside of a building. There was an exhaust fan sticking out blocking everything about half way up.

1 Like

Oh yes…I’ve done that. lol! Do not miss it.

1 Like