[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Detecting double accidentals

From: David Kastrup
Subject: Re: Detecting double accidentals
Date: Tue, 21 Jan 2020 21:50:20 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]