James Allwright wrote:
| Someone wrote:
(That was me. ;-)
| > >One question is about spaces. I'd prefer to say that the fields of a
| > >K: line may be separated by spaces, for readability. The only problem
| > >with this is the abc 1.6 description of "global accidentals", which
| > >use the same syntax but with the accidentals separated from the
| > ><tonic> and <mode>. However, I've been unable to find any abc that
| > >uses global accidentals, or any software that implements it. So
| > >perhaps we should decree "global accidentals" no longer part of abc's
| > >syntax, and permit spaces between the K: fields.
|
| I'm a bit confused here. My parser (for yaps and abc2midi) implements
| global accidentals with spaces between them, but these modify the key
| signature rather than the every individual note. Is this what is being
| proposed ?
Yes. If you read the 1.6 spec carefully, what it says is that the
things called "global accidentals" are to be drawn before all the
notes in the tune. It says "... for example, K:D =c would write the
key signature as two sharps (key of D) but then mark every c as
natural ...." It also states that such accidentals are separated from
each other and the key signature by spaces.
So one suggestion some time ago was that "explicit key signatures"
might be distinguished from "global accidentals" by not having spaces
before the former. Thus "K:DMix=c" or "K:D^f=c" would draw a key
signature of ^f and =c, and not put naturals before the c notes. This
wouldn't break any abc that followed the 1.6 standard.
But there don't actually seem to be any uses (or implementations) of
the "global accidentals" part of the 1.6 spec. My tune finder's
search bot couldn't find any when I asked it to, and the occasional
mention here hasn't turned up any actual examples. This doesn't much
surprise me. While I can think of some possible uses for it, mostly
in music ed texts, I would agree that it's not very useful. I did my
extension of abc2ps so that it doesn't permit spaces before such
accidentals in the keysig. This was partly because it was easy to
code, but also because of the above discussion.
The "global accidentals" idea does strike me as basically a mistake,
however, and probably not worth preserving. Since it apparently isn't
being used, dropping it won't break any known abc files. The main
reason for doing this is user friendliness. It would be natural for
users to type something like "K: A Mix =g" because it's more readable
than "K:AMix=g". Current parsers will allow all the spaces except the
one bfore the '='. This would be confusing to a lot of users, who
might not understand why, for example, "K:A Mix=g" and "K: AMix=g"
work but "K: A Mix =g" doesn't.
The simplest approach would be to say that spaces are allowed in the
keysig in the obvious places, before the <tonic>, <mode>, or any of
the <accidentals>. But this would produce a minor incompatibility
with the 1.6 standard.
One thing I can see being mentioned in a "recommended practices" part
of a standard, if we choose to write one, is a suggestion that music
display programs provide an option to do something similar: The
accidentals in the <accidentals> list might be drawn throughout the
music. There might also be an option to also draw <mode> accidentals
throughout the music. Music players have to do this in any case, of
course. Doing it in displayed music could be useful to people who are
writing music ed texts and other documentation. But it probably
wouldn't be very useful otherwise. It might be interesting to hear
from people who think they might use such a feature.
This is all a rather fringe, "language lawyer" sort of topic ...
To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html