Erik writes:
|  --- "Funzionario E.D." <[EMAIL PROTECTED]> wrote:
| > as a last resort, you may consider writing your ABC source
| > code using abcpp #defines. As it happens, I wrote it to
| > circumvent abc2midi's idiosyncrasies.
| > This is what I would do:
|
| It is a logical step, but IMHO it will lead to different versions of
| abc, "abc-for-MIDI", "abc-for-humans",
| "abc-for-convertion-to-staff-notation" etc. I think we should avoid
| that as far as possible (see my message from yesterday).

Well, I dunno; I think this abcpp looks like a sorta neat tool.   One
application  I've  thought  in my SCD (Scottish Country Dance) music:
There are a lot of marches  used  as  reels,  and  these  are  almost
exactly   evenly   divided   between   M:2/4   and  M:4/4  (with  the
understanding that the latter  really  means  M:C|  or  M:2/2.)  It's
confusing  to have a medley page with mixed time signatures, and it's
a hassle to maintain two versions that differ only in  the  M  and  L
headers.   With  abcpp (or even cpp if you're on a unix-like system),
you could easily have a single abc file with  #if  used  to  generate
both of the time signatures as needed.

This has nothing to do with abc itself, or  any  distinction  between
printing  or playing.  There are two conventional ways of writing the
music, and the difference is easily handled in ABC by  changing  just
the two header lines:

#if METER == "2/4"
M: 2/4
L: 1/16
#elif
M: C|
L: 1/8
#endif

I can also see using a tool like this for other purposes.  Thus,  you
may want to print a part for different instruments that use different
clefs.  Leaving aside the question  of  transposition,  with  only  C
instruments  you see different clefs.  I have a Telemann quartet that
has one part indicated for either alto recorder or bassoon.  It would
be really handy if I could have just one abc file for this part, with
a choice of several V lines selected by an #if line.  Using C's macro
notation, I could say:

#if V3 == "alto recorder"
V:3 name="alto recorder" clef=treble
#elif V3 == "bassoon"
V:3 name="bassoon" clef=bass
#endif

There are also examples such as the flute or tenor recorder part that
wants  clef=treble  while  piccolo  and  soprano  recorder should use
clef=treble+8.  This is a rather trivial example, of course, but it'd
be nice to be able to Get It Right.

(Note that this example only works if your abc software uses the clef
interpretation  that  maps  the  letters  A-Ga-g to the staff for all
clefs, or allows something  like  the  proposed  middle=d  clause  to
specify  the  mapping.   But that's a different topic that we've gone
over a few times with no clear resolution.)

I would recommend using a different suffix than .abc for such  files.
Maybe .abcm to indicate the use of preprocessor macros.

To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html

Reply via email to