I know it’s been forever since I last wrote anything on this blog, but I want to change that!
Recently I’ve been learning to play the guitar. I’m having a lot of fun doing that, and it reminded me of an idea I had floating around in my head for years: a digital guitar.
Before starting to play an actual guitar though I had no clue how to actually play one so the idea was always postponed. But NOW…
The concept is simple:
Instead of six strings with 24 frets (that are the nudges you press the string on so the note changes) each string will be a row of buttons and resistors wired in a way that each button changes the resistance, effectively making it a variable resistor. That value is then fed into an ADC which then feeds the signal into a Raspberry Pi Zero, which plays the corresponding sound sample.
For Controls I have this in mind so far:
- a volume knob (obviously for volume control)
- a rotary sensor to switch between different instruments/sample libraries
- the “strings” with 24 buttons/”frets” each, resulting in 144 buttons (thats gonna be a lot of wiring)
- two buttons for switching the octave up and down, because why not make it virtually 24*x frets (x being the number of octaves)
- 6 buttons for strumming or playing the strings individually
- 6 metal contacts for better strumming. The same contacts as the strumming buttons, but activated by touching them with a metal pick which will be connected to the guitar via cable
- on/off switch and power button, because I heard the Pi doesn’t like suddenly being cut off the power
My current plan for the string setup is this:
In theory, pressing one of the switches (which will be mouse buttons since they are nice and easy to press) should change the resistance individually. pressing an additional button above the first one shouldn’t change the value, just like you can touch the string of a guitar before the point where you press it down without changing the tune.
I’m not very knowledgeable in electronics though. According to Crocodile Clips (which is the program I used to set the above thing up) it works, but the amperage value only very slighty changes when pressing the first few buttons while the last few buttons cause very big amperage jumps. I’m not sure how that will work out in practice.
As for design, I decided to make it in the style of 80’s e-guitars because I love their funky look. Since I don’t need a guitar head (all “strings” are always calibrated) I could leave it out, but for stylistic reasons I decided to make it a Gameboy. The Display will glow while playing the Strings and maybe some more graphical effects. I could even use some of the buttons for controls, although I’ll be limited to things like on/off and the like since pretty much all other controls should be accessible on the fly, so it makes sense to put them near the strumming section.
This is roughly how it should look in the end. I might go for a different body form, depending what is the most comfortable while playing.
The parts that I already have are:
- a Raspberry Pi Zero as the brains ($5)
- an old Gameboy (although I might get transparent china-made parts instead) ($5-15)
- some old speakers of which one should suffice (basically free)
- power switch, button for powering off, potentiometer knobs and probably also a charging and earphone jack (about $6 altogether I guess)
What I still need:
- the mouse buttons (I’ll get a 200-pack for $13.20)
- the resistors (200 for $1.20)
- a display for showing the current instrument (and development info) ($1.90)
- a metal pick ($1.20)
- some shielded cable (about $5 at most I guess)
- Amp with Volume knob ($1.56)
- an ADC (I’ll use the MCP3008T-I/SL, $2.60 for two)
- a rotary sensor ($0.47)
- batteries, charging board and some voltage regulators maybe (I may actually have some of that lying around, about $10+ depending on the battery capactiy)
- the guitar casing. I’ll probably get laser-cut wooden pieces, at least for the first version. (about $10-20)
So all in all the Pitar will cost me about $63-83 or more. Still cheaper than the cheapest e-guitar I could find, and definitely more stylish and cool!
Any thoughts, tips or other comments are welcome!