MUP: Music Publisher
If you are a musician, you can only cry about the lack of music programs which run under Linux. Yes, there are many CD players and sound editors. However, when it comes to notation programs for producing printed sheet music, your choices are severely limited. My search for notation editors has turned up three choices: Rosegarden, TeX music systems and MUP (music publisher).
The graphical program Rosegarden (http://www.bath.ac.uk/~masjpf/rose.html) is a very interesting program which tries its best to do everything. It has a notation editor which handles most of the normal editing functions, a MIDI sequencer which will play music from the notation editor as well as record data from a MIDI keyboard, and the ability to import MIDI files and convert them to notation—sounds wonderful. Unfortunately, Rosegarden is a work in progress and simply doesn't do all it is supposed to do, or does them awkwardly.
I have been unable to get the sequencer to work using my Gravis Ultra sound card, and I find that the notation editor is tedious to use, since there are no keyboard accelerators for entering note data. In addition, there is no easy way to print music. Rosegarden does have the option of exporting files in MusicTeX, OpusTeX and PMX (a preprocessor for MusiXTeX). I tried some of the combinations, but was not impressed by the output.
The biggest problem with Rosegarden (and a lot of other music editors) is that it works on the music as if it were a long string, which means changes to the start of the music propagate to the end of the chart. For example, if in bar one of a piece you have four quarter notes and you wish to change the first quarter note to two eighth notes, you change the first quarter to an eighth, then insert an eighth. When the first change is done, everything to the right of the edit point is reformatted with the result that none of the music is now in the correct measure. Of course, inserting the second eighth fixes this. If you have several staves of music and you do a few edits, messing up the entire piece is much too easy.
I did not spend much time with any of the various TeX music systems. I can handle LaTeX for word processing, but the music variants seemed much too complex to use. All are in a beta state, and none produced output which looked finished to me.
MUP, at first glance, would probably be the last program to pick. However, after a fair bit of testing, I have decided to use it. So far, I'm happy with my choice. Quoting from the user's manual:
The music publisher program called MUP takes a text file describing music as input, and generates PostScript output for printing that music. The input file can be created using your favorite text editor, or generated from any other source, such as another program. The input must be written in a special language designed especially for describing music.
Unlike Rosegarden (and the MS Windows offerings), MUP does not operate in a WYSIWYG environment. As a matter of fact, the MUP distribution doesn't even have a means of editing music. MUP uses plain text files with the appearance of source code as its input. Use vi, Emacs or whatever your flavor of editor is. Process the file with MUP to create postscript, and finally, print the postscript file. If you don't have a postscript printer, you'll need ghostscript to print things out, and ghostview is handy for screen previews.
As an example of how MUP uses lines of text to describe a piece of music, here are a few bars of music:
* 1: 8g;c+;e+;g+;g;b&c#+;g+; * bar * 1: 8g;b;d+;f+;4g+;g+; * bar * 1: 8g;c+;e+;g+;g;b&c#+;e+; * bar * 1: 4g+;b;c+;c#+; * bar * 1: 4d+;c+;a;f; * bar
The 1: at the start of each line is the staff/voice indicator (in this example, it refers to staff 1 and, since there is no additional argument, voice 1). Following the staff/voice are the notes for the measure. The first measure has an eighth note g, eighth note c, etc. The next measure has several eighth notes as well as two quarter notes. At first this might seem to be a bit difficult to follow, but with practice it quickly makes sense. (See Figure 1 for example output.)
A MUP score can contain up to 32 staves of music, each with two voices. Each voice can have multiple notes (or chords), so complex arrangements are quite possible. In addition to the actual staves, you can also include lyrics, musical symbols and other appropriate items.
I started to use MUP when I was playing saxophone in a small combo. We all play from fake-type music (chords, lyrics and the melody line). Since I'm not the greatest sax player in the world and find it fairly hard to transpose from C to B flat while sight reading, I started rewriting the C charts into B flat by hand. I find anything needing a pen to be tedious, so I was inspired to try MUP. After doing a few practice charts, I am now able to enter a page of one-line music with lyrics in about an hour. Since MUP can produce MIDI files as well, I can create one in the right key for practicing at home.
Flushed with the success of doing these simple charts, I decided to try a more complex task. I also play in a 15-piece dance band. Most of the music we play is arranged by our leader, but recently some of the members have been doing some arranging as well. So, I decided to give it a try. My first arrangement of the old standard “Fever” took the better part of two days to complete—arranging it for 11 voices on 6 staves. We played it the other night and I was pleased—not only was everyone impressed by the appearance of the charts, it didn't sound bad either. The first page of the conductor's score is shown in Figure 2. The complete MUP files for “Bye Bye Blackbird” and “Fever” are available by anonymous download in the file ftp://ftp.linuxjournal.com/pub/lj/listings/issue53/3056.tgz.
If you would like to see some of my other arrangements, I have posted them along with a copy of this article at http://www.kootenay.com/~bvdpoel/.
I certainly don't have room in this short article to cover all the features of a complex program like MUP. A few of the more useful items I've been using are if/else statements to produce charts for different instruments, file includes to read in my own “boiler plate”, and macros to make my input files easier to create, read and revise.
MUP comes complete with a well-written, 99-page user's manual in PostScript (you'll have to print it out), as well as the same information in HTML format. Equally impressive is the customer support available via e-mail. I've sent a number of queries to the authors and have received courteous, timely replies to each and every one.
MUP is not free. You can download a working copy of the program, the source code and the manual from http://www.Arkkra.com/. In addition to the pre-compiled package for Linux, binary packages exist for other x86 UNIX systems capable of running ELF x86 binaries and a MS-DOS package. Also, the complete, commented source code is also available. This source should, according to the authors, compile on any platform with a C compiler. The Arkkra home site also has a pointer to a Macintosh port—this cross-platform support is a nice bonus as part of this excellent package. The program is a complete working copy—however, it prints a “this is an unregistered copy” watermark on all pages of the score. MUP registration is only $29 US; paying this gives you a license which turns off the marks. This is a fairly low price to pay for such a well thought out program.
This article was first published in Issue 28 of LinuxGazette.com, an on-line e-zine formerly published by Linux Journal.
|Natalie Rusk's Scratch Coding Cards (No Starch Press)||Feb 17, 2017|
|Own Your DNS Data||Feb 16, 2017|
|IGEL Universal Desktop Converter||Feb 15, 2017|
|Simple Server Hardening||Feb 14, 2017|
|Server Technology's HDOT Alt-Phase Switched POPS PDU||Feb 13, 2017|
|Bash Shell Script: Building a Better March Madness Bracket||Feb 09, 2017|
- Own Your DNS Data
- Simple Server Hardening
- Understanding Firewalld in Multi-Zone Configurations
- Teradici's Cloud Access Platform: "Plug & Play" Cloud for the Enterprise
- From vs. to + for Microsoft and Linux
- IGEL Universal Desktop Converter
- Bash Shell Script: Building a Better March Madness Bracket
- The Weather Outside Is Frightful (Or Is It?)
- Linux Makes Wi-Fi Happen in New York City
- Returning Values from Bash Functions