3
\$\begingroup\$

I'm aiming to translate sounds played from the guitar to guitar tabs (accurately).

I've had a look at solutions for detecting which string is being plucked: Detect string plucking in electric bass guitar?

Problem is that the sound waves won't reflect which fret the strings are being played from as different tabs could produce the same sound frequencies. So I concluded purely relying on sound frequencies won't do the job (accurately). I can't have any hardware that interferes with the string touching the fret board as it could effect the performance of the guitar. But I need a solution around it, a way to detect when the string has touched the fret board (and which fret on the board as well) + how long the string has been on the fret (for accurate tabs generated).

I think the ability to detect all of those would allow me to generate accurate tabs. Does anyone have solutions as to how I can achieve this? I don't think a pure software solution would work and would be great to hear your ideas.

\$\endgroup\$
  • 1
    \$\begingroup\$ Just detecting which string is vibrating at which note should be enough...would take less hardware and installation space than searching through each fret. I think designing a pickup for 6 individual strings is easier than designing a fret detector for every fret while trying not to interfere \$\endgroup\$ – DKNguyen Aug 29 '19 at 0:37
  • 1
    \$\begingroup\$ I Agree with @DKNguyen if you use metal string, you could try to have a coil detecting the vibration for each string (six coils in total), that could possibly be placed near the bridge and wouldn't get in the way of playing the guitar \$\endgroup\$ – jDAQ Aug 29 '19 at 0:40
  • 1
    \$\begingroup\$ @hotpaw2 I dont see how that is an issue when software can just register the time of attack and assign the attack to a note after the fact \$\endgroup\$ – DKNguyen Aug 29 '19 at 1:07
  • 1
    \$\begingroup\$ If the detection doesn't need to output the result instantly (with all the processing in the Arduino) you could apply better signal processing to detect the beginning of the notes and which note it was. And, I disagree it "takes too long" for the string to go into a steady-state, after all, the microcontroller operates in the timescale of 1 us and the finger of the guitarist are plucking at ~200 ms, so, by at most 200 ms the notes should be as clear as they get, or the fastest notes would be unrecognizable. \$\endgroup\$ – jDAQ Aug 29 '19 at 1:17
  • 2
    \$\begingroup\$ @thatguyjono: See my answer to Expresiv MIDI guitar implementation which discusses the fretboard side of the problem. \$\endgroup\$ – Transistor Aug 29 '19 at 6:15
1
\$\begingroup\$

A good MEMS accelerometer can operate throughout the full audible range (https://www.analog.com/media/en/technical-documentation/data-sheets/adxl1005.pdf). If you strategically placed a few of these on the guitar I bet you could pick out the phase differences based on the vibration of the guitar.

|improve this answer|||||
\$\endgroup\$
  • \$\begingroup\$ Yes. With 2 mems, you might be able to measure when the first traveling wave from a pluck reflects off the fret, allowing you to determine determine which fret (by distance). \$\endgroup\$ – hotpaw2 Aug 29 '19 at 4:10
0
\$\begingroup\$

If it's possible to build a special neck, a strain sensor on each of the fret bars could detect a press on the fretboard.

Another solution would be to use machine vision approach to watch the player's fingers. Here's a paper about that: https://pdfs.semanticscholar.org/1aad/47eaa4e6c9e2b5b69c4d7d7f4d0c87d03e1a.pdf

Another: http://joey.scarr.co.nz/pdf/autotab.pdf

Here's yet another approach using CNN (Convolutional Neural Networks) to detect tabs: https://towardsdatascience.com/audio-to-guitar-tab-with-deep-learning-d76e12717f81

|improve this answer|||||
\$\endgroup\$
  • \$\begingroup\$ Or piezo film sensors on the fretboard (e.g. te.com/usa-en/products/sensors/…) \$\endgroup\$ – tonys Aug 29 '19 at 2:36
  • \$\begingroup\$ Yeah... but seeing as how I work in AI now I'm liking the latter solution the best ;-) \$\endgroup\$ – hacktastical Aug 29 '19 at 3:05
  • \$\begingroup\$ Or capacitive 'touch' sensors on the fretboard \$\endgroup\$ – david Aug 29 '19 at 3:35

Not the answer you're looking for? Browse other questions tagged or ask your own question.