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