SK <s.skr.k...@googlemail.com> writes: > Hello, > > I wrote a script for generating music theory worksheets for school. One > feature is the generation of chords that should be named by the students. > The way this function works is by simply transposing some predefined chords > to a new randomly generated root. To keep the difficulty controllable, I > would like to filter out double accidentals in some cases, e.g. to not > produce an augmented F# chord. > Does anybody know about a way to check in scheme if music has double > accidentals, or can think of another smart way of doing this? > > I would not want to define all possible chords manually, and I think that > filtering out certain root notes is quite complex, too, if you just want to > avoid double accidentals. > > Kind regards!
#(define (has-doubles mus) (any (lambda (p) (not (< -1 (ly:pitch-alteration p) 1))) (music-pitches mus))) #(display (map has-doubles (list #{ c'4 d' e' fis' g' a' b' #} #{ cisis'4 d' e' #}))) -- David Kastrup