the oneString usb ribbon synthesizer controller


Inspired by the simplicity of the one-string “Diddley-Bow” of Delta Blues, the oneString controller is a super-simple and highly-expressive controller for laptop musicians. It’s designed to be an easy to construct, open-source USB MIDI ribbon controller for musicians looking for a new way to perform and compose.

  • USB Powered, allowing for only one cable. This means easy setup and portability in our wire-filled lives.
  • Uses a standard MIDI signal over USB allowing compatibility with almost all music software packages. (ANYTHING that takes keyboard input: Reason, reNoise, Energy XT, Ableton, FL Studio, Max-MSP, PureData… the list is endless!)
  • Uses free and open-source drivers to allow the most economical cross-platform (WIN, OSX, LINUX) solution.
  • Uses a minimum of parts, making it cheap and allowing for simple build instruction that even a beginner builder can finish in a day.
  • Body construction based on simple parts, allowing for everyone to easily make cool unique instruments without a wood-shop or plastics prototyping shop at their disposal.
  • Uses Arduino firmware allowing for augmentation and support from a HUGE open-source community.

Check out the latest demo on Youtube! :

How it Works – What’s a “ribbon controller”??

A “ribbon controller” is a long position-sensing strip that can control the tone or modulation of a synthesizer, much like a slide-able guitar string. The sensor is read by a condensed USB powered “Arduino” circuit, which sends the MIDI synth signal to your laptop. Once there, the signal is translated by open-source software and transported to the music software of your choice.

The device has a dip-switch to allow for 16 preset interface modes (ex: pitch-bend continuous tone, individual note sending, multi-octave ranges, control of other MIDI “CC’s, etc… ). A potentiometer (knob) allows the user to change the tuning of the instrument on the fly. Unlike currently available ribbon controllers, the oneString can be triggered by a second “rhythm tap” sensor, allowing for a unique 2-handed play-style.

oneString Modifications: covers body, note markings, layout, and possible firmware changes


Kit Building Documentation: Pdf with high-res images : Covers circuit board build and sensor mounting

Getting Started Documentation : Driver and software installation, modes, settings and playing the oneString.

Upgrading the oneString Firmware

As the oneString is Arduino based, the firmware can be updated by anyone using your existing cable, the source code (below) and free Arduino programming software.

The Arduino software for Windows, Mac, and Linux can be found at: Download Page

For those familiar with the Arduino platform, the oneString appears as an “Arduino Duemilanove w/ Atmega328” on the serial port used by your FTDI USB/Serial cable.

For those not familiar, here is a step by step guide:

  • 1. Download and unzip the “Project Source Code” found in the next section of this page.
  • 2. Unzip/unpack the entire archive to any folder
  • 3. Rename that folder to “oneString” (nothing else)
  • 4. Install the Ardunio software as per the instructions on for your operating system. – The drivers have already been installed, when setting up your oneString.
  • 5. The folder called “libraries” in your onestring folder will need to be moved to the Arduino documents folder located at: Documents>Arduino>libraries (where Documents is you operating systems default “Documents” or “My Documents” folder.
  • 6. Plug in your oneString FTDI cable and the oneString instrument ( green blink pattern will occur). DO NOT open “Hairless MIDI” or any oneString software.
  • 7. Open The Arduino environment (software), click on File > Open
  • 8. In the “Open an Arduino Sketch” window, navigate to your “oneString” folder and select the file “oneString.ino”
  • 9. You should now see an Arduino window with gray text saying “oneString midi controller firmware” and the entire programming code for the firmware.
  • 10. In the menu, select Tools > Board > Arduino Duemilanove w/ Atmega328
  • 11. In the menu, select Tools > Serial Port > (the serial port you normally select in Hairless Midi)
  • 12. Press the small red “reset” button on the oneString (you'll have 3 seconds for step 13 once this is pushed.)
  • 13. Below “File” in the menu, there is a check-mark and an arrow pointing to the right. Click the arrow pointing to the right (called “Upload”).
  • 14. Wait…

If everything worked, you should see some messages pass in the blue bar:

  • Compiling Sketch (with a progress bar)
  • Uploading… (and then )
  • Done uploading.

Your oneString will now blink the normal start-up blink pattern. You can now close the Arduino software, and use the oneString as normal.

If you received an error: “Serial Port (…) already in use”, verify that Hairless Midi or your Serial-Midi program is closed.

If you receive an error mentioning “avrdude” or any other error, verify that the oneString is properly connected, and that you pushed the oneString's reset button immediately before clicking the upload button in Arduino software. (Trying again will hurt nothing!)

If you still get a crazy error, let us know in the forum, and we'll get you working!

Source Documentation

Project Schematic : Initial Version

Project Source Code : v1.2 : July 17, 2012

Release History

First Public Release : V1.0 May 15, 2012 V1.1 5-Jun-2012

  • Added additional LED function
  • Corrected tuning jitter
  • Correction to octave ranging in One-Hand Mode
  • Improvements to Bend Modes

V1.2 17-Jul-2012

  • Resolves bass jitter in one-hand mode seen with some setups
  • Improves “sticky fingers” bass re-triggering on release in one-hand mode
  • Removed redundant note-off calls in One-Hand Mode

FTDI Drivers The download page for the FTDI serial-to-USB cable drivers for all operating systems

Hairless Midi bridge: The awesome project by Angus Gratton -This is currently the best recommendation for a midi-to-serial bridge on OSX and Windows machines