Jean-Francois Moine wrote:
>Phil Taylor a skrivas:
>> Henrik Norbeck wrote:
>> >Jean-Francois Moine wrote:
>> >> - !repeatbar!, !repeatbar2!, ...
> [snip]
>> >As I understand the idea behind the draft standard, the
>> >!something! can be used for accents, but also for other symbols. I
> [snip]
>> Reformulated is an understatement. That section of the draft standard
>> is total mess. It confuses and conflates the ideas of redefinable
>> symbols and macros, while introducing the totally unnecessary !text!
>> construction. I've had both things working in BarFly for several
>> years, using the syntax which was formulated back in the old abc
>> developers group. It works beautifully and I have no intention of
>> replacing it with something which is clearly inferior.
>
>Sorry for I did not follow this old thread. I'd be glad to know how BarFly
>handles:
>- the dynamic signs ('f', .. - bold fonts -, 'cresc', .. - italic fonts),
>- the repeat symbols ('da coda', 'al segno', ..),
>- strange glyphs as 'slide', 'coda', 'fermata' or 'arpeggio',
>- long signs as 'this trill starts here, and stops there',
>- the measure repeat indication which was the current question ;),
>- and, generally, a specific sign this fuc^H^H^Hsympathetic user wants to
> have in his score.
BarFly supports a different (but intersecting) set of features. Because
BarFly both displays abc as staff notation and plays it I have to be
somewhat more careful about these features than would be the case if it
only did one of these functions. So BarFly supports both the regular and
inverted fermata; both symbols get drawn in the music, and when played
the user has the option of setting the way these are interpreted
(how much longer or shorter the note to which they are attached is played).
Most of these things are implemented exactly as described in the abc
1.6 standard, i.e. using the letters H..Z. The only extension involved
is that the user can specify which letter is attached to which symbol
by means of the U: field.
So, if you want the letter Q to signify the inverted fermata you write:
U: Q = invertedfermata
No exclamation marks required. This is not a macro. Redefinable
symbols are used to specify symbols for which I have written code,
so you can't write:
U: K = arpeggio
because I haven't yet written the code to draw and play arpeggios.
You can define more than one letter to stand for the same symbol e.g.
U: T = trill
U: S = trill
and then use different macros to make the two trills play differently,
and you can also undefine a symbol:
U: S = nil (S will then be ignored).
BarFly also supports macros, which are quite different in that they
allow the user to define anything that can be expressed in abc text.
It is not the case (as suggested in the draft standard) that U: is
used for staff notation and macros for playing. The critical difference
is that symbols defined using U: invoke a piece of code to draw or
play something and can only be used if the developer has written
that code into the program, while macros simply substitute one bit
of abc text for another before the tune is parsed, and the user can use
this for purposes which the developer may not have anticipated.
You could, for example, use a macro to substitute the letter Q for
the text !invertedfermata! in the tune, and a suitable file of macros
would allow the program to support the !symbol! format proposed in
the draft standard. However, it's extremely clumsy, clutters up the
abc with stuff between exclamation marks, breaks lots of tunes written
by abc2win and is quite unnecessary, as you can already do this using
the annotation format "^inverted fermata" if you want. Furthermore,
enabling macros for display purposes means that ornaments will be written
out in full if they have associated macros, which is not usually what
you want.
That section of the draft standard is a total mess. I have opposed
it on every single occasion it has been mentioned here, and I
continue to do so. The extensions to abc which BarFly implements
are described at <http://rbu01.ed-rbu.mrc.ac.uk/bfextensions.html>.
That page has been available for anyone to read for the last three
years. It's a little out of date, as the list of redefinable symbols
has grown to include all Bach's symbols (at least all the ones which
he used in the Goldberg Variations).
Phil Taylor
To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html