Liner Notes
Red Guitar Pick
The FATpick Blog

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

UPDATE This post was updated 17 October 2021.

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 specification 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.

The parser is case-aware but not strictly case-sensitive. The tuning specification eadgbe is equivalent to EADGBE (or EADGBe, for that matter).

But 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 5 notes (A B C D E) or 4 (Ab C D E)? Including capitalization (AbCDE) or spaces (ab c d e) or both (Ab C D E) can help the parser figure out which tuning you intend.

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 specification is a list of notes indicating the "open string" tuning of each string on the instrument, ordered low to high (bottom-to-top on the fretboard diagram). A space or comma may be used to separate the tuning for each individual string.

Notes may be described in any 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 - with either sharp or flat annotations where appropriate.

  • In "scientific pitch notation" (pitch class and octave) - in the form <NOTE><OCTAVE> - where <NOTE> is a note/pitch-class name and <OCTAVE> is an octave number, with no space in-between. E.g. E2 or F#3.

Note that the octave number may be any integer value, including zero (E0) and negative numbers (E-1).

The true sharp and flat symbols ( and ) may also be used in the name of a note or pitch class - i.e. C♯ D♭ D♯ E♭ F♯ G♭ G♯ A♭ A♯ and B♭ are also valid note ids - but you may find # and b easier to type on most keyboards.

When the octave number is omitted the octave of the corresponding note is determined by various heuristics and context cues. See the comments on octave inference, below, for details.

Note labels are case insensitive. In other words, the note identifier c and the note identifier C are equivalent. Well, they are mostly equivalent anyway. See the note below on note label capitalization for details.

Delimiters

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

For example, the following tuning descriptions are equivalent:

  • E A D G B E - using space to separate individual notes in the tuning
  • E,A,D,G,B,E - using comma as the separator
  • E , A , D , G , B , E - using both comma and space as the separator
  • EADGBE - without any explicit separator

These delimiters aren't strictly necessary, but they can help the parser understand your intent when the tuning description may otherwise be ambiguous. For example, adding a separator between the tuning for each string may help distinguish a flat-note annotation (Xb) from an independent B note, in the absence of other context cues.

For example, the tuning specification abc is ambiguous. It could be interpreted as three notes - A, B, C - or as just two notes - A♭, C - where the b represents the flat symbol rather than the note B. Adding delimiters (or capitalization) can help the parser recognize which tuning you intend. The tuning spec a b c or ABC will be interpreted as three notes, while ab c or AbC will be interpreted as two. (Adding octave numbers - e.g. a2b2c3 vs. ab2c3 - could also disambiguate this case.)

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 six-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 supersede 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. If the doesn't guess the octave you have in mind, simply add an octave number after each note to override the default. For example, if you want to see the fretboard for a guitar tuned one octave lower than normal, enter E1 A1 D2 G2 B2 E3 (rather than simply E A D G B E) to override the default E2 to E4 assumption. (Actually, as described below, the tuning spec E1 A D G B E (or, eliminating spaces, E1ADGBE) is sufficient in this case.)

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 B1 E A D G 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 (A♭) note, whereas ab or AB is likely to be interpreted as two notes: A followed by B.

  • Case is sometimes used to recognize tunings based on specific naming (casing) conventions. 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). (The standard guitar tuning is often written as EADGBe, following this same "lower-case to indicate higher octave" convention, although it's not strictly necessary in the guitar case since the tuning is unambiguous with or without the lower-case e.)

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.