loading

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.

Step 1: The Circuit

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.

Step 2: The Software

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

Step 3: The LEGO Mount

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.

Step 4: Play It!

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.

<p>This is pretty awesome! This should be featured, too.</p>
<p>Changes from @<a href="https://www.instructables.com/member/etmh/" rel="nofollow">etmh</a> now made.</p>
<p>I'm not yet skilled enough in my technique for note on/note off to make a difference; but I like the idea of muting the strings. I'll include it in the next code release. Thanks for the suggestion!</p>
Just a quick thought - would it sound/feel more natural if the midi event was triggered by the string/pick contact being released, as this is when a real guitar string would sound? Could this be extended so that it's possible to mute strings by touching strings with the hand containing the pick?

About This Instructable

3,901views

41favorites

License:

More by SteevAtBlueDust:The Tilt Lamp Migraine Alert LEGO Love 
Add instructable to: