Simplified PMS

A music notation system for plain text

PMS is a musical typesetting package developed by Phillip Hazel, the letters standing variously for "Phillip's Music Scribe" or "Professional Music Scribe" depending on who you ask and when. Unlike most of the packages currently available, PMS takes a textual description of what music you want and produces printed output, rather than letting you fiddle with the music directly on the screen. In other words it is more like TeX than like Word -- What You See Is What You Told Me To Do.

Since PMS takes textual input, this makes its source files useful things to chuck around the Internet, since (a) they are in ASCII already, so no problems arise with mistranslations on different platforms, and (b) in any case you can see what's going on by eye, without having to get a machine to do the work for you. I've picked out a subset of the language that is useful for filking, bearing in mind that we only have to deal with a single melodic line. PMS has a very rich source language, and we don't need all of its facilities just to swap tunes with each other!



PMS uses the letters that we are familiar with to indicate what pitch to put a note at. Thus c represents Middle C, e the E above and g the G above that. Different octaves are denoted with the "tick" notation familiar to many; each quote character indicates that the note is one octave higher, and each backquote indicates an octave lower. For example, c'' is two octaves above Middle C, while c` is one octave below it. Note that octaves begin at C, not at A; a is the A above Middle C, not the one below it as you might imagine.

So far so straightforward. Accidentals are a bit more problematic; for a start they go before the note they apply to, rather than after as we would normally write them. This seems a little strange at first, but is actually the way we read music on a staff. Don't worry too much over it, if you space things out sensibly everyone will be able to tell what you mean anyway.

For obvious reasons, # is used for a sharp sign. It looks close enough to remind everyone what it means. Flats and naturals are more difficult to mimic, since there's nothing on a standard keyboard that looks quite like them. Actually that's not quite true, but b is already used for a note name. With nothing better to do, Phil arbitrarily picked $ and % to indicate flat and natural respectively, simply because they were next to # on his keyboard. In the unlikely event that you need a double sharp or double flat, do the obvious thing; write ## for double sharp and $$ for double flat.

The good news about accidentals if you're not too musically proficient is that you don't often need them. Most of the time you just specify the appropriate key signature (see below for more details) and never have to use an accidental for the rest of the piece.

Anyway, here are some random notes with accidentals, just to show you how it works. The sequence "#c %f $a c'" describes the following bar:

C sharp, F natural, A flat, C'

and for some of the more exotic possibilities, the following bar is described by "##d $$e ##g $$b":

D dbl sharp, E dbl flat, G dbl sharp, B dbl flat


Some of the ASCII notation methods floating around on the net describe the duration of a note by following the note name with another letter or number indicating the length. PMS takes a different approach, which is probably just as well given that the names of different durations vary wildly between the UK and US! Basically, the length of the note is indicated by the case of its name letter, with extra characters lengthening or shortening the result.

Finally, if the note is dotted, put a dot after it! A dotted minim is written A., for example, while a double-dotted quaver is written a-.. instead.

Note, by the way, that if the note needs quotes or backquotes to describe its pitch, these are written before any of the extra characters for duration. For example, if the dotted minim above were the A below Middle C, it would be written as A`. not A.`

Non-note Data

Bar Lines

So far we have seen how to write notes. It would be good to be able to write more than one bar of them, on the whole. This is done straightforwardly using the vertical bar character | where you would normally expect to see a barline in the music. For example:

    c d e c | c d e c |
    e f G   | e f G   |

describes the first two lines of Frère Jacques:

Frere Jacques

If you want a double barline, for instance to mark the start of a chorus, just write two vertical bars together: ||


Rests are written like notes with a name of "r" (or "R" for the longer notes, of course). As far as duration goes, treat them exactly like they were ordinary notes, with one little wrinkle; if you have a whole bar of rests, then rather than working out how long a bar is and writing a long enough rest (which is tedious in something like 9/8), just write R! instead.

Ties and Slurs

Sometimes, particularly across bar lines, you have to tie notes together to get the right duration. PMS uses an underscore _ between the notes to be tied to do this, which has the advantage of looking like a tie. Alternatively, if you're being fancy and want to put a slur over several notes (say, to indicate that they are all sung to the same syllable), write [slur] and [endslur] either side of the notes that you want grouped. (PMS directives usually come in square brackets, which makes them easy to spot.)


Spaces, tabs and newlines are completely irrelevant to PMS. Just space everything out so that it is easy to read and understand.

Key signature

To avoid having to write tons of accidentals or writing everything in C (not the world's easiest key on a guitar), you can specify a key signature. In PMS this is done simply by writing Key kkk before any notes, where "kkk" is the name of the key. Write this the way you would normally write a guitar chord, just using # for sharp and $ for flat; so A major is written as A and B flat minor as B$m. The exact case of the letters (or indeed the word "key") doesn't matter, so do whatever is comfortable.

If you need to change key in the middle of your filk (you shameless pervert, you), just write a new key command in square brackets at the start of the bar in which it first applies, like this; [key F#].

Time signature

Just as not writing everything in C major is good, so is not writing everything in four-four time. To specify a time signature in PMS, just write it out as Time a/b, where a and b are the number and type of beats per bar as usual. For instance, six-eight time (two dotted crotchets per bar, for those who don't know such things) would be written as Time 6/8.

As with the key signature, so with the time signature; the case of the words isn't important, and if you need to change time signature during the piece just write the new time command at the beginning of the first bar in which it applies, in square brackets.


Anything after an at-sign (@) on a line of PMS source is considered to be a comment, and will be ignored ruthlessly. By PMS. I usually use them for noting the start of the verse and the chorus, or for bar numbers in long pieces that I may have made lots of typing errors in!

Closing Notes

I'd apologise for the pun, but I wouldn't mean it, so I won't!

PMS is a nice little system that is quite useful in many respects. It provides a simple, portable description of music that doesn't hit the usual problem of differing terminology on different sides of the Atlantic, and quite apart from that I can bung it straight into a package that will print music out for me. Your mileage will undoubtedly vary; who knows, if lots of people ask, Phil may get conned into porting PMS to Windows. Mind you, lots of people will have to ask!

This would be a good point to include lots of examples. On the whole, there should be enough on my other filk web pages, though, so I won't. Good hunting!