Because of the maintainability issues with lilypond (see this
entry for a discussion), I’m looking into whether there’s another
option for future publishing activity.
My publishing history
I thought TeX was the coolest program I’d ever heard of when I
first heard of it in 1981, and I wished there was something like that
for music.
When I heard of Musixtex in 1994, I tried using it. I could write
it ok, but reading it made my head ache, and I didn’t see any good way
to do lyrics.
When I got a Linux machine in 1995, I tested out all the open source
music publishing programs I could find, and by that time there was pmx
and musixlyr to help with reading the input and writing the lyrics,
but installing them was really hard. So I ended up using ABC, which
is really readable and anyone who wants to spend 10 minutes can
install it on any computer with a C compiler. (Yes, I have friends who
claim to be really interested in doing music typesetting who haven’t
spent the 10 minutes, but I suppose all hobbies have people like that.)
When I got abc2ly working, I started using lilypond as a backend to my
abc input instead of the abc*2ps jungle. This looked like it was
working, but unfortunately the half-life of lilypond code seems to be
about 2 years. Which would be OK if I were only using the features
that abc and abc2ly support, but I’ve been hand-editing the lilypond
files to take advantage of features not available in ABC. The typical
Serpent Publications project takes about a year for the initial
data-entry and proofreading phase, and may take much longer until the
final editing, and if it’s part of a larger sequence like the
Dowlands, a 5-year project lifespan isn’t unreasonable. And in any
case, one reason for electronic publishing is so that you can produce the
pdf’s you need today, not the ones you needed 3 years ago. So having
orphaned code around is not a good thing.
So yesterday when I discovered that lilypond 2.6.3 seems to be
completely broken (bug
report) on my system, I decided to see where the musixtex stuff
had gotten to.
musixtex testing
It installs a lot easier (at least on Debian) than it did in 1995.
There are packages for the basics, so “apt-get install m-tx musixlyr
musixtex musixtex-slurps pmx” gets you started, with documentation and
everything.
My first idea was to check out some of Christian Mondrup’s current
stuff and see if I could modify it to get unbarred parts instead of
barred scores.
I immediately found that the installation for printing actual work
isn’s as easy as just running apt-get, because people actually use a
lot of TeX stuff that isn’t in the distribution. Fortunately,
Christian is pretty meticulous about uploading what he uses.
Installing it does involve knowing some things about how your TeX
distribution sets up its directories, which I’m sure I didn’t know in
1995, but I mostly do now, and I recorded what I did (in a makefile)g
so I can do it again fairly easily if I have to.
The parts part is
easy — the Vecchi madrigal
I was looking at is written as an abcpp macro file which allows either
score or parts to be printed.
Unfortunately, somewhere at the M-TX or PMX level, something is
really barline dependant. I was able to get the list to tell me how
to turn printing the barlines off (and turn it back on again, which
you need to do for even a repeat sign). But typing anything where the
notes cross the barlines is going to be a real nuisance — you have to
use cryptic pmx syntax to change the length of the bar every time it
happens. lilypond and abc applications are usually not well-designed
for printing good output where all the notes cross the barlines, but
the input is no problem. In ABC if you don’t want a barline, you just
don’t write one, and I have abc2ly set up so that the default barline
is “empty”, and if you write a barline it becomes a normal barline.
There is a concept of an empty barline in pmx, but there doesn’t
seem to be a way to tell it that that’s the default kind. And in any
case, it can’t deal with a note that has a barline in the middle of
it, so to write a whole note that crosses the barline, you have to
tell it that the measure before and after are different lengths.
Now I’m sure it’s possible to define emacs macros or or some kind of
preprocessor program so that typing this isn’t as big a pain as it is
for the novice, but it does seem that this is defeating some of the
purpose of typesetting barline-independant stuff.
On the good side, I can report that fiddling with the layout is a lot
easier than it is with lilypond. The typing is pretty easy, and M-TX
plus PMX is no less readable than ABC or lilypond. I don’t yet know
how to do some of the things like ambits that I use lilypond for, but
I’m sure it’s possible. I haven’t played with the MIDI generation,
but it doesn’t seem to be a problem for the people who use it. There
is some kind of lute tablature, but I haven’t looked at it yet. The
figured bass support is good.
I’m also having enough trouble typing one line with Renaissance
rhythms that I’m not sure what it’s going to be like telling it
there’s a 4 or 5 line score with barlines in different places, so I’d
definitely want to test that out. I’m not sure what route I’d take
to get the score and parts. Christian seems excited about abcpp, but
he might be mostly entering things that are already in score.
So it isn’t out of the question to switch to using musixtex, but it
isn’t a no-brainer, either.
Future plans
It looks like I won’t have time to set an M-TX piece in time for
Tuesday’s rehearsal. But I want to look into it more. But sometime in
the near future I will either set a piece of my own or modify one from the
web so that it meets my minimum standards and see what the group members (and
the blog readers) think.
I will also look into the lute tab stuff to see if it’s easier to get
what i want that way than by beating assistance out of the lilypond
list. (I forgot to mention that the tone on the musixtex list seems a
lot more civilized than the one on the lilypond list. But it’s a lot
lower volume, and googling is a lot less useful. And the manuals
aren’t indexed.)
I’ll also download a sample of stuff from the internet and see if
the stability is as advertised in real-world examples.
