VexFlow | VexTab | TabDiv | VexMachines | Posters | 0xfe

The VexTab Tutorial

An N-step program for learning all about VexTab
pre-pre-pre-alpha by 0xfe.

Step 1: The Stave

The tabstave keyword is used to create a new tab stave. The green code box below is editable - try adding another stave by typing tabstave on a new line.

tabstave takes keyword arguments. For example, the string tabstave notation=true renders a standard notation stave above the tab stave. Try this on the tab stave below.

tabstave

Step 2: Add some notes

The notes keyword can be used to add notes. Notes are represented in the format fret/string. To add a long line of notes on the same string, you can use the format fret-fret-fret/string. Add a few more frets and notice how the notes are auto-justified.
tabstave notation=true notes 4-5-6/3 10/4

Step 3: Stave keywords

tabstave takes keyword arguments that can be combined.

keywordvalues
notation true/false
tablature true/false
clef treble, alto, tenor, bass
key C, Am, F, Dm, Bb, Gm, Eb, Cm, Ab, Fm, Db, Bbm, Gb, Ebm, Cb, Abm, G, Em, D, Bm, A, F#m, E, C#m, B, G#m, F#, D#m, C#, A#m
time C, C|, #/#
tuning standard, dropd, eb, E/5,B/4,G/4,D/4,A/3,E/3
For example Try these on the tab stave below.
tabstave notation=true clef=bass key=Ab time=C| notes 4-5/6

Step 4: Add bar-lines

The | character places a bar-line between the notes. You can add as many bars as you want to a stave. Note that a space is required before and after the | character.
tabstave notes 4-5-6/3 10/4 | 5-4-2/3 2/2 tabstave notes 6-7-8-9/3 | 9-8-7-6/2

Step 5: Bend a few notes

To draw bends, separate two frets with a b character. The difference between the frets determines how much to bend. E.g., 10b12 is a full-step bend.

If you separate three frets with a bend, and the first fret is the same as the last fret, a bend-and-release is displayed. E.g., 10b12b10.

tabstave notes 4-5-6b7/3 10/4 | 5-4-2/3 2/2 tabstave notes 6-7b9b7/3 7/4 | 9-8-7-6/2

Step 6: Add some vibrato

Adding a v to the end of a note signifies a vibrato. A capital v (V) signifies a harsh vibrato. You can also add a vibrato to a bend.
tabstave notes 4-5-6b7v/3 10/1 | 5-4-2/3 2v/2 tabstave notes 6-7b9b7/3 7/4 | 9-8-7-6V/2

Step 7: Add some chords

To render chords, group notes in parenthesis and separate each string/fret combination with a period. E.g., (4/5.5/6).

You can bend individual notes in a chord just like you would for single notes.

tabstave notes (5/2.6/3.7/4) 5v/1 | 5-4-3/3 2v/4 tabstave notes (8/2.7b9b7/3) (5b6/2.5b6/3) 7/4 | notes (5/2.6/3.7/4)

Step 8: Add some hammer-ons, pull-offs, taps, and slides

To render hammer-ons, pull-offs, taps, or slides, use the characters h, p, t or s, respectively. For example, to render a hammer-on/pull-off combo from fret 6 to 8 back to 6, use 6h8p6.

You can also hammer-on, pull-off, tap, and slide between chords.

tabstave notes (5/2.5/3.7/4) 5h6/3 7/4 | notes t12p7p5h7/4 7/5 5s3/5 tabstave notes (8/2.7b9b7/3) (5b6/2.5b6/3)v 7s0/4 | notes (5/2.6/3.7/4)v tabstave notes (5/4.5/5)s(7/4.7/5)s(5/4.5/5) (5/4.5/5)h(7/5) | notes t(12/5.12/4)s(5/5.5/4) 3b4/5 5V/6

Step 9: Add durations and beams.

By default, note durations are set to 8th notes. To change the duration of the following notes you can use the colon character : followed by a duration code.

For example, :w specifies a whole note. The currently available durations are: w h q 8 16 32, for whole, half, quarter, eighth, sixteenth, and thirty-second note durations.

Beaming is specified with square brackets [ and ]. Any notation contained within these brackets are beamed. (Also notice the Eb tuning below.)

tabstave notation=true time=4/4 key=Ab tuning=eb notes :8 [ 5s7/5 ] :q (5/2.6/3)h(7/3) [ :8 5/4 :16 7p5/5 ]

Here's a longer example rendered with durations and standard notation. Notice how you can set the duration in the middle of slides, bends, or other types of ties by prefixing the fret with :duration:.

tabstave notation=true key=A notes :q (5/2.5/3.7/4) 5h6/3 7/4 | notes :8 [ t12p7p5h7/4 ] :q 7/5 :8 [ 3s5/5 ] tabstave notation=true notes :q (8/2.7b9b7/3) (5b6/2.5b6/3)v :8 [ 7s12/4 ] notes [ t:16:9s:8:3s:16:0/4 ] tabstave notation=true notes :q (5/4.5/5)s(7/4.7/5)s(5/4.5/5) notes :8 [ (5/4.5/5)h(7/5) ] | notes :8 [ t(12/5.12/4)s(5/5.5/4) 3b4/5 ] :h 5V/6

Step N + 1: Coming soon

The Blog