ABC Notation Tutorial

Overview of ABC Notation

ABC notation is a text-based system created by Chris Walshaw for recording musical notation. Due to its simple but powerful interface, developers have been able to create software that renders ABC notation into standard musical notation while also providing editable, instant playback. This website uses abcjs, a javascript package developed by Gregory Dyke and Paul Rosen.

Known Technical Issues

You may view our Known Technical Issues page if you are having technical difficulties with any portion of the website. Chrome browser has the most complete support for abcjs functionality.

Introducing the Editor

Interactive examples are embedded in the text using an ABC editor powered by abcjs. It would be overwhelming to try to learn all the commands and entry nuances of our ABC javascript editor, so instead, we recommend that you just play with some examples to see how it works. Try playing with the two basic examples below to see what a change in the textbox does to the music.

When you click on an object in the music, it will highlight the appropriate text in the editor. If you place your cursor in the editor’s textbox, it will highlight the corresponding object in the music. After you have tried to play with it for a bit, continue reading below for a basic overview of the editor functions. (Once you make many changes, the editor may lock. To fix this, hit the reset button below the editor to continue. If you’d like to save your changes and continue, you simply need to copy your all the text in the textbox, and then paste it over the old text after you hit reset.)

Basic Entry

Each piece of music is entered in two parts: the header and the body.

The header contains all the information needed to setup musical notation such as clefs, keys, and time signatures. Each component in the header will consist of an abbreviation, a colon, and an instruction. The abbreviation tells the editor what you are editing and the instruction tells the editor what to do. For example, M: 4/4 will give you a meter of 4/4. Note that the X: field is a place-holder necessary for the website implementation and does not affect the musical notation.

The body contains the actual musical notes as well as bar lines and repeats.

  • Note names are entered as letter names.
  • To add an accidental,
    • Put a ^ before the letter to raise the pitch. (F-sharp is written ^F)
    • Put a _ before the letter to lower the pitch. (E-flat is written _E)
  • Octaves of pitches are determined by two factors:
    • An upper-case C denotes C4 (middle C), and a lower-case c denotes C5.
    • To alter these in either direction, you can add an apostrophe ' after the letter to raise it an octave, or you can add a comma , after a letter to lower it an octave.
      • The simplest way to get C3 is to add a comma after an upper-case “C” - C,
      • You could also write C3 by adding two commas to a lower-case “C” - c,,
      • The simplest way to notate C6 is a lower-case “c” with an apostrophe - c' - but you could also write it by affixing two apostrophes after an upper-case “C” - C''
  • Rhythms and note length
    • In your header, you will set a default note length with the command L.
      • If you set a default note length of a quarter note L: 1/4 in your header, all pitches will default to a quarter note length.
    • To lengthen a note, add a number after the pitch name and the editor will multiply your note length by that amount.
      • If you set a default note length of a quarter note L: 1/4 in your header, but would like a half-note, you only need to add a 2 after a note name. If you add a 3, you will get a dotted half-note. If you add a 4 after a note name, you will get a whole note. Etc.
    • To shorten a note, add a back-slash and a number after the pitch name and the editor will divde your note length by that amount.
      • If you set a default note length of a quarter note L: 1/4 in your header, but would like an eighth-note, you only need to add a /2 after a note name. If you add a /4 after a note name, you will get a sixteenth-note. Etc.
  • Beaming is controlled by adding or subtracting spaces between notes.
  • Barlines must be manually added using a pipe, |.
  • You can start a new system by hitting enter and continuing your note-entry on the following line.
  • Blank lines indicate the end of a song. Avoid blank lines in the editor!

Adding Voices and Changing Clefs

The last basic function that you may want to use is adding voices and changing clefs. Both of these are done using the “voice” V: option. Take the following example:

Have fun

Try creating new music at the ABC Playground. Use Chrome browser for the full functionality, allowing you to enter ABC, render notation, play music, and download MIDI. Click the “print” button to print out your rendered notation or save as PDF.

Existing Tutorials

Because ABC notation is a well-established notation standard, there are many websites that offer excellent tutorials on how to enter music using this method. If you would like to learn more about the advanced capabilities of ABC Notation, please visit: