Eric Foxley's Music Database
Music storage in ASCII

Music database home
The tunes
The PDF pages
The scores
Browse the tunes
Find similar tunes
The statistics
The database
Storing music
Music analysis


When research into music stylistics was starting in the 1960s, all data was stored in ASCII, mostly in unfriendly (but comprehensive) systems such as DARMS.

We developed a user friendly system specifically aimed at the storage and analysis of traditional music.

It later became easy to enhance the language so that it became a representation for music printing, not just analysis. The implementation as a roff preprocessor was then straightforward, so that the same files can be used for the printing and analysis of the music. Most modern PC music programs store music scores in a form which is not amenable to analysis of any sort.

Typical example A typical score appears as in the example for Davy Davy Knick Knack (a super tune which no-one should underestimate, capable of endless variation):

The ASCII version uses a header to define the key, time signature etc., and a body to define the notes and print formatting if required. The full system manual is available in PDF format. A quick summary of the ASCII is as follows.

The body of the file:

  • | separates bars, :| for repeat, || for double barline
  • f, g, a, b, c, d, e are the appropriate notes of default length within the stave
  • f^ means "f up an octave", fv "f down an octave", etc.
  • f> means "twice as long", f< "half default length", f. "50% longer", etc.
  • text in double quotes goes under the stave, single quotes goes above
  • \10 means insert a copy of bar 10
  • \endstave. Causes the printing to move to the next stave
  • # to end of line is comment
The header (items separated by semicolon, ended by full stop):
  • "title = ..." gives the title, appears top left
  • "rtitle = ..." is "right title", we use it to denote the source
  • "ctitle = ..." is "centre title", we use it for repeat information
  • "timesig = 6 8;" sets the default note length to 6 notes per bar, default bar length to 6 / 8 of a full note
  • "key = g;" makes "f" default to "f sharp", printed signatures to 1 sharp
  • "key = g<;" as well as setting the key, makes default note length half of what "timesig" determines
  • "autobeam;" puts beams in automatically (official rules forbid beaming across quarter bars in 4/4, etc.)
  • "autobeam = 2;" puts beams in automatically across twice default length
  • "octave = s;" sets the default octave (no need for "^" or "v") to the stave interior
  • "octave = c;" sets it to start at middle "c" (default)
  • "keyout = d;" causes it to be printed in the key of "d"
  • "chords;" causes text under (in double quotes) to be treated a chord names, and transposed if required on output
  • "bps = " is "bars per stave" for printing, no longer used
  • "bars =" gives a check on the total number of bars

The Nottingham Folk Music Database is stored in this form.

We should soon be able to play it too!


E-mail Eric Foxley
Greenwood Clog Foresters Morris Freds Folks Music database
Site under development, see the earlier version. Latest update Thu 15-Mar-2001 13:53 , visits Site Meter