Hey everyone!
I'm hoping one of the Scheme gods on the list can tell me what I'm doing wrong here. I'm trying to create a markup function that will draw harp pedal diagrams. To do that, I need a function that takes 7 parameters. My function works fine as long as there are only 3 parameters - as soon as I add the fourth, everything blows up, with the following error: programming error: no parser tag defined for this markup signature continuing, cross fingers (#<procedure baseHarpPedal-markup (layout props dpedal cpedal bpedal epedal)> . scheme0-scheme1-scheme2-scheme3) Here's what I've got: \version "2.11.34" #(define (pedalFlat location) (string-append location " -0.75 moveto " location " -1.75 lineto ")) #(define (pedalNatural location) (string-append location " -1.75 moveto " location " -3.25 lineto ")) #(define (pedalSharp location) (string-append location " -3.25 moveto " location " -4.25 lineto ")) % This block works #(define-markup-command (baseHarpPedal layout props dpedal cpedal bpedal) (integer? integer? integer?) (interpret-markup layout props (markup (#:postscript (string-append "2 setlinecap 0 0 moveto 0 -5 lineto -5.25 -2.50 moveto 6.75 -2.5 lineto stroke 2 setlinecap 0.5 setlinewidth " (cond ((= dpedal 1) (pedalFlat "-4.5")) ((= dpedal -1) (pedalSharp "-4.5")) (else (pedalNatural "-4.5")) ) (cond ((= cpedal 1) (pedalFlat "-3")) ((= cpedal -1) (pedalSharp "-3")) (else (pedalNatural "-3")) ) (cond ((= bpedal 1) (pedalFlat "-1.5")) ((= bpedal -1) (pedalSharp "-1.5")) (else (pedalNatural "-1.5")) ) "stroke" ))))) % This block doesn't %{ #(define-markup-command (baseHarpPedal layout props dpedal cpedal bpedal epedal) (integer? integer? integer? integer?) (interpret-markup layout props (markup (#:postscript (string-append "2 setlinecap 0 0 moveto 0 -5 lineto -5.25 -2.50 moveto 6.75 -2.5 lineto stroke 2 setlinecap 0.5 setlinewidth " (cond ((= dpedal 1) (pedalFlat "-4.5")) ((= dpedal -1) (pedalSharp "-4.5")) (else (pedalNatural "-4.5")) ) (cond ((= cpedal 1) (pedalFlat "-3")) ((= cpedal -1) (pedalSharp "-3")) (else (pedalNatural "-3")) ) (cond ((= bpedal 1) (pedalFlat "-1.5")) ((= bpedal -1) (pedalSharp "-1.5")) (else (pedalNatural "-1.5")) ) (cond ((= epedal 1) (pedalFlat "1.5")) ((= epedal -1) (pedalSharp "1.5")) (else (pedalNatural "1.5")) ) "stroke" ))))) %} \score { % This line works c''1 _\markup { \baseHarpPedal #0 #1 #-1 } % This line doesn't % c''1 _\markup { \baseHarpPedal #0 #1 #-1 #0 } } Thanks! --Steven
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user