John Henckel wrote:
>In abcm2ps there is a bug. If an accidental is used several times in the
>same measure, it draws all of them. Thus, K:F and " =B =B " will print two
>notes with naturals in front of them, but only the FIRST one should have a
>natural sign. I am going to fix jhabc2ps so that only the first occurrance
>of an accidental is printed in each measure. I recommend that all other
>ABC rendering programs should do likewise.
This is a really bad idea. Such "advisory" accidentals are often
there for a good reason. Suppressing them means that you're using cpu
time to make the music less readable. Nobody will thank you for this.
I wouldn't even consider using software that damages my music in such
a fashion.
Also, by doing this, you are explicitly excluding both the Early
Music and Modern Music crowds from the set of ABC users. Both of
these crowds often use the convention that accidentals apply to only
the one note. They have good reason for this. Discarding their
explicitly-coded accidentals will mean that they can't use your
software.
It should be noted that, for music formatters, the question of the
scope of accidentals is irrelevant. It only matters when you're
playing the music. Music formatters don't play the notes, they just
produce staff notation. They don't need to know anything at all about
a note's pitch, only how to represent it on a page.
So a music formatter like abc2ps has no business trying to
second-guess the transcriber. It should simply display accidentals as
shown in the ABC, and not try to "improve" on them.
Notation for parenthesized accidentals is a good idea. We've had a
number of suggestions that (^)A or (=)B be legal. This is probably
the most intuitive solution, and doesn't seem to conflict with the
use of parens for slurs. There was a suggestion that ?^A be used, but
I don't think there was any reaction to this.
I have wondered whether this should be discussed again. There are a
number of places where parens are used like this in printed music.
The one case where parens won't work in ABC is for optional slurs.
Writing something like (()ab cd) is probably not a good idea. It's
confusing and tricky to parse. The notation ?(ab cd) would be a
better way of saying that the slur is optional. Programs could
interpret this as is appropriate. A formatter could generate little
parens around the slur. A player could randomly choose whether to
honor the slur.
In most other cases that I can think of, parens in ABC would work. An
optional chord can be written as "(Em)", for instance, and everyone
will know what is meant. Similarly, (.)G and (H)G are obvious and
intuitive, and easy to parse.
To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html