I perform and record fingerstyle guitar music and wanted a way to control a software synthesizer during live performances. This would allow me to perform more complex arrangements and diversify my sound.
The simplest way I could think of doing this was by adding a MIDI controller to the pickguard (known as a scratchplate in the UK) of my guitar. This is in a convenient place for fingerstyle players as the picking hand rests close to this region of the guitar in most fingerstyle techniques. Capacitive touch sensing was used as it allows larger contact areas to detect note presses.
For a microcontroller, I decided to use an Adafruit Feather 32u4 Bluefruit as it allows you to send MIDI using low energy bluetooth. Conveniently, it also has a JST port to enable charging via a Lipo battery. This makes it an ideal microcontroller to make a portable MIDI device with.
How the controller worksTwelve capacitive touch pads are used, corresponding to the twelve notes in the chromatic scale. These pads are wired to an Adafruit MPR121 capacitive touch sensor breakout, which provides a convenient way to send capacitive sensing information to the microcontroller through I2C communication. The breakout board and associated library also handle the analog data from the touch pads making this part of the project easier to code.
Three push buttons, two potentiometers and a toggle switch are also wired to the microcontroller. Their functions are defined below:
Push Button 1 (Octave Up): Increases the pitch of the capacitive touch pads by one octave.
Push Button 2 (Octave Down): Decreases the pitch of the capacitive touch pads by one octave.
Push Button 3 (Sustain): Switches the MIDI controller to/from sustain mode. In sustain mode the controller can only play one note at a time. A note is played when a pad is pressed and stopped when the pad is pressed again or a different pad is pressed. In contrast, default behavior allows multiple notes to be played at once, and notes are only played when a pad is pressed.
Potentiometer 1 (Volume): Determines the value of the volume knob (CC 7). Maps to a value between 0 and 127.
Potentiometer 2 (Mod Wheel): Determines the value of the mod wheel (CC 1). Maps to a value between 0 and 127.
Note: using MIDI Learn it is usually possible to make these CC values control other parameters on your software synth.
Toggle Switch (Power): Turns the board on and off.
WiringFollow the wiring in the breadboard diagram below. Before soldering, I recommend first creating a prototype device on a breadboard to ensure you have wired the circuit diagram properly. When creating a device that will be soldered and mounted to a guitar ensure you measure wire lengths to the necessary lengths. This requires measuring the wire length from the MPR121 to the microcontroller, and the touch pads to the MPR121 respectively. In my case this was 40 cm and 20 cm respectively.
For a battery, I used a 2000mAh LiPo battery which can connect directly to the feather via a JST-PH connector. When buying a LiPo battery: the important thing is that your battery has a JST-PH connector with the wires in the correct orientation.
In the prototype example shown here I use the exposed ends of single-core wires as touch pads.You could also make actual touch pads by sticking the ends of the wires to the scratchplate with conductive tape.
SoftwareThe sketch is given below. You will first need to configure the Arduino IDE to detect the Adafruit feather. You will also need to install the following libraries:
- Adafruit MPR121
- Adafruit BluefruitLE nRF51
Start by opening the BluefruitConfig.h tab (available from the nRF51 example sketches) and then open and upload the MIDI scratchplate sketch.
Acknowledgements: I adapted my code from ble_neopixel_mpr121.ino example by Todd Treece, copyright of Adafruit.
Using the scratch plate MIDI controllerBefore mounting the controller, it's worth testing that it works.
Once the controller is wired (either to a breadboard or protoboard) and the code is uploaded, it can be connected directly to a software synth on a platform that supports Bluetooth LE. I connected my controller to the free Audiokit Synth One app on an iPhone SE. The controller was visible as a Bluetooth MIDI Device (named 'Adafruit Bluefruit LE') and can be connected to directly via the app. It's then ready to make music and you can mount it to your guitar.
Mounting the controller to a guitarMountingthecontrollertoyourguitarvia my method requiresstickingelectrical PVC tape directly to the finish of your guitar. If you aren't comfortable doing this, do not proceed with mymethod. I cannotguarantee this won't blemish the finish on your guitar.
To secure the controller to the guitar I used electrical PVC tape and hook and loop tape (of which velcro is a well known brand). See the pictures below to see how this works.
The purpose of the PVC tape is to protect the finish of the guitar from the adhesive on the hook and loop tape. I tested a few different tapes (masking, parcel, PVC) and PVC was the cleanest to remove from the wood of the guitar. I recommend testing a small strip of your PVC tape to ensure it can be removed without leaving adhesive residue on the finish of the guitar before adding more tape.
All the boards, batteries and wires can be fixed to the guitar using hook and loop tape. I fixed the hook tape to the body of the guitar (protected via PVC tape) and the loop tape to the boards, batteries and wires. This means the controller can be removed or installed quickly and non-destructively.
YoushouldnowhaveaworkingscratchplateMIDIcontroller.Letmeknowinthecommentsifyouhaveanyimprovements/alternativeideasonthecurrentdesign.Also,feelfreetoshareanymusicalperformancesyou'vemadewithyourscratchplateMIDIcontroller!
Lastupdated:24/11/2021(version1.0.0).
Comments
Please log in or sign up to comment.