The Strummer

by SteevAtBlueDust in Living > Music

5170 Views, 44 Favorites, 0 Comments

The Strummer

in_action.jpg

Making a keyboard sound like a (strummed) guitar by using:

  1. A MIDI keyboard to determine the chord
  2. An Arduino to determine which string is being played
  3. A piece of software to remap the keyboard chord to a guitar chord, and play only the notes that the Arduino says to.

The Circuit

guitar_bb.png

In principle, the circuit is very simple - the Arduino contains six switches made from copper wire. Each digital input is a pull-down resister giving a 0 input on D3-D8. When the plectrum/pick makes contact with the string/wire, this completes a circuit to pull the input to 1.

The Arduino needs only the standard Firmata code to be loaded into it.

The Software

source_code.png

The Arduino needs only the standard Firmata code to be loaded into it.

The Processing code needs the dependancies:

  • The Minibus
  • Arduino (Firmata)

You can grab the code from https://github.com/MarquisdeGeek/Strummer

The LEGO Mount

strummer.jpg

This is nothing more complex that 6 wires threaded through the holes in a cuboid block of LEGO.

Some points to note, however:

The wires are wound tight around the LEGO, but inevitably become slack. Maybe solid core, or strips of metal would be better?

The tape on the coin is in the centre so it can make an electrical connection when strummed in either direction

Use a smooth sided coin, to stop the sound triggering repeated if/when the string hits the serrated edge. Brian May always used a sixpence as his pick, so I'm in good company ;) It's just a shame I don't have a sixpence!

Tape the unit to the desk.. it _will_ move.

Play It!

The Strummer

Et voila!

There are actually two modes of operation, if you look into the code.

By default the code runs in 'auto-strum' mode. This means that whenever a chord is recognized by the MIDI input, it is played through MIDI with a short (random) time interval between each string. This is set by:

``` bModeAutoStrum = true; ```

If you switch this to:

``` bModeAutoStrum = false; ```

you can use a suitably rigged Arduino to trigger the notes/strings individual, giving much more flexibility to the sound.

The software simply remaps the keyboard chord to a guitar chord, and plays only the notes that the Arduino says to.