On 03/05/2013 12:05 PM, David G wrote:
I had been wondering that as well because I don't think it's all that
unusual, at least for early 20th century music (I have some Webern
scores printed in this way) but I couldn't see anything in the Lilypond
documentation.

If anyone has any suggestions I would be grateful too!


On 2 March 2013 22:07, Joseph Rushton Wakeling
<joseph.wakel...@webdrake.net <mailto:joseph.wakel...@webdrake.net>> wrote:

    Hello all,

    Taking a look at Berg Op. 5 (see Sibelius-related discussion) I
    realized that it uses a slight variant of the "dodecaphonic"
    accidental style: every note has an accidental, but only for its
    _first_ appearance in the bar.

    Any advice on how to achieve this automatically?

    Thanks & best wishes,

         -- Joe

For Berg scores, I used to use dodecaphonic accidental style with Urs Liska's suggestion to suppress rendering of the accidentals, but it has two drawbacks:
1) accidentals cannot be suppressed for single notes within a chord
2) suppressed accidentals still take space. That is visible in the spacing. Also, slurs/ties etc are curved around the invisible accidentals.

As a fix, I made a small addition to music-functions.scm to add a dodecaphonic-first accidental style. Patch against 2.17.18-1 attached.

For this Berg Op.5 score (which I am typesetting as a Lilypond exercise in piano music; will report later) this requires a number of additional force-accidental ! annotations because the style isn't precisely dodecaphonic-first, but my feeling is that using ! in dodecaphonic-first requires far fewer annotations than using dodecaphonic with Urs's accidental suppression.

Besides the Berg scores I looked at, I scanned a few Schoenberg and Webern scores, and in all of them, the accidental style is not something that would be easily automated. In some bars it is exactly dodecaphonic-first, in others accidentals are suppressed only for immediately repeated notes, and often it is some mixture. Using dodecaphonic-first and adding ! here and there works fine for me.

Rutger


--- usr/share/lilypond/current/scm/music-functions.scm	2013-05-27 09:45:16.273111287 +0200
+++ orig/usr/share/lilypond/current/scm/music-functions.scm	2013-05-11 17:17:14.000000000 +0200
@@ -1323,16 +1323,14 @@
 	 (car alteration-def))
 	(else 0)))
 
-(define (check-pitch-against-signature context pitch barnum laziness octaveness all-naturals)
+(define (check-pitch-against-signature context pitch barnum laziness octaveness)
   "Checks the need for an accidental and a @q{restore} accidental against
 @code{localKeySignature}.  The @var{laziness} is the number of measures
 for which reminder accidentals are used (i.e., if @var{laziness} is zero,
 only cancel accidentals in the same measure; if @var{laziness} is three,
 we cancel accidentals up to three measures after they first appear.
 @var{octaveness} is either @code{'same-octave} or @code{'any-octave} and
-specifies whether accidentals should be canceled in different octaves.
-If @var{all-naturals} is ##t, notes that do not occur in @code{keySignature}
-also get an accidental."
+specifies whether accidentals should be canceled in different octaves."
   (let* ((ignore-octave (cond ((equal? octaveness 'any-octave) #t)
 			      ((equal? octaveness 'same-octave) #f)
 			      (else
@@ -1390,7 +1388,7 @@
 	(let* ((prev-alt (extract-alteration previous-alteration))
 	       (this-alt (ly:pitch-alteration pitch)))
 
-	  (if (or (and all-naturals (eq? #f previous-alteration)) (not (= this-alt prev-alt)))
+	  (if (not (= this-alt prev-alt))
 	      (begin
 		(set! need-accidental #t)
 		(if (and (not (= this-alt 0))
@@ -1417,13 +1415,7 @@
 accidental lasts over that many bar lines.  @w{@code{-1}} is `forget
 immediately', that is, only look at key signature.  @code{#t} is `forever'."
 
-  (check-pitch-against-signature context pitch barnum laziness octaveness #f))
-
-(define-public ((make-accidental-dodecaphonic-rule octaveness laziness) context pitch barnum measurepos)
-  "Variation on function make-accidental-rule that creates an dodecaphonic
-accidental rule."
-
-  (check-pitch-against-signature context pitch barnum laziness octaveness #t))
+  (check-pitch-against-signature context pitch barnum laziness octaveness))
 
 (define (key-entry-notename entry)
   "Return the pitch of an @var{entry} in @code{localKeySignature}.
@@ -1613,13 +1605,6 @@
 				   `(Staff ,(lambda (c p bn mp) '(#f . #t)))
 				   '()
 				   context))
-      ;; Variety of the dodecaphonic style. Each note gets an accidental,
-      ;; except notes that were already handled in the same measure.
-      ((equal? style 'dodecaphonic-first)
-       (set-accidentals-properties #f
-				   `(Staff ,(make-accidental-dodecaphonic-rule 'same-octave 0))
-				   '()
-				   context))
       ;; Multivoice accidentals to be read both by musicians playing one voice
       ;; and musicians playing all voices.
       ;; Accidentals are typeset for each voice, but they ARE canceled across voices.
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to