Liner Notes
Red Guitar Pick
The FATpick Blog

Notes on the syntax used to specify custom instrument tunings to the fretboard-related reference tools.

The fretboard chart, scale explorer and some other tools in FATpick provide an interactive reference chart that helps you to visualize the notes on the fretboard.

Note charts for the familiar EADGBe guitar or EADG bass tuning are pretty common, but these tools are more flexible than most. Not limited to the standard tuning or even specific instruments, these tools can render the notes on the neck of virtually any fretted string instrument: any tuning, any number of strings, any number of frets. (Why just "virtually", then? See this tangential note.)

For your convenience, a menu of tuning "presets" is provided. This is a list of common (and many uncommon) tunings for a variety of instruments. The list is evolving - there are small changes or additions from release to release - but it currently includes more than 90 different tunings not just for guitar and bass, but for ukulele, pedal steel and mandolin, and across obscure variations like 5-string and 6-string bass, 6-string uke, and tunings for guitars spanning 6, 7, 8, 9, 10 and 12 strings. Simply select an item from the list to instantly switch to a fretboard diagram for the selected instrument and tuning.

But it's virtually impossible to provide an exhaustive list. The list is finite, surely, but impractically large even for a single instrument like a typical 6 string guitar, let alone for the set of all possible tunings an arbitrary number of strings. Besides, it's fun to experiment: maybe you want to explore weird or experimental tunings of your own invention; maybe you want to explore tunings for more exotic instruments like lute or sitar, or obscure historical instruments.

No worries. We've got you covered. In addition to the pre-defined list, you can use a text field to enter a custom tuning to view the notes on an arbitrary fretboard.

This post describes the format used to specify those custom tunings.

Custom Tuning Input Field

The text-input field labelled "Tuning" is used to specify a custom tuning as a plain-text string. By default - and as seen in the screenshot below - this field contains the tuning descriptor "E A D G B e", the standard tuning for a 6-string guitar.

More generally, whenever a preset tuning is selected from the drop-down list this field will be updated to display the corresponding tuning descriptor. And vice versa: when you enter a "custom" tuning that matches one of the pre-defined values found in the menu, the corresponding menu item will be automatically selected as well.

Fretboard Chart / Scale Explorer
Screenshot of the fretboard control form as it appeared in the scale explorer as of FATpick v2.4.5.
Note the "Tuning" field found in the second row of controls (and the tuning-preset drop-down menu, which is triggered by the small (V) button to the right of the text input field).
(Click the image to open full-size view in a new window.)

To enter a custom tuning, click on the text field and type your tuning descriptor. Hit ENTER - or navigate away from the field - to "submit" your changes and trigger a refresh of the fretboard diagram.

Parser Basics

The tuning parser is flexible - and pretty forgiving - so there are a number of more-or-less equivalent ways to express a given tuning descriptor. And the parser employs additional heuristics to detect various "special cases" - sometimes based on fairly subtle cues - and provide more intelligent or intuitive handling. Many of these nuances are discussed in more detail below. It seems as if some general guidelines may be a better place to start, however. While the parser is considerably less rigid than implied here, let's first lay out the general structure of the tuning descriptor.

Some basic examples of the custom tuning descriptor include:

  • E A D G B E - standard guitar tuning, specified by note name (low to high)

  • B F# B E G# C# - drop-B tuning, illustrating the notation for sharp notes

  • A4 D4 F#4 B4 - reentrant (high-A) D tuning for 4-string ukulele, demonstrating the fully-specified (note + octave) scientific pitch notation

The general guidelines at play are as follows:

1. One note per string, separated by spaces.

To specify a custom tuning, simply enter a list of notes indicating the open-string tuning of each string, ordered from low to high.

(Or, more precisely, ordered from bottom to top as viewed on the fretboard diagram itself, independent of relative pitch. The first note in your list will determine the open string (0th fret) tuning for the bottom row in the diagram. The last note in your list will determine the open string tuning for the top row in the diagram.)

For example, the standard 6-string guitar tuning may be specified as E A D G B E. The standard 4-string bass tuning may be specified as E A D G. You may enter as many (or as few) strings as you need.

2. Use # and b to indicate sharp or flat.

Add # or b to a note name to indicate sharp or flat notes. For example the "Drop B" tuning B F# B E G# C# has three sharp notes and the "Drop F" tuning F C F Bb D G has one flat note.

3. Append octave numbers if needed.

The tool is pretty good at inferring the octave of each note based on context cues but you may append an octave number to the name of the note to indicate the octave (in "scientific pitch notation") if the tool doesn't guess the right octave automatically.

For example, including octave numbers, the standard guitar tuning is written E2 A2 D3 G3 B3 E4 and the standard bass tuning is written E1 A1 D2 G2. Octave numbers should appear after the sharp and flat annotations. E.g., the fully-specified Drop B tuning is written B1 F#2 B2 E3 G#3 C#4.

This is especially useful when specifying "reentrant" tunings that aren't in strictly increasing order, as are frequently used in ukulele tunings. For example the concert ukulele tuning (gCEA) is G4 C4 E4 A4 in scientific pitch notation.

4. Spacing and capitalization is recommend but not required.

It's not strictly necessary to include a space (or other delimiter) between the individual notes in the tuning descriptor. For example the standard guitar tuning may be specify as simply EADGBE or (with octave numbers) E2A2D3G3B3E4.

Similarly the parser is case-aware but not strictly case-sensitive. The tuning descriptor e a d g b e or (without spaces) eadgbe is equivalent to EADGBE (or EADGBe, for that matter).

However the use of capitalization and delimiters can help the parser to distinguish between ambiguous tuning descriptions. For example, it's not entirely clear how best to interpret a string like abcde. Is that five notes (A B C D E) or four (Ab C D E)? Including capitalization (AbCDE) or spaces (ab c d e) or both (Ab C D E) can help the parser recognize your intent.

For a more nuanced discussion of these features see the following sections.

Parser Specifics

In this section we provide a more thorough description of the parser syntax and related topics.

Note Identifiers

The tuning descriptor is a list of notes indicating the "open string" tuning of each string on the instrument, ordered from low to high (bottom to top on the fretboard diagram). Individual string tunings are typically (but not exclusively) delimited by a space character.

Each note is indicated in one of the following ways:

  • As one of the 12 note (pitch class) names in the chromatic scale: C, C#/Db, D, D#/Eb, E, F, F#/Gb, G, G#/Ab, A, A#/Bb, B. In this case the specific octave number is "inferred" based on a number of different heuristics. See the note on octave inference, below.

  • In scientific pitch notation (pitch class and octave), in the form <NOTE><OCTAVE> (with no space in between). E.g. E2 or F#3. Note that the octave number may be any integer value, including zero (E0) or negative numbers (E-1)

The "actual" sharp and flat glyphs ( and ) may be used instead of # and b.

Note labels are case insensitive. I.e., the label c and the label C are (mostly) equivalent. See the note on note label capitalization below, however.

Delimiters

The notes in the list may be delimited by one or more space () or comma (,) characters.

These delimiters aren't strictly necessary, however they may help distinguish a flat-note annotation from an independent B note in the absence of other context cues (e.g., in abc vs AbC or a b c).

For example, the following tuning descriptors:

  • E A D G B E
  • E,A,D,G,B,E
  • EADGBE

are equivalent.

Octave Inference

In the absence of an explicit octave indicator, the fretboard tools will make an educated guess about the octave associated with a given pitch class identified in the tuning specification. This inference is based on a number of factors, including:

  • recognized tuning patterns;

  • inferred instrument type, based on string count and other factors;

  • the octave identified for the neighboring strings.

For example:

  • Most 6 string tunings are assumed to fit within the range of a typical guitar, conventionally octave 2 (E2) to octave 4 (E4). With some exceptions an octave pattern resembling 2,2,3,3,3,4 is expected.

  • All things being equal, the tools assume that the pitch increases or stays constant across the tuning. Hence if a given string is identified as, say, the pitch C3, the next string is assumed to be tuned to C3 or higher.

  • There are however special cases the override the other heuristics. For example a 4 string tuning is usually assumed to indicate a bass guitar - octave pattern 1,1,2,2. However common ukulele tunings such as GCEA can supercede this patterns, triggering the tuning G4 C4 E4 A4.

Fully-specified, scientific-pitch-notation-format octave values can be used to override this logic in the event that the tuning parser fails to guess the appropriate octave.

Note that it is possible to specify an octave for some but not all notes in the tuning. In that case the parser will attempt to infer any unspecified values based on the information that is available. You can use this as a shorthand way to "seed" the octave pattern for tunings that the parser may otherwise mistake. For example the tuning BEADG is typically assumed to indicate a 5-string bass tuned to B0 E1 A1 D2 G2 however you can start the tuning at an arbitrary point by indicating the pitch of the first string (and let the parser fill in the details from there). I.e., the tuning descriptor B1EADG will yield B1 E2 A2 D3 G3.

Casing

As previously mentioned, note label parsing is case-insensitive in the general case. The descriptor EADGBe is considered equivalent to eadgbe and EADGBE (and EaDgBe and other variations, for that matter).

However, there are a few instances in which the capitalization of note names influences the way in which the parser interprets the tuning. Notably:

  • Case may distinguish a stand-alone B note from a flat-note annotation. E.g. Ab is more likely to be interpreted as a single A-flat note, whereas ab or AB may be interpreted as two notes: A then B.

  • Case is sometimes used to recognize certain specific tunings. E.g., gCEA is interpreted as G4 C4 E4 A4 (concert ukulele tuning) while GCEA is read as G3 C4 E4 A4 (tenor ukulele tuning).

Capitalization is also a factor in other octave and instrument-type inference logic.

FATpick
Also see more posts by or tagged , , or .
Or, visit the tag index or view the latest posts from the Liner Notes blog.