Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Additional entry types needed #3

Open
Guitarbum722 opened this issue May 30, 2017 · 9 comments
Open

Additional entry types needed #3

Guitarbum722 opened this issue May 30, 2017 · 9 comments

Comments

@Guitarbum722
Copy link
Owner

Guitarbum722 commented May 30, 2017

Currently, the only entries supported are a fret number on the instrument's 'string.' There are several other types of entries that are necessary for tablature to make them more robust and useful.

  • Hammer-On
  • Pull-Off
  • Dead String
  • Slide
  • Bend

Examples

Hammer On -
---2h5---

Pull Off-
---5p2---

Dead String
---x---

Bend
---7b9---

Slide
---10/12---

Additional Notes

Currently, each 'entry' is 3 bytes in length, allowing for fret numbers nil through 999.
Eg. ---, --1, -14, 212

It is, of course, unlikely that there is a stringed instrument that would have that many frets. However, the functionality is there.

Therefore, the length of each 'entry' will need to be more dynamic to allow entries that are longer in length.
Eg. ---22h24---

Not only does this have to be acceptable for the desired 'string' of the instrument, but the length of the dynamic position must also be applied to the other 'strings' of the instrument to hold the integrity of the alignment of the whole fretboard.

@briandowns
Copy link
Collaborator

Palm mutes, pinch harmonics, bell harmonics, and tap as well?

@Guitarbum722
Copy link
Owner Author

@briandowns - Good call; I was hoping you'd chime in with some additional functionality. Could you document some examples in this issue?

@briandowns
Copy link
Collaborator

Interesting problem now. Either we come up with something close to a standard representation, we diverge from one, or possibly introduce another layer of complexity. For the first, it's kinda difficult. For the second, we could represent palm muting with {5}, harmonics of any sort with (6), and no clue for tapping. As for the third, introducing another level of complexity, maybe introduce 2 more lines in the buffer. A blank line above the high e and then a status/symbol line. This line would contain the standard tab notation for a P.M., or tap.

@Guitarbum722
Copy link
Owner Author

I really like the idea of adding a couple of additional lines to each instrument's map. Although there aren't any real 'standards' with tablature, I think having the extra notation above or below the fretboard would be most familiar to users.

I kind of like the idea of {5} or (6) for the purposes of lexing/parsing, but as long as we come up with strict entries for the additional lines I think that would still be covered.

Do you think that ALL of the enhancements listed above could be covered with the additional lines? That way we could theoretically keep the existing entry length of 3.

@briandowns
Copy link
Collaborator

Whenever I write my tabs, I typically use this as the template. Some enhancements will be in the tab, some on a new line.

@Guitarbum722
Copy link
Owner Author

That site seems to cover most bases...let's use it as the baseline for standardization.

Regarding "note length," do you feel that is something that should be handled in the actual entry of the tablature, or better suited functionality for "cursoring" through the tab and edit/touch it up?
Eg.

--------3------
-------3-------
------4--------
-----5---------
----5----------
---3-----------

vs.

------------------3----
---------------3-------
------------4----------
---------5-------------
------5----------------
---3-------------------

@briandowns
Copy link
Collaborator

I personally like the second. It's clear the G bar chord is arpeggiated. As for timing or note length, I'd imagine it's relative positioning in the measure and song cadence would indicate it somewhat. I could be way off base though.

@Guitarbum722
Copy link
Owner Author

Ok, so here are the entries I will plan on adding. This includes additional lines that will be displayed above the 'fretboard' in order to extend the functionality.

For the most part, I'm using the link that @briandowns provided as a baseline because of the simplicity and readability.

Feel free to chime in or add. My biggest concern is tokenizing all of this eventually.

Hammer-On
-22h24-

Pull-off
-12p10-

Bend
-7b9-

Slide Up
-12/15-

Slide Down
-15\12-

Tap
-22t24-

Dead String (strike the string but muted)
-X----

Entries using the new line above the fretboard

Palm Mute

  (P)  
 --2---  
 --5--- 

Vibrato

 ~~~~~     
 5-----

Pinch Harmonic

  <>
--12---

Harp Harmonic

   {3}
--<12>

@briandowns
Copy link
Collaborator

All of that looks great. Tokenizing should be interesting. I can lend a hand with that if you want.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants