CVSROOT: /cvsroot/lilypond Module name: lilypond Branch: Changes by: Nicolas Sceaux <[EMAIL PROTECTED]> 05/08/16 18:30:32
Modified files: scm : define-music-display-methods.scm ly : music-functions-init.ly input/no-notation: display-lily-tests.ly . : ChangeLog Log message: * input/no-notation/display-lily-tests.ly: remove display-lily-init call. * ly/music-functions-init.ly (displayLilyMusic): move display-lily-init call at top level, so that the user should not have to call it. * scm/define-music-display-methods.scm (note-name->lily-string): retrieve note names directly from pitchnames using new function `rassoc'. (display-lily-init): note names list construction removed. CVSWeb URLs: http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-music-display-methods.scm.diff?tr1=1.3&tr2=1.4&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ly/music-functions-init.ly.diff?tr1=1.35&tr2=1.36&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/input/no-notation/display-lily-tests.ly.diff?tr1=1.1&tr2=1.2&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?tr1=1.4018&tr2=1.4019&r1=text&r2=text Patches: Index: lilypond/ChangeLog diff -u lilypond/ChangeLog:1.4018 lilypond/ChangeLog:1.4019 --- lilypond/ChangeLog:1.4018 Tue Aug 16 15:47:40 2005 +++ lilypond/ChangeLog Tue Aug 16 18:30:32 2005 @@ -1,3 +1,16 @@ +2005-08-16 Nicolas Sceaux <[EMAIL PROTECTED]> + + * input/no-notation/display-lily-tests.ly: delete + display-lily-init call. + + * ly/music-functions-init.ly (displayLilyMusic): move + display-lily-init call at top level, so that the user should not + have to call it. + + * scm/define-music-display-methods.scm (note-name->lily-string): + retrieve note names directly from pitchnames using new function `rassoc'. + (display-lily-init): note names list construction removed. + 2005-08-16 Han-Wen Nienhuys <[EMAIL PROTECTED]> * Documentation/topdocs/NEWS.tely (Top): add entry for percent Index: lilypond/input/no-notation/display-lily-tests.ly diff -u lilypond/input/no-notation/display-lily-tests.ly:1.1 lilypond/input/no-notation/display-lily-tests.ly:1.2 --- lilypond/input/no-notation/display-lily-tests.ly:1.1 Tue Aug 16 13:00:23 2005 +++ lilypond/input/no-notation/display-lily-tests.ly Tue Aug 16 18:30:32 2005 @@ -1,4 +1,4 @@ -\version "2.7.2" +\version "2.7.6" #(use-modules (srfi srfi-13) (ice-9 format)) @@ -34,13 +34,6 @@ #(define (lily-string->markup str) (make-column-markup (string-split str #\NewLine))) -initTest = #(def-music-function (parser location) () - ;; Before using display-lily-music, it must be - ;; inited using display-lily-init - (display-lily-init parser) - (set! test-number 0) - (make-music 'SequentialMusic)) - test = #(def-music-function (parser location result-info strings) (string? pair?) (display-lily-init parser) (let ((input (car strings)) @@ -92,7 +85,6 @@ } } { - \initTest %% Sequential music \test #"" ##[ { { a b } { c d } } #] % SequentialMusic \test #"" ##[ << { a b } { c d } >> #] % SimultaneousMusic Index: lilypond/ly/music-functions-init.ly diff -u lilypond/ly/music-functions-init.ly:1.35 lilypond/ly/music-functions-init.ly:1.36 --- lilypond/ly/music-functions-init.ly:1.35 Mon Aug 15 15:37:21 2005 +++ lilypond/ly/music-functions-init.ly Tue Aug 16 18:30:31 2005 @@ -52,9 +52,9 @@ %#(use-modules (scm display-lily))invalid module name for use-syntax ((srfi srfi-39)) #(use-modules (scm display-lily)) +#(display-lily-init parser) displayLilyMusic = #(def-music-function (parser location music) (ly:music?) - (display-lily-init parser) (display-lily-music music) music) Index: lilypond/scm/define-music-display-methods.scm diff -u lilypond/scm/define-music-display-methods.scm:1.3 lilypond/scm/define-music-display-methods.scm:1.4 --- lilypond/scm/define-music-display-methods.scm:1.3 Mon Aug 15 18:28:41 2005 +++ lilypond/scm/define-music-display-methods.scm Tue Aug 16 18:30:31 2005 @@ -11,12 +11,10 @@ (define-module (scm display-lily)) - ;;; `display-lily-init' must be called before using `display-lily-music'. It ;;; takes a parser object as an argument. (define-public (display-lily-init parser) (*parser* parser) - (set-note-names! (ly:parser-lookup (*parser*) 'pitchnames)) #t) ;;; @@ -80,12 +78,14 @@ ;;; ;;; pitch names ;;; -(define note-names '()) -(define (set-note-names! pitchnames) - (set! note-names (map-in-order (lambda (name+lypitch) - (cons (cdr name+lypitch) (car name+lypitch))) - pitchnames))) +;; It is a pity that there is no rassoc in Scheme. +(define* (rassoc item alist #:optional (test equal?)) + (do ((alist alist (cdr alist)) + (result #f result)) + ((or result (null? alist)) result) + (if (and (car alist) (test item (cdar alist))) + (set! result (car alist))))) (define (note-name->lily-string ly-pitch) ;; here we define a custom pitch= function, since we do not want to @@ -93,9 +93,9 @@ (define (pitch= pitch1 pitch2) (and (= (ly:pitch-notename pitch1) (ly:pitch-notename pitch2)) (= (ly:pitch-alteration pitch1) (ly:pitch-alteration pitch2)))) - (let ((result (assoc ly-pitch note-names pitch=))) ;; assoc from srfi-1 + (let ((result (rassoc ly-pitch (ly:parser-lookup (*parser*) 'pitchnames) pitch=))) (if result - (cdr result) + (car result) #f))) (define (octave->lily-string pitch) _______________________________________________ Lilypond-cvs mailing list Lilypond-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-cvs