Notating strings and a pick for computer programs

Sometimes I’m tempted to write a program that reads MIDI files and attempts intelligent layout in TAB with realistic constraints about what can be tapped, etc. This is actually a difficult problem not only because the search space grows rapidly but because I’m not sure that there is a single correct answer. But to make writing such a program as easy as possible it is useful to have great notation. I thought about this problem for a while and the following is my best notation to date, by far. I’ll type a picture:

Up above is 0, pick is free.
(1|2) (3|4) (5|6) (7|8) (9|10) (11|12).
WOOD OF THE GUITAR IS HERE

One guitar string is (1|2), it has two halves.

So if I pretend everything is a rest stroke, with no loss of generality:

  • USX looks like 057 (starts at 0, goes through 5, rests on 7), 760 (goes back out).
  • DSX looks like 086, 670.
  • Sweeping might look like 057, 79.
  • Double-escape is 070, 080, etc.
  • One can even express how I do 3nps: 079, 986, 670,
    • one can see that I don’t have a double-escaped motion.

If anybody can think of even simpler and more powerful notation, kindly share it with me! But this notation might be “good enough” to start, I’ll contemplate that the next time I’m in the shower. :rofl:

2 Likes

Interesting way of splitting the string up. I’m guessing MIDI encoding only handles integers, and you’re trying to write a custom encoder & decoder, I don’t know if you can go wider or start using encoding bitfields etc.

Conceptually I’d like to abstract it to what we’re already familiar with; using fret numbers + string number(1 to n) + direction (V/U), and tuning as a global. I’m assuming VU has always been enough to figure out the motions, provided it’s tabbed correctly, often this is not the case, I still remember trying to play Malmsteen’s fire and ice from the tab book, everything was wrong IIRC, the notes, their positions ( chord shapes) and the picking instructions, the horror :joy:

Yeah, this is a fun problem, somebody here needs to write a program to generate great TAB. Indeed, each piece of music should have several TABs, depending on the techniques, I am afraid:

  • DSX only
  • USX only
  • DSX + USX
  • versions of the above for two-handed tapping lovers
  • and more

I think the ideal TAB program would work like this: It provides TAB given the following:

  • a MIDI file
  • guitar tuning
  • which picking techniques are preferred
  • which picking techniques are not preferred but permissible
    • for example, swiping

I have convinced myself that one TAB does not fit all. I agree that the generated TAB should have the standard look, it’s just that internally to the program it seems to be really useful to think of half of a string to describe the pick motion (at least given my thoughts so far). I might take a first shot in a few months from now, I’ll think about it on-and-off. I keep on thinking that there is a better way than what I describe, above, but it seems to be workable.

1 Like