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.
|Designing Electronics with Linux||May 22, 2013|
|Dynamic DNS—an Object Lesson in Problem Solving||May 21, 2013|
|Using Salt Stack and Vagrant for Drupal Development||May 20, 2013|
|Making Linux and Android Get Along (It's Not as Hard as It Sounds)||May 16, 2013|
|Drupal Is a Framework: Why Everyone Needs to Understand This||May 15, 2013|
|Home, My Backup Data Center||May 13, 2013|
- New Products
- Linux Systems Administrator
- Senior Perl Developer
- Technical Support Rep
- UX Designer
- Designing Electronics with Linux
- Dynamic DNS—an Object Lesson in Problem Solving
- Using Salt Stack and Vagrant for Drupal Development
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Nice article, thanks for the
6 hours 34 min ago
- I once had a better way I
12 hours 20 min ago
- Not only you I too assumed
12 hours 38 min ago
- another very interesting
14 hours 31 min ago
- Reply to comment | Linux Journal
16 hours 24 min ago
- Reply to comment | Linux Journal
23 hours 18 min ago
- Reply to comment | Linux Journal
23 hours 34 min ago
- Favorite (and easily brute-forced) pw's
1 day 1 hour ago
- Have you tried Boxen? It's a
1 day 7 hours ago
- seo services in india
1 day 11 hours ago
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi
It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?