5 This shows how modern cross voice auto cautionary accidentals are handled.
6 The first two fisses get accidentals because they belong to different voices.
7 The first f gets cautionary natural because of previous measure.
8 The last f gets cautionary natural because fis was only in the other voice.
12 #(define (lo-octave p)
13 (let* ((a (ly:pitch-alteration p))
14 (n (ly:pitch-notename p)))
15 (ly:make-pitch -1 n a)))
17 #(define (no-octaves music)
18 (let* ((es (ly:get-mus-property music 'elements))
19 (e (ly:get-mus-property music 'element))
20 (p (ly:get-mus-property music 'pitch)))
34 (set! p (lo-octave p))
35 (ly:set-mus-property! music 'pitch p)))
40 voicea = \notes \transpose c c' {
44 voiceb = \notes \transpose c c' {
52 \new NoteNames \apply #no-octaves \voicea
54 \modernVoiceCautionaries
58 \new NoteNames \apply #no-octaves \voiceb