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 (pitch-alteration p))
14 (n (pitch-notename p)))
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'' {
44 voiceb = \notes \transpose c'' {
52 \context NoteNames=namesa \apply #no-octaves \voicea
54 \modernVoiceCautionaries
55 \context Voice = voicea \voicea
56 \context Voice = voiceb \voiceb
58 \context NoteNames=namesb \apply #no-octaves \voiceb