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
