Playing in a 2 piece band, with the drums and lots of other samples being played back as backing tracks, there was a need to use a looper to add in more elements to the tracks. A hardware based looper fails in this respect, since there is no way to maintain synchronisation. Meaning, slight discrepancies between triggering the start loop and end loop, even if it's ever so minute, will add up as the bars progress, and since there's no drummer to adapt to the loop, it will eventually run off time.
Thus, a software based looper is the way to go. Not just because you can maintain tempo based synchronisation on the DAW software that you're hosting the plugin, but also because most of these software loopers are free, and more functional than a hardware looper could ever be.
There are quite a few to choose from:
Since your arms are occupied with the daunting task of playing an instrument, you need to control the parameters of the looper through your foot. This is where the midi foot controller comes in. If you aren't familiar with what MIDI is, here an article.
Many midi controllers are available in the market, and the Beheringer FCB1010 is one of the most popular ones out there. But the perks of building you're own are:
The concept is quite simple and straightforward. You press a button, the arduino interprets the signal arriving from the button as a midi "control change" signal (typically represented as MIDI CC), and this signal can be mapped to respond to any of the parameters of the looper.
This project can be done using any micro-controller based on the arduino architecture. I chose a Teensy 3.1. The reason for this has been elaborated in this article.
Tools and misc:
WARNING: This tutorial involves the operation and usage of power tools, which when handled improperly, may lead to injury, and in ridiculously dumb circumstances, fatality. If you've never used power tools before, go to your neighborhood workshop and ask for assistance. If you are under 18, supervision is strictly required. I shall not be held accountable for any losses that a user of this instructable may sustain, either financial, physical or mental(??).
Basic electrical skills such as soldering, is required.
Coding skills are optional, you are provided the code. But it's advisable to have a background in C/C++ to be able to modify and change parts of the code according to your requirements. For anyone with a background in coding, Arduino programming is very simple and straightforward. Here's some material that can help you get started with arduino programming.
I'll split this tutorial into four parts:
1) Prototyping with a couple of inputs
2) Hardware build
3) Assembly, and basically putting it all together