Home > MUP Review



Why music typesetting?

Everyone in my family plays a musical instrument. Our household includes a piano, violin, viola, cello, Epiphone electric guitar, Ibanez bass guitar, bongos and even a tin whistle.

Exploring the world of music requires communicating musical ideas, rearranging, and printing musical parts for ensembles. I use Microsoft Word for editing and printing text, but when I needed to print music scores, I had to resort to using manuscript paper and writing by hand. There had to be an inexpensive software solution!

The search for a program

I searched for a program to typeset music and not quite sure what features I required. I was aware of the text based programs in the Unix world, including Tex, Latex, MusiXTeX and LilyPond. These programs appeared to require considerable time to learn, and a fair amount of expertise to install. MusiXTeX can be installed on Windows but I have not attempted to do so. More information can be found at the Icking Music Archive. LilyPond will run on Windows in the Cygwin environment. I plan to evaluate LilyPond at a later date as it supports the creation of MIDI files.

As well as being able to print musical scores, I also wanted to create MIDI files to make accompaniment tracks for string players, and to play software synthesisers. More information about MIDI can be found by reading my MIDI page.

MUP (Music Publishing)

I chose the MUP (Music Publishing) program from Arkra Enterprises. This review follows the process of typesetting the "Sailor's Hornpipe" and creating a MIDI file.

Sailors Hornpipe Score

Create the MUP text file

First of all, it is necessary to read part of MUP User Guide to understand the MUP typesetting language. The documentation is well written and there any many examples of MUP code and scores. A MUP file can be created using any text editor. Some editors (Ultraedit, VIM and Emacs) can be configured to color code important keywords. I use Xemacs and Dieter Grollmann has written an excellent Mup Mode for Emacs.

The MUP file for a score has three main sections:

Let's take a closer look at the completed music by including a commentary in the comment lines:


        title (18) "Sailor's Hornpipe"
        title (14) "Old English Air"
        title   ""   "Arranged by Julia Clayton"

        title "\(copyright) Copyright  MCMXLII Allan & Co Pty Ltd. Melbourne."

        title "- \% -"


        time = 4/4       
        key = 0#
        staffs = 2
        beamstyle = 4,4,4,4
        // how much to spread the notes out.
        packfact = 1.2
        // Define the two staffs for this score
        staff 1
        clef = treble
        staff 2
        clef = bass

  swingunit = 4

// Midi directives can be included to choose instruments
// set the tempo, how hard the notes should be played
// (onvelocity) and held (release).

midi all: 0 "tempo=160"; 

midi 1 1: 0 "channel=1"; 0 "program=22";   // harmonica
midi 2 1: 0 "channel=2"; 0 "program=23";   // tango accordion

// Notes are specified by a letter and an optional + or - suffic
// to indicate the octave. Note durations are set with a numeric
// prefix. A quarter note (crotchet) has a prefix of 4 and an
// eighth note (quaver) has a prefix of 8.

// bar 1
1: 2.s; 8c++; b+;
2: 2.s; 4r;
boldital (12) below 1:  1 "f";

// Text is included (above) by choosing a font and the
// position in the bar. In this case, on the first beat.

// bar 2
// Staccato is donw using the [with .] directive
// The [] characters repeat the staccato.
1: [with .] 4c++; [] c+; [] c+; 8g+ bm; f+ ebm;
2: c; eg; ; r;

// If you need to enter the same note again, just use a ;
// and the program assumes you meant the same as the previous note.

// bar 3
1: 8e+; g+; 4c++; 8c++; e++; d++; c++;
2: c; eg; ; r;

// bar 4
1: 4d++; [with .] d+; [] d+; 8d+; c+;
2: b-; fg; ; r;

// bar 5
1: 8b <d+>; d+; 4g+; [with >] g+; 8a+ <b+>; b+;
2: b-; fg; ; r;

// bar 6
1: [with >] 8c++ bm; b+; a+; g+ ebm; [with >] a+ bm; g+; f+; e+ ebm;
2: e; gc+; [with >] 2gc+;

// bar 7
1: [with >] 8f+ bm; e+; d+; c+ ebm; [with >] c+ bm; b; a; g ebm;
2: e; gc+; [with >] 2gc+;

// bar 8
1: 8a bm; c+; b; d+ ebm; c+ bm; e+; d+; f+ ebm;
2: f; g; a; b;
// Here is a crescendo mark
< below 1: 1 til 4;

// bar 9
1: e+; c+; ; s;
2: c; [with >] eg; [] eg; s;

// bar 2
1: [with .] 4c++; [] c+; [] c+; 8g+ bm; f+ ebm;
2: c; eg; ; r;

Create a Postscript file

Converting the MUP file to a score is just a matter of running the MUP command to create a Postscript file.

mup hornpipe.mup > hornpipe.ps

The Ghostview program can be used to display the Postscript file as well as creating a PDF file.

gsview hornpipe.ps

PDF files can be created by Ghostview. The hornpipe.ps Postscript file produced this PDF version: Hornpipe.pdf PDF file.

Create a MIDI file

A MIDI file is created with a different command line option (/M). MIDI files are a great way to "proof-listen" a score and check for errors.

mup /M hornpipe.mup

The mup /M creates a MIDI file with a similar name. For example, the MUP file hornpipe.mup creates a MIDI file called hornpipe.mid. MIDI files can be played on Windows using a MIDI file player program such as Winamp or van Basco's Karaoke player which is my preferred program. Play Sailor's Hornpipe MIDI file [MIDI file]

MUPedit - a GUI front-end

I wrote a front end in Perl/Tk to speed up the process of compiling MUP files, reviewing errors, displaying the score and playing the MIDI files. I use MUP on the Windows platform and it was getting annoying having to switch between editors, command windows, MIDI players and Ghostview. Read about and download the script on the MUPEdit page.

Play MIDI file in Sequencer

The fun really begins when the MIDI file is loaded into a sequencer and played on a software synthesiser. Here is a screen shot of the piano roll editor in Cubase. Only the treble clef of the score is visible, as the bass clef was loaded into a separate channel.


Software synthesisers are assigned to the treble and bass clef channels, the "Play" button is pressed, and the computer begins to play the Sailor's Hornpipe. I am continuing my music arrangements using the Reason virtual studio from Propellerhead Software.

Charles Cave - May 2005. (Send Email)