This has been an ongoing project for almost 5 years now. Essentially it's an electric bass guitar (5 string, 34" scale) with several enhancements aimed at easing and speeding learning. The main idea is to provide a kind of "active tablature" directly on the instrument's fretboard. This is done by embedding a 3mm blue LED in each possible fingering position (5 strings x 25 frets = 125 positions/LEDs). The LEDs are connected to on-board hardware which drives them so as to indicate, in real-time, where the player should place their fingers in order to play a song/scale/etc. The electronics are based on the open-source MIOS project, an abstract hardware framework for MIDI based applications.

I finished the woodworking in 2006 and have been playing it as a regular bass since then. The body is made out of zebrawood with a top-plate consisting of a 7-piece sandwich of cocobolo, mahogany, and amboyna burl. The neck is purple heart and the fretboard is ebony. Although the electronics were assembled quite some time ago, writing the firmware took considerably longer (I finished it in January 2009). The hardware implements a basic MIDI sequencer which can load MIDI files over a MIDI connection and store them in onboard flash memory. There are basic features like pause/playback, adjustable tempo, track scrubbing, and the ability to set A-B points so you can easily repeat difficult sections. I also needed to write some preprocessing software to convert MIDI files to fingering patterns which turns out to be a pretty tricky problem. Luckily I discovered Vince Negri's excellent Holdsworth library which made things significantly easier. I'll be making source code and schematics available once I've had the chance to clean and property comment things.

Update 07/28/2009: It works! I finally got all the hardware installed, squashed a few remaining hardware (one of the LEDs seemed to be drawing more current than the MIOS DOUT board could source and required a separate switch - a little sketchy, but 1 out 125 isn't too bad, right?) and firmware bugs (timestamping could be more accurate), and things seem to be working pretty well.