\version "2.19.15" %% Functions for Setup of Pedals (and levers) #(define (logme message value) (display message) (display " : ") (display value) (newline)) %% global variables #(define copedent '()) #(define pedalList '()) #(define tmp #f) \version "2.19.15" #(define (logme message value) (display message) (display " : ") (display value) (newline)) #(define tmp '()) #(define tmpPitch #f) #(define transFrom #f) #(define transTo #f) %% main pedal action function pedalAction = #(define-music-function (parser location pedal mus)(string? ly:music?) (music-map (lambda (m) (let ((strgnr '())) (if (music-is-of-type? m 'note-event) (begin (for-each (lambda (e) (if (music-is-of-type? e 'string-number-event) (begin ;(display (ly:music-property e 'string-number)) (set! strgnr (ly:music-property e 'string-number)) e) e)) (ly:music-property m 'articulations)) ; else (begin ;(logme "pedal" pedal) ;(logme "copedent" copedent) (set! tmp (assoc-get pedal copedent)) ;(logme "tmp" tmp) (set! p (assoc-get strgnr tmp)) ;(logme "p" p) (if( pair? p ) (begin (set! transFrom (cdr p)) (set! transTo (car p)) (if (music-is-of-type? mus 'note-event) (ly:music-set-property! mus 'articulations (cons #{ \rightHandFinger \markup\normal-text\bold\fontsize #0 $pedal #} (ly:music-property m 'articulations) ) ) ; else (ly:warning "mus is not a note-event, ignoring") ) #{ \tag myStaff $mus \tag myTab \transpose $transFrom $transTo $m #} ) m) )) m))) mus)) %% setup functions SetupPedalStart = #(define-void-function (parser location ) () (set! pedalList '()) ) AddPedal = #(define-void-function (parser location stringno from to) ( integer? ly:pitch? ly:pitch?) (set! tmp (cons #{ #from #} #{ #to #})) (set! pedalList (acons stringno tmp pedalList)) null ) SetupPedalEnd = #(define-void-function(parser location pedalName) (string?) (set! copedent (acons pedalName pedalList copedent)) null )