Skip to content

Instantly share code, notes, and snippets.

@SalchiPapa

SalchiPapa/HARTab.md

Last active Aug 6, 2020
Embed
What would you like to do?
HARTab: Harmonica ASCII Rhythmic Tablature.

HEARTab: Harmonica ASCII Rhythmic Tablature

Syntax

Standard syntax

Blow hole

+4

Draw hole

-4

Bending

Bends
Half step bend
-3'
Whole step bend
-3''
1½ steps bend
-3'''
Overbend
+6o

Chords and multiple notes

+(4 5 6)

+(4 5)

Extended syntax

Metadata

These are optional, ideally at the very top of the tablature if included.

Title: Final Fantasy IX: A Place To Call Home
Composer: Nobuo Uematsu
Harmonica: C Diatonic

Time and tempo

Optional, should be at the top of the tablature, below the metadata if present and above any measures.

Time = 2/4
Tempo = Quarter = 72 bpm

Notes and chord names

Note names are optional and go on top of all the other other symbols.

 D  E  F  G
-4 +5 -5 +6

   (C)
+(4 5 6)

  C E
+(4 5)

Measures

   D  E  F  G
[ -4 +5 -5 +6 ] [ ] [ +6 -5 +5 -4 ]

Measure number

{8}[ -4 +5 -5 +6 ]

Tongue block and slap

TS
+4

    |=TS=|
+(4 5    6 7)


  |=TB=|
+(4  5 6 7)

Tongue roll

TR
+4

 |=TR=|
+4   +5 +6

   (TR)
+(4 5 6)

Hand vibrato

Can be used across multiple measures.

~~~
+4

~~~~~~
+4 +5 +6

~~~~~~~~~
+(4 5 6)

Throat vibrato

Can be used across multiple measures.

vvv
+4

vvvvvvvvv
+4 +5 +6

vvvvvvvvv
+(4 5 6)

Wah effect

Can be used across multiple measures.

www
+4

wwwwwwwww
+(4 5 6)

Stacatto

 *
+4

   (*)
+(4 5 6)

Tie/Slur/Portamento/Glissando

Can be used across multiple measures.

 /==\
+4 +8

   /=====\
[ +4 ] [ +8 ]

This represents a slur and means, play the first note and the second with a "smooth" transition, this will also cause a glissando effect.

 /==\
+4 +8

This represents a tie and means, play the note extended for the duration of the combined time values in this case one whole time value (see further below).

      /======\
[ -4 +4 ] [ +4 -8 ]
   |  |      |  |

Rhythmic values

Whole note and rest

Whole note and rest

  G
[ 2 ] [ ]

Half note and rest

Half note and rest

   G
[ -2    ]
   |  #

Quarter note and rest

Quarter note and rest

   G  G
[ -2 -2         ]
   |  |  |#  |#
   |  |

Eighth note and rest

Eighth note and rest

   G  G      G  G
[ -2 -2     -2 -2               ]
   |  |  #|  |   |   #|  #|  #|
   |__|      |_  |_

16th note and rest

16th note and rest

[ -2 -2 -2     -2      -2      -2 ]
   |__|__|  #|  |_  #|  |_  #|  |
   |__|__|  #|  |_  #|  |_  #|

32nd note and rest

32nd note and rest

[ -2 -2 -2 -2 -2     -2      -2          -2 ]
   |__|__|__|__|  #|  |_  #|  |_  #|  #|  |
   |__|__|__|__|      |_  #|  |_  #|
   |__|__|__|__|      |_  #|  |_  #|

64th note and rest

64th note and rest

[ -2 -2 -2 -2 -2 -2     -2      -2      -2  -2 -2 ]
   |__|__|__|__|__|  #|  |_  #|  |_  #|  |_  |  |
   |__|__|__|__|__|  #|  |_  #|  |_  #|  |_     |
   |__|__|__|__|__|  #|  |_  #|  |_  #|
   |__|__|__|__|__|      |_  #|  |_  #|

Augmentation dot

+4  +4  +4  +4  +4  +4
 |   |   |   |_  |_  |_
 *   |   |_  |_  |_  |_
     *   *   *   |_  |_
                 *   |_
                     *
  
Augmented rests

 #  |#  #|  #|  #|  #|
 *  *    *  #|  #|  #|
             *  #|  #|
                 *  #|
                     *
  
Double dot and triple (and so on)
+4   +4
 |    |
 **   **
      *

Style

White/blank space

There should be at least one space between notes:

  • bad: +4-4+5-5
  • good: +4 -4 +5 -5

This is done to improve readability but it is also needed to space rhythmic symbols correctly (there should be at least two spaces between the note stems).

Extra white space characters like spaces and newlines, can be used to improve readability, in this context whitespace is non significant, so it can also be omitted, but it is recommended to have some amount of non significant whitespace.

No extra whitespace

               A
  D  E  F  G  ~~~ B  C   B  A  G  A   F  E  D  C
[-4 +5 -5 +6][-6 -7 +7][-7 -6 +6 -6][-5 +5 -4 +4]
  | _|  |  |   |  |__|   |  |  | _|   |  |  |  |
  |__|  |__|   |  |__|   |__|  |__|   |__|  |__|
  *            *               *

Suggested minimum whitespace

   D  E  F  G      A  B  C      B  A  G  A      F  E  D  C
                  ~~~~
[ -4 +5 -5 +6 ] [ -6 -7 +7 ] [ -7 -6 +6 -6 ] [ -5 +5 -4 +4 ]
   | _|  |  |      |  |__|      |  |  | _|      |  |  |  |
   |__|  |__|      |  |__|      |__|  |__|      |__|  |__|
   *               *                  *

Extra whitespace

    D   E   F   G         A   B   C         B   A   G   A         F   E   D   C
                         ~~~
[  -4  +5  -5  +6  ]  [  -6  -7  +7  ]  [  -7  -6  +6  -6  ]  [  -5  +5  -4  +4  ]

    |  _|   |   |         |   |___|         |   |   |  _|         |   |   |   |
    |___|   |___|         |   |___|         |___|   |___|         |___|   |___|
    *                     *                         *
  • This is the example above in standard musical notation for comparison:

Part 1

Alignment

Note names and stacattos are aligned exactly above of the note number. Rhythm stems and the first augmentation dot are aligned exactly below of the note number.

For examle

That is not over or below the + or - signs.

Good alignment

 C
 *  C
+4 +4
 |  |
    |_
    *

Bad alignment

C
  *   C
+4    +4
 |    |
      |_
     *

Vibratos and wah

They should start at the + or - signs and cover the note or note number, they should end before the next + or - signs (or # in the case of rests) and if applied over multiple notes, they should cover also the entire space between them.

This also mean they should at least consist of 3 characters ie. ~~~, vvv and www

Good

  www
[ +4  ]

     ~~~~~~
[ +4 +5 +6 +7 ]
   |  |  |  |
   |  |  |  |

Bad

 wwww
[ +4 ]

    ~~~ ~~~
[ +4 +5 +6 +7 ]
   |  |  |  |
   |  |  |  |

Tie like symbols

That is symbols that tie or bind two notes or a segment of notes, should start and end on top of a note number, if text in between like |=TS=| the text should be as centered as possible (at least one character should be on top of the center note or between two central notes).

There can be as many = as necessary, but there should be at least one = on either side of the text.

Good

    |=TS=|
+(4 5    6 7)

   /=====\
[ +4 ] [ +8 ]

  |==TB=|
+(4  5  6  7)

  |=TB==|
+(4  5  6  7)

Bad

    |TS=|
+(4 5     6 7)

   /======\
 [ +4 ]  [ +8 ]

  |=TB====|
+(4   5   6   7)

Examples

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.