Music database home
The PDF pages
Browse the tunes
Find similar tunes
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:
The header (items separated by semicolon, ended
by full stop):
- | separates bars, :| for repeat, || for
- 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
- 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
- "title = ..." gives the title, appears
- "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
- "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
The Nottingham Folk
Music Database is stored in this form.
We should soon be able to play it too!