|
From: | SK |
Subject: | Re: Detecting double accidentals |
Date: | Wed, 22 Jan 2020 17:33:38 +0100 |
SK <address@hidden> 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
[Prev in Thread] | Current Thread | [Next in Thread] |