It´s been a long time since I started wishing a live looping system for my personal needs, but the hardware machines were expensive and limited, and also the laptops weren´t powerful for the processings needs.
Now, the laptops are great machines for processing live audio, and there´s a lot of software that can be runned on them.
I have created a virtual controller as a looping system for Ableton Live. It´s a remote script programmed in Python that brings some very useful functions that you can map through MIDI so you can control them in Ableton Live and have a new musical experience
-Automatic tempo detection at first loop
-Continous recording when moving through banks/loopers
-A project can be saved to continue later.
-Base loops/tracks/banks can be loaded for beggining with a preloaded clips
You can use it with any floorboard/MIDI controller, BOME´s gives you a full and easy control for mapping all the different functions of the system to any MIDI midi controller.
I use a Roland FC-300 but you can use any other like Keith McMillen SOFTSTEP, Behringer FCB1010 and many others. Or you could use a MIDI keyboard, MPC, drumpads, etc.
You can use it also with an Iphone/Ipad.
You can watch a demo video on Youtube to see what you can get with this system:
1.1 ABOUT THE SYSTEM
This system is written in and Python(c) and It was created to have the possibility of creating multiple looper groups in Ableton Live.
It´s recommended that, if you are going to use it with a floorboard, you use it with Bome´s Midi Translator (BMT) because it offers the possibility of executing different actions with a single pedal. A BMT preset with multiple actions is provided, and you could configure it to use with a different floorboard that the provided template for the Roland FC-300.
You can use the system with touchpad devices also or with a keyboard, or with any other kind of midi controller.
Search for the folder “Program Files/Ableton/Resources/MIDI Remote Scripts”,and paste the provided folder “AkaMed”. The full folder, not just the files inside.
Then, paste the BMT preset file into the “Bome´s Midi Translator/Presets” folder.
Look into BMT´s user manual to know about how to capture the incoming actions of your MIDI controller in the provided preset. Be sure not to change anything except the incoming messages.
Paste the provided Ableton Live set into your Ableton Porjects folder, and you will be ready to use the system.
Everytime you use the system, you will need to open the BMT application, and leave it running in the background.
1.3 PROJECT DESCRIPTION
This is a new system, designed for the live music creation from real-time recording audio sequences.
Each sequence is recorded on a virtual unit called “looper” (composed from 2 audio/midi tracks). It is possible to create multiple sequences for adding extra instruments or sounds, and so that they are synchronized in time. The global song tempo can be defined from the duration of the first bar, if we wish it so.
Until here, there´s no difference with some hardware looping units. We can find some units that are able to do this currently in the market.
The problem of this hardware machines, musically speaking, is that we are limited to a global chord sequence. So, even if we have a 4 looper hardware machine, we can´t change the chord sequence easily.
The real advance in this new system is the use of a bank system.
Multiple banks can be created. Each bank will have the same loopers number that we have defined previously. In example. we could have 4 banks of 8 loopers each, and with this we can use the 4 banks to create 4 different song sections and 8 loopers for different instruments in each section.
Let´s say that we have a song with the following chords:
All the time: C / F / G
This song could be easily played with any hardware looping unit, because it´s chords follow the same order all the time.
But if we want to play, in example, a song that contains different sections like:
Section A C / F / G
Section B F / Am / F / G
Chorus Dm / Em / Dm / G
End F / Fm / C7
With a normal looping unit, it could be almost impossible to play it looping normally.
With this new system, we could create it like this:
Section A C / F / G (BANK 1)
Section B F / Am / F / G (BANK 2)
Chorus Dm / Em / Dm / G (BANK 3)
End F / Fm / C7 (BANK 4)
Once created the different sections, we can play each when we desire, and alternate between then, add instruments, stop them, delete some parts, etc.
That could be achieved easily.
1.4 PROJECT BEHAVIOUR
Each looper is created by using two audio (or midi) tracks in Live. Both tracks have to receive audio input from the other track and from the audio input you want to record.
It can be done using send/return tracks.
For each looper that you want to create, you must create a group called “LPx”, where x is the number of the looper. Then you must need to create 2 audio or MIDI tracks called “LPxa” and “LPxb”, and route them so that A records what B plays, and B records what A plays.
You can achieve this by using audio send LPxa and LPxb and return to each group track.
I suggest you to have a look to the Ableton Live template provided for a better understanding of the routing.
See a list of the action assigned midi notes by opening the file called “Vars.py”. You can open the file and save it if you modify it, and Ableton Live will load your updates the next time you open a project or restart the program.
The default setup is 8 loopers divided in 4 banks each one, creating a virtual grid that you can imagine if you think that the loopers are in a vertical lane, and the banks use horizontal lanes.
The banks are the rows of the division of the scenes by the number of banks. So, for example, if you have 24 scenes in Live, as you have 4 banks, then each bank will use 6 rows, like:
Bank 1 will begin in scene 1
Bank 2 will begin in scene 7
Bank 3 will begin in scene 13
Bank 4 will begin in scene 19
You can also add some clips for triggering them as an used looper. You must add it to the first clip on the looper (LPxa) on the bank you want to use it for playing .
1.7 SYSTEM ACTIONS
The system is ready for working, by default, with a maximum of 12 banks and 12 loopers, because their each group of actions are divided in the different MIDI octaves.
Those are the different system actions and variables that you can modify (by editing the ‘Vars.py’ file):
BANCOS = x
Sets the global number of banks to be used by the system.
The more banks you use with a less number of scenes you use, the less undos (layers) you will have.
MIDI_CHANNEL = x
Sets the MIDI channel that the system will use.
AUTO_OVERDUB = x (midi note)
Continous overdub on each press, in the current current looper.
STOP_ALL = x (midi note)
Stops all the loopers in the current bank.
PLAY_ALL = x (midi note)
Plays all the loopers in the current bank.
UNDO_CURRENT_LOOPER = x (midi note)
Undo the current loopers in the current bank.
BANK_X = x (midi note)
Selects the X bank.
If we press BANK while it is recording in any looper, it will continue recording in the selected bank, and in the same looper that was recording, if it is empty. If it was used previously, it will play.
If we press BANK while it is playing in any looper, and the selected bank is empty, it will wait until we press one looper to use.
If we press BANK while it is playing in any looper, and the selected bank is used, it will play al the used loopers in the selected bank.
You can use a continous bank change during the recording of a looper, and you will not need to press record each time you change of bank if you are creating different definition audio loops by chaining them.
i.e. You start pressing Flash_1 and you are on the first bank, you are recording the section one of the looper one and then, if you press Bank_2 you will begin recording looper 1 of the Bank_2 automatically.
FLASH_X = x (midi note)
Where X is the looper.
This is the main action, if you press it once, it begins recording on the selected X looper. If you press it again, it will begin playing what it was recording.
If you press “FLASH x” again on a different looper when you´re recording, it will stop recording and begin playing what was recording, and will begin recording on the selected looper (x).
If you are recording and you change of bank, and the next bank´s looper is empty, it will then continue recording in the previous looper and on the new selected bank. This is called a continous recording through banks.
By otherhand, if you are recording and you press another looper, it will begin recording also. This is called a continous recording through loopers.
UNDO_x = (note number)
Where X is the looper.
Performs an undo action on the selected looper.
STOP_x = (note number)
Where X is the looper.
Stops the selected looper.
AUTO_OVERDUB_x = (note number)
Where X is the looper.
Continous recording when you press it. Each time you press it, it will record a next clip and play the previous one on the looper you´re using.
1.8 USING IT WITH BOMES
You can do different things with just one pedal (using BMT):
With one single press you will record or play, depending on the situation.
With two fast presses you will stop the selected looper.
With one long press you will undo the last record on the selected looper.