>| > After several online discussions, I (and probably a few others)  have
>| > implemented  the  rather  trivial extension of allowing any string of
>| > digits, commas, hyphens and periods to label an ending.   This  means
>| > that  endings  like [1,3 and [1-3 work with a very few abc tools.
>       ...
>|
>| Does it behave correctly in this case?...
>|    ...
>|    K:D
>|    ...(a)...
>|    |: ...(b)... [1,3 [K:D Minor] ...(c)... :|
>|                 [2               ...(d)... || % no key change
>|    ...(e)...
>|
>| The key signature is two sharps for the (a), (b) and (d) music and
>| one flat for the (c) and (e) sections.  (I can easily imagine a piece
>| actually having this structure, and if there isn't one already out
>| there maybe I'll just write one...)
>
> Well, what I'd say is that it doesn't much matter,  because  this  is
> rather bad notation.  If you were to stick it on stands in front of a
> bunch of musicians, some would play (e) in D major and  others  would
> play  (d) in D minor.  You can insult the musicians all you want, but
> that wouldn't get them to do it right.  (Of course, it's still a  bit
> odd to see abc notation on a music stand.  ;-)
>
> The right way is to put an "advisory" key change at the start of  (e)
> to  make  it clear to everyone (human and software) what the intended
> key is.  Otherwise, you are asking for a disaster when that point  in
> the music is reached.

If the semantics is specified it *is* clear to the software.

You could simply say my example was illegal and *require* such an
advisory key signature, but your software would have to do exactly
the same semantic analysis to decide that the advisory was needed.
So that's no simplification at all for programmers.

> "Standard music notation" is a bit of  an  oxymoron,  and  subtleties
> like  this  are not understood in any consistent manner by musicians.

Doesn't matter if the musician is using the output of a correctly
implemented ABC-to-staff-notation generator.  It'll put the right
key signature in for section (e) and the user doesn't need to know
how it got there.


> I'd also predict that, no matter what we might decide here,  many  of
> the  folks who write abc software would probably not much notice, and
> would do whatever they  damned  well  please.   Or  they'd  not  even
> consider  the  problem,  and what the code does would be an accident.
> So, while it may be a Good Idea to say in the standard  what  happens
> in such cases, it wouldn't help all that much.

The point of my raising it was to get people to consider the problem.
I don't think there are any currently active developers as disconnected
from this list as you're suggesting.


> What abc2ps does is just take things in order.  The [K:Dminor] causes
> a  D  minor  signature  to appear thereafter, until there's another K
> field.

This is correct if "thereafter" means the actual sequence of notes
played, wrong if it means the sequence of characters in the file.
In fact the description above wouldn't even work with the latter
interpretation for a 1.6-standard [1 ... [2 ... repeat, if the key
change was only on the first time.


> (I wonder if there are any players that would stay in D minor for
> the start of the repeat?  Isn't that what the music says?  ;-)

Laurie went over the precise analogue of this for the case of tempo
and beat constructs.  The only difference is that key is something
display programs can't ignore.

Here is a real-life example (slightly reorganized from one in my modes
tutorial):

X:1
T:Sister Jean
S:Catriona Macdonald
M:6/8
L:1/8
Q:3/8=80
R:andante
K:DDor
D2E F2G|ABA G2F|E2C C2G|E3    D2C|D2E F2G|ABA A2G|     A2d d2c|d3 D3:|
K:DMix
A2B c2d|efe e2c|A2B c2G|E3 [1 C3 |A2B c2d|efe e2d|[K:D]f2d d2c|d3 A3:|
                           [2 C2B|A2A F2D|A2A F2D|     A2d d2c|d3 D3|]

BarFly gets the staff notation for that wrong but plays it correctly:
that is, the c's in the second-time repeat are printed sharp and played
natural.  Does abc2ps print a two-sharp signature for the last line too?

Yes, it would be more conventional to just notate the above using
accidentals, but in the context it came from there was a specific
reason for using key/mode signatures instead.


> There's no excuse for this not being in abc after all these years.

Not having its interaction with the rest of the notation properly
specified so that it can be generally implemented seems a pretty
good excuse to me.  I imagine many implementors vaguely anticipated
troubles along the lines of the those I've described, decided "here
be dragons", and put it off to such time as it might be unavoidable.
But the difficulties aren't insurmountable.  Unrolling repeats and
header-controlled part order are source-to-source operations of the
sort that any decent ABC editing toolkit ought to have; they don't
require the implementors of player programs to understand PostScript
or those of formatters to understand MIDI.  This stuff should be
common ground.  If we're considering an open-source parser there's
no excuse for getting it wrong.

=================== <http://www.purr.demon.co.uk/jack/> ===================


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

Reply via email to