Andre Van Ryckeghem wrote:
It is very easy to work with it because of the tweak possibilities. I
tried a sharp on the upper note of the last chord, with stem down. It
collapsed a little bit with the b. then i tweaked 3 accidentals. This
is the way it should go?

Christian Mondrup wrote:
well - not quite according to Gardner Read in his 'Music Notation' 2nd
ed., Boston 1969. On page 134 there is a series of examples on placement
of accidentals in chords alonq with some comments on rules and
guidelines for placement of accidentals. None of these examples, some of
them being comparable to the below example, have the accidentals
cascading leftwards from the top like in chord 2 and 3 below. Among the
main principles is to have as few accidental 'columns' as possible.

Generally I recommend Gardner Read's book (evaluated as _the_ standard
in the Lilypond engraving bibliography). Unfortunately it is out of
print and must be purchased second hand. I managed to do so a few months
ago.

Don Simons wrote:
As to whether its the right algorithm or not, I have no access to nor
have I ever even seen the Read book.

Since the problem of accidental placement is that important I've decided to publish an excerpt from Read's book, Chapter 4, section 4, Alignment. I've re-typeset the accompanying music examples with MUP 1. because PMX currently hardly will let me do it and 2. because I'd like to test to which extent MUP adheres to the 'rules' outlined by Read. As is seen from the attached MUP source it doesn't that much. I've had to 'manually' place most accidentals as found in Read's book!

...In intervals from the second up to the sixth, the accidental governing
the upper note is put closer to the note-head while that affection the
lower pitch is put diagonally to the left. ...All intervals wider than a
sixth ... have their respective accidentals aligned perpendicularly [that's
what I meant by 'columns']

... When the upper accidental in the interval of a sixth is a flat, some
music engraves ... align this flat with the accidental beneath it. This
occasional exception may be justified, in that the flat sign has no lower
"extremities" and consequently does not interfere with another accidental
aligned neneath it.

... When _three_ accidentals are required, the alignment process is
generally as follows: if the outer notes of the chord do not exceed the
interval of a sixth, the highest accidental is placed closest to the
note-head, the lowest accidental diagonally to the left, and the central
accidental at the far left [ex. 9-21 1. and 2.] If the top and bottom notes
are farther apart than a sixth, the highest and lowest accidentals are
aligned [ex. 9-21 3. and 4.] Whenever the interval of the second is present
in a chord structure that requires three accidentals, the alignment is
usually as shown in [ex. 9-21 5. to 8.]. If one of the accidentals can be
aligned over or under a projecting note-head without reference, it is so
placed [ex. 9-21 6. and 8.]

There can be no inflexible rules for placement in structures that require
_four_ or more accidental signs. One can only say that usually thge highest
and lowest accidentals are aligned whenever possible, and the center
accidentals arranged diagonally from highest to lowest [first 2 chords in
ex. 9-22]. The examples [ex. 9-22] illustrate the more common solutions to
the problem of placing multiple accidentals.
--
Christian Mondrup, Computer Programmer
Scandiatransplant, Skejby Hospital, University Hospital of Aarhus
Brendstrupgaardsvej, DK 8200 Aarhus N, Denmark
Phone: +45 89 49 53 01 - http://www.scandiatransplant.org

Attachment: accidentals.ps.gz
Description: GNU Zip compressed data

// accidentals.mup

define EXNUMH -13 @

score
        time = 3/2n
        label = ""
        label2 = ""
        scale = .8
        vscheme = 2f;
        scoresep = 40
music
        1: [=_h]2c#+anf#=a; f#+dn+an=b; s;
        center (_page.x,a.y-19) "\s(+4)Example 9-21";
        print (a.w,_h.y EXNUMH) "1.";
        print (b.w,_h.y EXNUMH) "2.";
        dblbar

        1: 2e&+anf#=a; f#+c#+af#=b; s;
        print (a.w,_h.y EXNUMH) "3.";
        print (b.w,_h.y EXNUMH) "4.";
        dblbar
        
        1: [pad2]2b&g&f=a; fn+d+g&f=b; b&a&f=c;
        print (a.w,_h.y EXNUMH) "5.";
        print (b.w,_h.y EXNUMH) "6.";
        print (c.w,_h.y EXNUMH) "7.";
        print (a.w-8,a.y) "\(nat)";
        print (b.w-6,b.y) "\(nat)";
        print (c.w-8,c.y) "\(nat)";
        dblbar

        1: 2f#+e&+af#=a; s;;
        print (a.w+1,_h.y EXNUMH) "8.";
        dblbar 
        newscore

        1: 2f#+c#+a#f#; g&+d&+a&fn; s;
        dblbar 

        1: 2f#+d#+gd=a; a&+c+ea-=b; s;
        print (a.w-3.25,a.y+3) "\(sharp)";
        print (a.w-6,a.y) "\(sharp)";
        print (b.w-6,a.y+6) "\(nat)";
        print (b.w-3,a.y+1) "\(flat)";
        print (b.w-6,a.y-3) "\(flat)";
        dblbar 

        1: [pad6]2e+c+bg=a; s;;
        print (a.w-5,a.y+5) "\(flat)";
        print (a.w-9,a.y+3) "\(nat)";
        print (a.w-12,a.y+2) "\(flat)";
        print (a.w-5,a.y) "\(nat)";
        dblbar 

        1: 2e&+d&+bg=a; s;;
        print (a.w-4,a.y) "\(nat)";
        print (a.w-10,a.y+2) "\(flat)";
        dblbar
        newscore

score
        scoresep = 20
music
        1: [pad6]2e+d+bge=a; s;;
        print (a.w-3,a.y+7) "\(nat)";
        print (a.w-6,a.y+6) "\(nat)";
        print (a.w-11,a.y+4) "\(nat)";
        print (a.w-8.5,a.y+2) "\(nat)";
        print (a.w-3,a.y) "\(nat)";
        center (_page.x,a.y-15) "\s(+4)Example 9-22";
        dblbar

        1: 2e&+cn+afd=a; f#+d#+bfd=b; s;
        print (a.w-8,a.y+4) "\(flat)";
        print (a.w-3,a.y+2) "\(nat)";
        print (a.w-5,a.y) "\(flat)";
        print (b.w-8.5,b.y+5) "\(nat)";
        print (b.w-3,b.y+2) "\(sharp)";
        print (b.w-6,b.y) "\(sharp)";
        dblbar

        1: [pad2]2gn+e&+d+bg=a; s;;
        print (a.w-10,a.y+4) "\(flat)";
        print (a.w-12.5,a.y+2) "\(flat)";
        print (a.w-5,a.y) "\(nat)";
        dblbar

        1 1: [pad2]2a&+f+d+=a; s;;
        1 2: 2a&fd=b; s;;
        print (a.w-8,a.y+2) "\(nat)";
        print (a.w-5,a.y) "\(flat)";
        print (b.w-8,b.y+2) "\(nat)";
        print (b.w-5,b.y) "\(flat)";
        dblbar

// Elisp environments for emacs editing
// Local Variables:
// compile-command: "mup accidentals -f accidentals.ps"
// End:

Reply via email to