From: David Kastrup Date: Wed, 9 May 2012 15:46:05 +0000 (+0200) Subject: Issue 2525: Fix a number of display-lily shortcomings X-Git-Tag: release/2.15.39-1~32 X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=commitdiff_plain;h=c597a126f11943be74a98efee056ab54ae729315;p=lilypond.git Issue 2525: Fix a number of display-lily shortcomings Several postevents including non-shorthand articulations were printed with redundant direction flag - , command events on single note events were missing the required direction flag - , and a few other problems. --- diff --git a/input/regression/display-lily-tests.ly b/input/regression/display-lily-tests.ly index fdec20519e..6e7a3ab24c 100644 --- a/input/regression/display-lily-tests.ly +++ b/input/regression/display-lily-tests.ly @@ -115,13 +115,13 @@ stderr of this run." \test ##[ { c-> c^> c_> } #] \test ##[ { c-. c^. c_. } #] \test ##[ { c-_ c^_ c__ } #] -\test ##[ { c-\trill c^\trill c_\trill } #] +\test ##[ { c\trill c^\trill c_\trill } #] \test ##[ { c-1 c^2 c_3 } #] % FingerEvent \test ##[ { c-"foo" c^"foo" c_"foo" } #] % TextScriptEvent \test ##[ { R1*4-"foo" R^"foo" R_"foo" } #] % MultiMeasureTextEvent \test ##[ { < c\harmonic >4 < c e\harmonic > } #] % HarmonicEvent -\test ##[ { c-\glissando c^\glissando c_\glissando } #] % GlissandoEvent -\test ##[ { c-\arpeggio c^\arpeggio c_\arpeggio } #] % ArpeggioEvent +\test ##[ { c\glissando c^\glissando c_\glissando } #] % GlissandoEvent +\test ##[ { c\arpeggio c^\arpeggio c_\arpeggio } #] % ArpeggioEvent \test ##[ { c\p c^\ff c_\sfz } #] % AbsoluteDynamicEvent \test ##[ { c[ c] c^[ c^] c_[ c_] } #] % BeamEvent \test ##[ { c( c) c^( c^) c_( c_) } #] % SlurEvent @@ -141,8 +141,8 @@ stderr of this run." \test ##[ \breathe #] \test ##[ { c \[ c \] } #] % LigatureEvent \test ##[ \~ #] % PesOrFlexaEvent -\test ##[ { c-\bendAfter #3 } #] % BendAfterEvent -\test ##[ < c-\rightHandFinger #1 > #] % StrokeFingerEvent +\test ##[ c\bendAfter #3 #] % BendAfterEvent +\test ##[ c\rightHandFinger #1 #] % StrokeFingerEvent \test ##[ \break #] \test ##[ \noBreak #] diff --git a/scm/define-music-display-methods.scm b/scm/define-music-display-methods.scm index 782552dfeb..6d0449edfc 100644 --- a/scm/define-music-display-methods.scm +++ b/scm/define-music-display-methods.scm @@ -181,17 +181,22 @@ expression." "" tremolo-type)))) -(define-post-event-display-method ArticulationEvent (event parser) #t - (let ((articulation (ly:music-property event 'articulation-type))) - (case (string->symbol articulation) - ((marcato) "^") - ((stopped) "+") - ((tenuto) "-") - ((staccatissimo) "|") - ((accent) ">") - ((staccato) ".") - ((portato) "_") - (else (format #f "\\~a" articulation))))) +(define-display-method ArticulationEvent (event parser) #t + (let* ((articulation (ly:music-property event 'articulation-type)) + (shorthand + (case (string->symbol articulation) + ((marcato) "^") + ((stopped) "+") + ((tenuto) "-") + ((staccatissimo) "|") + ((accent) ">") + ((staccato) ".") + ((portato) "_") + (else #f)))) + (format #f "~a~:[\\~;~]~a" + (event-direction->lily-string event shorthand) + shorthand + (or shorthand articulation)))) (define-post-event-display-method FingeringEvent (event parser) #t (ly:music-property event 'digit)) @@ -202,16 +207,16 @@ expression." (define-post-event-display-method MultiMeasureTextEvent (event parser) #t (markup->lily-string (ly:music-property event 'text))) -(define-post-event-display-method BendAfterEvent (event parser) #t +(define-post-event-display-method BendAfterEvent (event parser) #f (format #f "\\bendAfter #~a" (ly:music-property event 'delta-step))) (define-post-event-display-method HarmonicEvent (event parser) #f "\\harmonic") -(define-post-event-display-method GlissandoEvent (event parser) #t "\\glissando") -(define-post-event-display-method ArpeggioEvent (event parser) #t "\\arpeggio") +(define-post-event-display-method GlissandoEvent (event parser) #f "\\glissando") +(define-post-event-display-method ArpeggioEvent (event parser) #f "\\arpeggio") (define-post-event-display-method AbsoluteDynamicEvent (event parser) #f (format #f "\\~a" (ly:music-property event 'text))) -(define-post-event-display-method StrokeFingerEvent (event parser) #t +(define-post-event-display-method StrokeFingerEvent (event parser) #f (format #f "\\rightHandFinger #~a" (ly:music-property event 'digit))) (define-span-event-display-method BeamEvent (event parser) #f "[" "]") @@ -494,7 +499,7 @@ Otherwise, return #f." ;;; (define (simple-note->lily-string event parser) - (format #f "~a~a~a~a~a~a~{~a~}" ; pitchname octave !? octave-check duration optional_rest articulations + (format #f "~a~a~a~a~a~a~:{~:[-~;~]~a~}" ; pitchname octave !? octave-check duration optional_rest articulations (note-name->lily-string (ly:music-property event 'pitch) parser) (octave->lily-string (ly:music-property event 'pitch)) (let ((forced (ly:music-property event 'force-accidental)) @@ -519,7 +524,9 @@ Otherwise, return #f." (if ((make-music-type-predicate 'RestEvent) event) "\\rest" "") (map-in-order (lambda (event) - (music->lily-string event parser)) + (list + (post-event? event) + (music->lily-string event parser))) (ly:music-property event 'articulations)))) (define-display-method NoteEvent (note parser)