[EMAIL PROTECTED] wrote:
>
> 1. The draft standard allows U: to replace a string with another string. But if,
>for example,
> U:T = !trill!
> always worked, then the T: header would go to !trill! Are there any tunes that use
>the U:
> and what do they expect? I haven't come across any.
>
In principle, I don't think it should if the T: header came on a line of
its own, because the context in which both constructs would occur would
then not be the same. Also if you inlined the T: header, the ':' should
prevent the T from being interpreted as a symbol, as you can't have
[!thrill!:Part II]. Other header letters also works as a symbol (H: =
history vs. H = !fermata!, L: = unit note length vs. L = !accent!,
etc.). This just requires the parsing algorithm always to read ahead
for context before deciding the meaning.
If I got the draft standard right, header field letters used as symbols
work normally as if implicitly redefined in a U: field. Seems to me abc
grammar is _not_ as context-free as one might think; then the parser
should always check the context it is in. Up to the point where it has
just read a 'T' after a '[' it is in state 'standby' (to allow e.g. both
[T:Part II] for a part title and [TCEGc] for [!thrill!CEGc]); if then
it reads in a ':', the context changes to 'just-read-a-header', else, to
'just-read-a-symbol'.
> 2. L=1/4 and [FG/]G , what beat is the second 'G' on? 2 or and-of-one?
>
You had better say
[F/-G/][F/G/-]G/
or
[F/-G/]F/G
as the meaning may be.
The way it is coded does't make it clear at all. Either way the beat
count for both voices doesn't balance (i. e, the sample looks
incomplete):
(1) G/ G/- G/
F/-F/ ?
(2) G/ ? ? ?
F/-F/ G/-G/
It *might* make sense if standing for something like this (after
splitting the parts):
[V:1] G/ G A/ B2 | % A/ B2 added just to complete
% the voice melody in measure
[V:2] F E D2 | % E D2 added just to complete
% the voice melody in measure
This *should* be codable as
[FG/] [EG] [A/] [D2B2] |
but then it would be expected from the parser to figure out that
- in [EG] the E should start a half beat after the G and that
- in [A/] the chord is filled by the remaining half beat of the E.
That is confusing and the standards don't even mention this
possibility: both the standards v. 1.6 (abc2mtex's User Guide included)
and draft v. 1.7.3 illustrate the construct with same-length examples.
Once in an arrangement I did code something like that and the typesetter
(abcm2ps, probably, but I'm not sure, it was long ago) didn't render it
as I expected -- and it wasn't the programmer's fault. From then on, I
always spell such things out, like
[F/-G/] [F/G/-] [E/-G/] [E/A/] [D2B2] |
and all is pure joy.
I think the standards should be reviewed so as to state that this chord
construct *must* contain notes/pauses of the same length only, with ties
to the next chord as needed. That would make meaning clear and leave to
the typesetting application rendering details.
This approach seems to me the most appropriate, because some
instruments, e. g. classical guitar, can make heavy use of chords
representing voices, some of which start from nowhere and end wherever
they feel like it (that is, the pauses are not written out). The
voicings may be clear on a typeset staff, but in abc it would be hard to
algorithmically assign the notes to the intended melodic line in all
cases but the simplest ones.
Paulo E. Tib�rcio
To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html