I have a piece that is in the following scale: c d e fis g aes bes b
Is it possible to force the accidentals just for the bes and the b? But here is the catch... I am both transposing the part and respelling pitch-classes as show below. The scale above is actually the resulting printed set of notes. The music is already generated and I would not want to have to do this manually for each occurance. Thanks in advance, Michael -------------------- transposePitchClasses = #(define-music-function (scaleA scaleB music) (ly:music? ly:music? ly:music?) (let* ((scaleA (ly:music-property scaleA 'elements)) (scaleB (ly:music-property scaleB 'elements)) (scaleA (map (lambda (x) (ly:music-property x 'pitch)) scaleA)) (scaleB (map (lambda (x) (ly:music-property x 'pitch)) scaleB)) (classesA (map (lambda (p) (cons (ly:pitch-notename p) (ly:pitch-alteration p))) scaleA))) (map-some-music (lambda (m) (let ((p (ly:music-property m 'pitch))) (if (not (null? p)) (let* ((nn (ly:pitch-notename p)) (oct (ly:pitch-octave p)) (alt (ly:pitch-alteration p)) (pos (list-index (lambda (x) (and (= (car x) nn) (= (cdr x) alt))) classesA))) (if pos (let* ((p2 (list-ref scaleA pos)) (oct2 (ly:pitch-octave p2)) (p3 (list-ref scaleB pos)) (new-pitch (ly:pitch-transpose p3 (ly:make-pitch (- oct oct2) 0)))) (ly:music-set-property! m 'pitch new-pitch))) m) #f))) music) music)) \new Staff \with { instrumentName = #"synth I (2)" shortInstrumentName = #"synI" \remove "Time_signature_engraver" } << \transpose a c' \transposePitchClasses {a b cis dih e fih geh gis} {a b cis dis e f g gis} \include "includes/ammann_part_6.ly" %this is the music >>