Recently I have been straying away from producing my personal music in the box with a DAW. I am beginning to enjoy the fast pace workflow required for live looping. Using my existing Novation LaunchPad and LaunchKey made it easy to play a beat/keys and have it loop in the backround. It also gives you control of different scenes and automations allowing you to create different sections to a song.
While it is fun to use the drum pads and keyboard, my main instrument is guitar. Unfortunately, unlike the other two midi devices, a guitar does not have buttons you can quickly press to record, overdub, undo or stop your recording.
Looking online, few foot-switch MIDI controllers exist and the few that do such as the Keith McMillen Instruments SoftStep 2 can cost up to $300.
I believe in the music industry, we have just begun to leave an era of sample saturation and in the box production. My prediction based on rising artists such as Kan Sano, Elise Trouw, Masego, FKJ, Tash Sultana and Tom Misch makes me feel as though the next trend will be an integration of both live playing and sampled music through live looping.
I set out to create an prototype boutique pedal. The main priority was creating a working and affordable proof of concept for my self.
The Arduino Uno board is one I have many of at home and can be used for a range of applications even unrelated to music. Digital butler Watson as wells as the Quadcopter from my previous posts are also Arduino based. For this project, it will be used to interoperate when an individual foot switch is pressed and send out a specific MIDI cc#. This cc# can then be mapped to anything in Ableton.
Soon I plan to turn this into a boutique pedal for anyone to purchase and will be instead based on the same micro controller processor (ATmega328P) as the smaller Arduino Nano. It is for this reason that I had to design a prototype that used no middleware/software for interpretation and translation. I wanted it to all occur within the midi controller so that a consumer was guaranteed a plug and play experience. Currently, the pedal is being detected by my mac as a MIDI device called Snyxen(my hobby artist name)pedal.
Note: the MIDI data being sent is in the -2 octave. This is to avoid mapping a function to a playable note. Most musicians never use the -2 and some DAWS such as logic only allow you to play an instrument down to the -1 octave.
Without getting into too much detail, the Arduino uses a firmware built by the company to allow the device to be programmed and have code written to it. Unfortunately this means that no matter the code, the Arduino will always be seen by a computer as an Arduino rather than a midi device like the launch key and launchpad. While it is possible to erase the firmware and flash one that reads the Arduino as a MIDI device, it then becomes impossible to debug and change code once uploaded.
The resolution to this issue was to install a dual bootloader firmware. This is essentially both the factory firmware and MIDI device firmware combined. Only one can be used at a time but now firmwares can easily be switched by plugging in the device while shorting two pins on the board.
Note: The final version will continue to use USB-B as it is more durable than micro usb, cheap and easy to find in 10ft length cable.
Final versions of the pedal will only have the MIDI firmware installed and my current dual bootloader setup will be used for future prototypes with expanded buttons and mappable Wah pedal potentiometers. I am also trying to use Max for Live in order to receive messages from Ableton such has BPM or scene selection and have them indicate on the controller.
I will begin by making a fairly small batch of 7-12 pedals. If the demand is there as predicted, the I will gladly sell a limited run (time constraints), otherwise I will release the code and dual bootloader firmware.
The prototype works well and I have yet to experience any issues. One thing to consider is that the next aluminium enclosure shouldn’t not only be shorter in width but slightly longer in length to accomodate room to press buttons with shoes.
Below is a quick example demo: