[Top][All Lists]

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

Re: Detecting double accidentals

From: SK
Subject: Re: Detecting double accidentals
Date: Wed, 22 Jan 2020 17:33:38 +0100

Thank you David, that works perfectly. I would have probably never found this way, even if I understand what it does.

Sorry for the late response, didn't expect an answer that fast.

If anyone is interested in this project, the full code as well as a quick-and-dirty documentation is available as a gist on GitHub:

Thank you, kind regards!

Am Di., 21. Jan. 2020 um 21:50 Uhr schrieb David Kastrup <address@hidden>:
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]