ABC notation
A shorthand form of musical notation for computers

ABC notation is a shorthand form of musical notation for computers. In basic form it uses the letter notation with a–g, A–G, and z, to represent the corresponding notes and rests, with other elements used to place added value on these – sharp, flat, raised or lowered octave, the note length, key, and ornamentation. This form of notation began from a combination of Helmholtz pitch notation and using ASCII characters to imitate standard musical notation (bar lines, tempo marks, etc.) that could facilitate the sharing of music online, and also added a new and simple language for software developers, not unlike other notations designed for ease, such as tablature and solfège.

Browse tunes

The earlier ABC notation was built on, standardized, and changed by Chris Walshaw to better fit the keyboard and an ASCII character set, with the help and input of others. Originally designed to encode folk and traditional Western European tunes (e.g., from England, Ireland, and Scotland) which are typically single-voice melodies that can be written in standard notation on a single staff line, the extensions by Walshaw and others has opened this up with an increased list of characters and headers in a syntax that can also support metadata for each tune:

  • The index, when there are more than one tune in a file (X:)- the title (T:),
  • the time signature (M:),
  • the default note length (L:),
  • the type of tune (R:),
  • the key (K:)
    • with the clef (K: clef=[treble|alto|tenor|bass|perc])

Lines following the key designation represent the tune.

After a surge of renewed interest in clarifying some ambiguities in the 2.0 draft and suggestions for new features, serious discussion of a new (and official) standard resumed in 2011, culminating in the release of ABC 2.1 as a new standard in late December 2011. Chris Walshaw has become involved again and is coordinating the effort to further improve and clarify the language, with plans for topics to be addressed in future versions to be known as ABC 2.2 and ABC 2.3 .