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
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:
