This is a description/specification of GITI (variant E) – Guitar Instrument Text Interface (electric) – version 3.2: an electric guitar music notation text format.
GITI is concise, expressive, and readable and writeable by both humans and software. The format is in ASCII text (so also UTF-8). (File-name suffix could be: .giti or: .giti.txt)
Traditional musical notation is powerful and general, but rather complex and demanding. Guitar tabs are better focused, but with obvious weaknesses and still awkward to read and write. GITI follows the specialisation of tabs but dispenses with the quasi-graphic form, and adds a traditional kind of time information. The whole is somewhat inspired by the event-packet basic form of MIDI.
This version does not cover vibrato-bridge use or complex parallelism. The former seems an easy addition, but the latter would need more design and adjustment.
A whole Piece is a string of Sounds, Indicators, Annotations, and Comments. Sounds and indicators are blank-separated tokens, and annotations and comments are special lines.
A complete example:
# Black Sabbath ‘Black Sabbath’, main riff @ giti:e-3.2 tuning:std tempo:3.603 |4 13=25:2 ' 35 | | 24r1:2-4-8e s:24/:8s |
The format also allows degrees of simplification: omitting chords, ornament, articulation, time, down to only pitch:
13=25:2 35 24r1:2-4-8e s:24/:8s 13:2 35 24:1 13 35 24
SBNF:
(piece
(* (| (, (* blank)
(* (| sound indicator)
(+ blank))
(* blank)
newline)
annotation
comment)))
A Sound has three parts:
separated by colons. For example: pluck : string 2, fret 4, vibrato : quarter-note:
p:24v:4
Or more complex, a doubled-bend, then slide:
p:414+2=512:4e s:414/
Simplified uses can omit either or both act and time:
p:24:4 24:4 p:24 24
SBNF:
(sound
(| (, (? (, act ":")) pitch (? (, ":" time)))
(, "-" (? (, ":" time)))
(, "." (? (, ":" time)))))
An act has two parts: basic and extra:
Basics (required), one of:
p – pluck (default if act is omitted))d – damped/muted pluckh – hammer-onu – pull-offs – sustain from previous soundt – tapi – tremolo pickingExtras (optional):
$ – damp/mute+ – loud- – quiet< – volume increase> – volume decreaseA pitch has two parts: basic and extra:
Basics (required), one of:
* – same as previous sound3 – first digit: string 1-8 (numbered low-freq to high-freq)10 – second digit and third if needed: fret 0-24^1<2 – first digit: move up a string, second digit: move down 2 frets,1>2 – first digit: move down a string, second digit: move up 2 fretsExtras (optional):
=’+2 – bend up to 2 frets above-1 – bend down from 1 frets above (i.e. pre-bend)/15 – slide up, to fret 15 (digits optional)\8 – slide down, to fret 8 (digits optional)v – vibrator14 – trill, 1 fret above (- for below), with 4 sub-sounds (digits optional)h – neck harmonic (touching over fret)i – bridge harmonic (touching with picking thumb)Chords have multiple pitchs separated by ‘=’:
p:13=25:4
SBNF:
(pitch
(+ (, (| "*"
(, int1-8 int0-24)
(, (| "^" ",") int0-8
(| ">" "<") int0-24))
(? (| (, "+" int1-5)
(, "-" int1-5)
(, "/" int0-24)
(, "\\" int0-24)))
(? (| "v"
(, "r" (? (, (? "-") int1-9 (? int1-9))))))
(? (| "h"
"i")))
"="))
A time has two parts: basic and extra:
Basics (required):
4 – number: lower part of the fraction of bar length(E.g.: whole note = 1, 1/4 note = 4, 1/3 note = 3 (grace note = 0).)
Extras (optional):
-8 – extend by number fraction (repeatable)e – legatos – staccato- – continue to next soundContinued sounds have a ‘-’ and time, instead of act and pitch:
-:2
Rests have a ‘.’ and time, instead of act and pitch:
.:2
Sounds (including continued and rests) that have the same time as the previous can omit the time.
Indicators are of three kinds: bar, segment, and tuplet. They are optional really: all timing information is in sounds, but indicators help human users.
Bars can be indicated with lines, and optional suffix numbers for time division:
|3 | | | || ||
Segments of a bar can be indicated by a quote (to give a sort-of ersatz beaming):
|4 11:4 ' 11:4 ' 11:8 12:8 ' 11:4 |
Tuplets can be indicated with parentheses and suffix number:
|4 .:2-4 ' (3 35:6 33:12 ) |
An Annotation is a line starting with @, containing three possible kinds of data: version, tuning, and/or tempo.
Version (giti), followed by:
e-3.2 – variant E, version 3.2Tuning, followed by one of:
std – standard: E2 A2 D3 G3 B3 E4 (assuming C4 = 261.6Hz) (default)-2 – -/+ semitones1D2= ... – string, pitch (multiple separated by =)Tempo, followed by:
3.603 – duration of a bar in seconds, to millisecs precision (optional)For example:
@ giti:e-3.2 tuning:-2 tuning:1D2=2B2 tempo:1.824
SBNF:
(annotation
(, "@"
(* blank)
(* (| (, "giti:"
(* non-blank))
(, "tuning:"
(| "std"
(, (| "-" "+") int1-12)
(+ (, int1-8
(| "C" "C#" "D" "Eb" "E"
"F" "F#"
"G" "G#" "A" "Bb" "B")
int0-8)
"=")))
(, "tempo:"
int0-99 "." int0-999))
(+ blank))
newline))
A Comment is a line starting with #, containing arbitrary text.
N.I.B.
# 'N.I.B'; Black Sabbath; 1970. Main riff. @ giti:e-3.2 tuning:std |4 27=39:8 * ' 25=37 27=39 ' . 210=312 ' 29=311:4s | | 27=39:8 * ' 25=37 27=39 ' . 414+2=512 ' *:4 | | 27=39:8 * ' 25=37 27=39 ' . 210=312 ' 29=311:4s | | 27=39:8 * ' 25=37 27=39 ' . 27=39\ ' 27r24:8e u:27:32e h:29:16-32 |
Iron Man
# 'Iron Man'; Black Sabbath; 1970. Main riff. @ giti:e-3.2 tuning:std |4 17=29:2e ' 110=212:4 ' . | | 110=212:4e ' s:110/12=212/14:4 ' 112v=214:2s | | 115\14=217\16:4 ' 115\14=217\16:4 ' 115\10=217\12:4 ' 110=212:8 ' . | | 110=212:4e ' s:110/12=212/14:4 ' 112v=214:2s |
Tyrant
# 'Tyrant'; Judas Priest; 1976. Main riff. @ giti:e-3.2 tuning:std tempo:1.250 |4 10:8 h:12=24=34:4 12=24=34:4 d:10:8 ' 12=24=34:4- | | -:8 12=24=34:4 d:10:8 ' 22=34:4 ' 30=42=52:4 | | 30=40:8e h:32=42:4 20=32=42:4 d:20:8 22=34=44:4- | | -:8 22=34=44:4 d:22:8 ' 10:4 ' 24=36=46:4 |
Dissident Aggressor
# 'Dissident Aggressor'; Judas Priest; 1977. Main riff. @ giti:e-3.2 tuning:std tempo:1.644 |4 10=20:12e h:10=22 d:10 ' * * * 13+1 10=22 d:10 ' * * * | | 10=20:12e h:10=22 d:10 ' * * * 13+1 10 13+1 ' 20=32:4 |
Black Sabbath
# 'Black Sabbath'; Black Sabbath; 1970. Solo. # Previously transcribed and tabbed by Nick Didkovsky, # http://www.didkovsky.com/tabs/blacksabbath.html @ giti:e-3.2 tuning:std tempo:1.714 |4 .:2-4 ' (3 35:6 33:12 ) | 35:2-4 ' (3 *i:6 *:12 ) | | 33:2-6 *:12 ' 35:4 | 43:2-4 ' 45+2:4 | | 45+2=53:2 ' *:4 ' 63 | | 45+2=53:4 ' 48+2=56 ' 410+2=58 ' 412+2=510:- | | - ' (3 417+2:12 515 615 ) ' 518+2:2s | | *:4 ' *:4-6 515:12 ' 618+2:4 | | *:2 ' (3 618:12 615 518 ) ' (3 618:12 615 518 ) | | 618+2:4 ' (3 615:24e h:618 u:615 ) 615:8 ' (3 518+1:12 615 615 ) ' 518+2:4 | | (3 615:12 518 515 ) ' (3 417+2:12 515 615 ) ' (3 417+2:12 515 615 ) ' (3 417+2:12 515 615 ) | | (3 417+2:12 515 615 ) ' (3 417+2:12 515 615 ) ' (3 417+2:12 515 615 ) ' (3 417+2:12 515 615 ) | | 417+2:2 ' (3 417+2:12 515 615 ) ' (3 417+2:12 515 518 ) | | 518-2:4 ' 415:6 518-2:12-4 ' 415:6 618+2:12 | | 618:4 ' (3 618:12 615 515 ) ' 618+2:4 ' (3 615:24 h:618 u:615 ) 615:8 | | (3 618:12 615 518 ) ' (3 618:12 615 518 ) ' 618r-36:4- ' - | | 618r-36:4- ' - ' 618+2 ' 618+2 | | (3 618:12 615 518 ) ' 518+2=615:4 ' (3 518:12 515 417 ) ' 415r14:6e u:415:12 | | (3 417+2:12 515 615 ) ' (3 518:12 515 417 ) ' 415r14:6e u:415:12 ' (3 317:12 315 317 ) | | (3 315:0 317:6 415:12 ) ' (3 417+2:12 515 615 ) ' (3 417+2:12 515 615 ) ' (3 417+2:12 515 615 ) | | 518+2:4 ' 518+2:6 518+2:12- ' -:2 |
DC:`
title:`GITI - Electric guitar music text format`
creator:`Harrison Ainsworth / HXA7241`
date:`2013-06-01`
date:`2013-01-21`
description:`Description/specification of GITI (variant E) version 3.2: an
electric guitar music notation text format.`
subject:`guitar, electric-guitar, music, notation, text, format`
language:`en-GB`
type:`technical article`
relation:`http://www.hxa.name/`
identifier:`http://www.hxa.name/giti/`
rights:`Creative Commons BY-SA 3.0 License.`
`