The goal of this project is to provide open hardware design of OSC (Open Sound Control) and MIDI foot controllers, primarily targeted for use with SooperLooper, distributed under the GNU General Public License.

The development was done on GNU/Linux Debian Squeeze but its implementation may be done with other Linux distributions or even should be simple to implement it on Mac OS X or Windows.

Here you can get everything you need to build your own foot controller using free software tools!

Content



News



OSC Foot Controller with USB Interface

The following is a simplified diagram of the OSC Foot Controller and its software (OSCBrigde) for use with SooperLooper and/or any other application with OSC interface.

The next sections describes the basic parts of the last diagram, a simplified implementation cycle and an example of using for the OSC Foot Controller.

Hardware

In the 'hardware' directory of the download package there is a complete Kicad project, with schematic and PCB ready to be built.
Basically, this is an USB-powered board, built with an inexpensive microcontroller from Texas Instruments, the MSP430F2013, although the development is compatible with other MSP430 microcontrollers. This microcontroller sends a byte via 232 to a chip FTDI FT232BL whenever a switch is pressed on the pedal. The FT232BL forwards the data to the PC via USB. The board has simple pin connectors to connect the pedal switchs.

Firmware

In the 'firmware' directory of the download package is the C code for the MSP430 microcontroller, ready to be compiled with msp430-gcc command.

To download it into the eeprom of microcontroller and debug the program may be used the Texas MSP-EZ430U Debugging Interface Tool and the command mspdebug.

The task of this firmware is as follows: When a Hi to Low edge appears in pins P1.2 to P1.7 a byte is sent through pin P1.1. This sending is done using the Timer A0 interrupt service routine. Besides, Timer A1 interrupt service routine is used as debounce filter at input pins.

Software - OSCBridge

In the 'software' directory of the download package is the C++ code for the 'oscbridge' software, ready to be compiled with gcc compiler. This software captures the commands arrived from USB and passes them to the OSC interface specified, being able to configure a default server.

The mapping is performed as indicated in an XML configuration file, which can include multiple banks command, which expands the number of commands that the pedal is capable of sending. In the 'sofware/map' directory of the download package there are several examples of the format this file should have.

To compile this software are required Boost Library and Liblo, both in Debian oficial repositories.

Optional simple GUI

Besides, an optional simple GUI written in Perl is included, which receives commands mapped by the OSCBridge through an UDP port and displays them on screen. The following is a capture of this GUI.


Implementation Cycle

A possible implementation of a foot controller for SooperLooper may be done with four controls (buttons), corresponding to the following commands of SooperLooper: Select_next_loop, Record, Overdub and Undo. Of course, if you take a look into the 'software/maps' directory, you will see that the relation between each buttom and its command associated is flexible by using sel_next_bank and sel_prev_bank commands (exclusive commands of OSCBridge), through which you can alternate between several banks of commands on the fly.

Construction of the structure

To do this can be useful a cover plate from an old desktop PC, which would be cut, resulting in a structure similar to the Marshall footswitch Pedlar-10 049 of four buttons. The following are pictures of a final hardware implementation.

             


Firmware compilation and microcontroller programming

To compile the firmware use the msp430-gcc command in the following way:

$ msp430-gcc -g  main_OSC.c -o main_OSC.elf -mmcu=msp430x2013

To program and debug this firmware in the microcontroller using the interface MSP-EZ430U Debugging Tool attached in ttyUSB0, use this commands:

$ mspdebug -d /dev/ttyUSB0 uif
$ (mspdebug) prog main_OSC.elf
$ (mspdebug) run

Software 'oscbridge' compilation

To compile the software 'oscbridge', go to the 'software' directory and run:

$ make

NOTE: Modify the variable $BOOST_PATH in the Makefile with the correct path to the library Boost in the system.

Use

Example of using with SooperLooper

Here are the steps to use the foot controller with SooperLooper.

One option is to run the bash script 'run.sh' located in 'software' directory. This will launch the OSCBridge, its graphics iterface and Sooperlooper.

Another option is to follow the following steps:

NOTE: To get a better performance and a low latency, is recomended to use a Linux Real Time Kernel. A good option would be the kernel provided by Pengutronix, or if you like, try to compile your own one!

Screenshots

Here appears some screenshots of OSC pedal and SooperLooper.

             

Videos

Some brief loops sessions created with SooperLooper and the OSC pedal can be found here!



MIDI Foot Controller

Unlike the OSC foot controller, this MIDI controller connects directly to an standard MIDI input (with DIN5 connector) and doesn't need any additional software. Besides, due to it has a little quantity of components, its implementation is really inexpensive.

However, used with SooperLooper, it is necessary to connect virtually the pedal and the loop's program. Besides, it is necessary to make the binding of MIDI commands, which is done via the SooperLooper's setup menu. Of course, these last two task are really easy to do!

The next sections describes the board's hardware and firmware, a simplified implementation cycle and an example of using for the MIDI Foot Controller.

Hardware

In the 'hardware' directory of the download package there is a complete Kicad project, with schematic and PCB ready to be built.
Basically, this is a board powered by 9V battery, with a very economic microcontroller of Texas Instruments, the MSP430F2013, although development is compatible with other MSP430 microcontrollers. The board has single-pin connectors for connecting the battery, a switch-on, the buttons and DIN5 connector (standard MIDI).

Firmware

In the 'firmware' directory of the download package is the C code for the MSP430 microcontroller, ready to be compiled with msp430-gcc command.

To download it into the eeprom of microcontroller and debug the program may be used the Texas MSP-EZ430U Debugging Interface Tool and the command mspdebug.

The task of the firmware is: when a falling edge appears at one of the pins P1.1 to P1.7 of the microcontroller, a MIDI Note On command is sent through P1.0 pin. This sending is done using the Timer A0 interrupt service routine. Besides, Timer A1 interrupt service routine is used as debounce filter at input pins.

Implementation Cycle

A possible implementation of a foot controller for SooperLooper may be done with four controls (buttons), corresponding to the following commands of SooperLooper: Select_next_loop, Record, Overdub and Undo.

Construction of the structure

To do this can be useful a cover plate from an old desktop PC, which would be cut, resulting in a structure similar to the Marshall footswitch Pedlar-10 049 of four buttons. The following are pictures of a final hardware implementation.

             


Firmware compilation and microcontroller programming

To compile the firmware use the msp430-gcc command in the following way:

$ msp430-gcc -g  main_MIDI.c -o main_MIDI.elf -mmcu=msp430x2013

To program and debug this firmware in the microcontroller using the MSP-EZ430U Debugging Interface Tool attached in ttyUSB0, use this commands:

$ mspdebug -d /dev/ttyUSB0 uif
$ (mspdebug) prog main_MIDI.elf
$ (mspdebug) run

Use

Example of using with SooperLooper

Here are the steps to use the foot controller with SooperLooper using an M-Audio FastTrack Pro soundcard. Steps are:



FAQ