ie, if you're not into both, delete this now ;) Don't say you weren't warned.

I'm very happy with abcm2ps's ability to typeset normal bagpipe music; so that 
means I need a challenge...

I've been playing with abcm2ps with the intention of being able to set 
piobaireachd [1] with it.  This is a bit of a nuisance, as virgin ABC is 
about as well equipped to handle piobaireachd typesetting as a virgin is 
to...well, you get my drift.

Here's problem no 1:

%%leftmargin 2.25cm  % room for manoeuvre
%%postscript (text) % call to routine between this line and next
%%postscript /Times-Roman findfont
%%postscript 14 scalefont
%%postscript setfont
%%postscript -55 29 M show
             ^^^ ^^
            magic nos

I stick this (wrapped in a routine) after each line of music.   It sticks a 
label in front of each line of music.  Trouble is, the string length varies, 
from '1st.' to '1st. & 3rd.'.  Is there any way of right-justifying this text 
somehow?  The ugly solution is to use a fixed-width font, and calculate its 
width from its length, but my sensitive soul revolts at such a way of doing 
things.  Besides, I'd like the labellings in an attractive(ish) font.  And I 
don't know what the postscript for strlen() is.

Sub-problem - for some reason, appending this after the last line of music 
doesn't work - meaning the text just doesn't show up.  Providing a seperate 
routine for the last line and putting it before it works, but again, ugh.

Problem no 2:

Has been solved, as I had a look over Guido's superb typesetting guide before 
sending, and found the answer staring me in the face.  Hurrah for %%multicol.

Problem no 3:

This was discussed on the list before (last year), and I apologise if it feels 
like I'm flogging a dead horse.

This, I think, is the most difficult.  Frequently, each variation is repeated 
with only slight variations in melody.  Sometimes, a line is repeated with a 
phrase added or left out.  So, what is needed is a octavo-like marker with 
text settable when called ("2nd line only", "1st time twice", etc).  If it's 
at all possible, it really needs to be nestable one level (ie sections within 
sections, but no sections within sections within sections!)  Ewan MacPherson 
has been kind enough to show me the code he uses for 1st and 2nd time phrases 
within parts/lines, and I've taken the liberty of reproducing part of it.  My 
postscript skills are insufficiently l33t to understand what's going on in 
there with the line of exchs (if someone could explain it, I'd be very 
grateful), though I assume it has to do with the internal workings of 
abcm2ps:

% -- draw "first time" indication 
%%postscript /firsttime {       % usage: len x y firsttime 
%%postscript    exch -9 add exch 2 copy  
%%postscript    M 0 10 rmoveto /Times-Roman 16 selectfont (1) show 
%%postscript    M 0 6 rlineto currentpoint stroke M 
%%postscript     30 add 0 rlineto currentpoint stroke M 
%%postscript     0 -6 rlineto stroke 
%%postscript } bdef 

% -- start / stop of firsttime indication
%%deco 1( 5 - 24 0 0
%%deco 1) 5 firsttime 24 0 0 

Sorry, I think some of you are going to get hit with ^Ms - I'm not sure if 
kmail filters them, but anyway I can't see them...

Is it possible to modify this to do what I want?  I suspect it probably needs 
two routines, one for the inner brace and one for the outer (how to do that 
without potential crashes?)  Aargh...

Incidentally, I'm well aware of the argument that this isn't how music should 
be written anyway...all I can say is, it makes it a heck of a lot easier to 
learn if you can see the trees nicely marked out from the wood. 

Cheers,
Calum



[1]If anyone thinks it would be helpful to actually see some of this 
piobaireachd stuff in its natural habitat, let me know and I'll try and get a 
scan of a piob society page posted on the web.  Will take a day or two, 
though.
To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html

Reply via email to