X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fmodal-transforms.scm;h=9617329d77843a4e13777046cc86908be1edd44a;hb=c872f352735c731958da165c83ea8598c5d58772;hp=2d604fc948d1e56d8358bd997663c213f8be5441;hpb=cf6201863b691be9b361049f76b80024e34b029b;p=lilypond.git diff --git a/scm/modal-transforms.scm b/scm/modal-transforms.scm index 2d604fc948..9617329d77 100644 --- a/scm/modal-transforms.scm +++ b/scm/modal-transforms.scm @@ -1,6 +1,6 @@ ;;; modal-transforms.scm --- Modal transposition, inversion, and retrograde. -;; Copyright (C) 2011 Ellis & Grant, Inc. +;; Copyright (C) 2011--2012 Ellis & Grant, Inc. ;; Author: Michael Ellis @@ -126,7 +126,7 @@ LilyPond scheme pitches, e.g. @code{(ly:make-pitch 0 2 0)} (change-pitches element converter))))) -(define (extract-pitch-sequence music) +(define (make-scale music) "Recurse through @var{music}, extracting pitches. Returns a list of pitch objects, e.g @code{'((ly:make-pitch 0 2 0) (ly:make-pitch 0 4 0) ... )} @@ -140,20 +140,15 @@ Typically used to construct a scale for input to transposer-factory (cond ((ly:pitch? pitch) - pitch) + (list pitch)) ((pair? elements) - (map - (lambda (x) (extract-pitch-sequence x)) + (append-map + (lambda (x) (make-scale x)) elements)) ((ly:music? element) - (extract-pitch-sequence element))))) - -(define (make-scale music) - "Convenience wrapper for extract-pitch-sequence." - (map car (extract-pitch-sequence music))) - + (make-scale element))))) (define (make-extended-scale music) "Extend scale given by @var{music} by 5 octaves up and down."