Adding Voltages

djsfantasi

Joined Apr 11, 2010
9,163
You are half way there. Connect each string to the +5 V through a different resistor.

Specifically, binary-weighted resistance values. For six strings, that would be something like 1K, 2K, 3.9K 8.2K, 16K, 33K. The current available at each fret will vary over a 64:1 range, with a unique value for every possible string combination. The guitar now is a D/A converter, with the digital bits being the player's fingers.

I used 5% resistor values above, but the closest 1% resistor values will work much better.

ak
And what would happen if one string is pressed on two or more frets? The associated string would have two resistors in parallel, making the value returned by the R2R DAC incorrect...

If one could guarantee that every string only contacted one fret, this is a clever solution. But you can’t guarantee that and the TS has stated that as an issue to be resolved.

Consider the matrix of string/fret possibilities as a large keyboard problem. The solution there is to scan all rows (frets) and columns (strings). Duplicate presses are resolved by assigning a priority to each fret in software. If one press is more distant than another press from the pickups, the one closest to the pickup is the proper choice.
 

AnalogKid

Joined Aug 1, 2013
11,055
And what would happen if one string is pressed on two or more frets? The associated string would have two resistors in parallel, making the value returned by the R2R DAC incorrect...
I thought of that while writing the post, but that issue is not specific to this approach so I went ahead and posted.

ak
 

MrAl

Joined Jun 17, 2014
11,494
If you drive each string with a pulse at a specific time you can then detect which string is contacting a fret by the time the pulse comes in on a specific fret. If two stings contact the same fret no problem because then you will detect a pulse at the time the first sting is pulsed and a second pulse at the time that the second string is pulsed. That way you know both strings are touching the same fret. It's the same way a keyboard is scanned really. The pulse width and separation just has to be fast enough to meet the playing speed which can be quite fast (for example an arpeggio or trill will be quite fast sometimes).

A second way would be to use weighted current sources not voltage sources.
Each string gets a current that is twice the previous. For example the low E string gets 1ma, the next string 2ma, the next 4ma, the next 8ma, and the next 16ma and the next (high E) gets 32ma.
Now if the low E touches fret7 and the high E touches fret 7 the total current from fret7 will be 32ma+1ma which is 33ma. Because the string currents are in powers of 2 no matter what the combination it will always be different for any combination so you can theoretically always tell what stings are touching what frets. In theory this certainly works, but it may require some care to be able to detect the difference between 32ma and 33ma for example.
That's an analog method of doing it, but the digital method (multiplexing above) is probably more reliable and easier to implement with a microcontroller with enough i/o ports.

Back in the 1970's they made a special guitar for these purposes but i dont know if they still do or not. They may have used tone detection but i cant remember that far back and i only played one a few times. It was used in connection with a very sophisticated synthesizer that was able to seriously alter the sound of the guitar itself.
 
Last edited:
Top