Well, it's been about a month since these topics were last discussed.
In the meantime, I decided to see how hard it could be. Finding the
spare time was mostly what was hard, what with a new job and it being
summer and all that. But my tune finder has been using my new version
for a few days, and it seems pretty stable, so I thought I'd tip
people off about what I'd implemented. The extensions are actually
rather small, but they are useful.
First, to make it clear that this is a branch off the "official"
abc2ps, I named my version jcabc2ps. It's at:
http://trillian.mit.edu/~jc/music/abc/src/jcabc2ps/
http://trillian.mit.edu/~jc/music/abc/src/jcabc2ps.tar.gz
I've tested it on linux (RedHat) and FreeBSD. I suppose I should be
looking into getting this compiled on more kinds of machines. It's
definitely ANSI C now, as were the last few versions from msm, so
ancient compilers may not like it.
The keysig syntax that it recognizes is:
K:<tonic><mode><accidentals>
where all three of the fields are optional. If both <tonic> and
<mode> are given, the appropriate accidentals are generated. If there
is a list of <accidentals> in addition, they are added to the mode's
accidentals. K:<tonic><accidentals> gives only the listed
accidentals; the tonic is effectively ignored. For example:
K:^G Just a ^G as the key signature, no tonic given.
K:_f_B_e Balkan and Middle-Eastern musicians will recognize this
K:D_f_B_e D hejaz/freygish scale
K:C_f_B_e C misheberach scale.
K:Dmaj_e_B D^f^c_e_B -- what's this one called?
K:Amix=g paranoid A mixolydian, with explicit G natural.
For some examples, here's a page that our klez gang has played for
contras. Most of you will recognize the tune. The first version has
an explicit =g to tell novices that it isn't in A and the signature
isn't a mistake. The second version is "Balkanized" in a form that
works quite well with this tune.
http://trillian.mit.edu/~jc/music/abc/KlezContra/KJ04_C.abc
http://trillian.mit.edu/~jc/music/abc/KlezContra/KJ04_C.ps
(I've also used this at Scottish country dances, and it gets quite a
reaction - and a lot of grins.)
The repeats that I've implemented aren't yet as general as everyone
would like, but they cover the most common cases. The syntax allows
for the chars [-,.x0-9] after a bar line, and simply copies the
string to the music under the ending box. The trickiest part was
getting chord symbols (and their notes) moved over so as not to
overlap. This isn't quite perfect; sometimes they are still too close
together. Also, multiple colons are allowed and are copied to the
music in the usual way. So a three-times phrase can be written:
|:: ... ::|
This can be combined with the endings in the obvious ways:
|::: ... |1,3 ... |2,4 ... :|
This is the more correct form of what is often written:
|: ... |1,3 ... |2,4 ... :|
Both are correct, as is omitting an initial repeat symbol completely,
but all the colons are useful if you want to maximize readability.
Some examples that use these repeats (and explicit keysigs):
http://trillian.mit.edu/~jc/music/abc/Intl/Belasicko.ps
http://trillian.mit.edu/~jc/music/abc/Intl/Bucimis.ps
The ps files will probably go away in a few days, though the abc
files will stay there, of course.. Meanwhile, people who get tunes
from my web site will see the effect of this as I copy tunes from my
home system.
To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html