From: Han-Wen Nienhuys Date: Mon, 16 Oct 2006 21:59:35 +0000 (+0000) Subject: * scm/output-lib.scm (stroke-finger::calc-text): allow reading of X-Git-Tag: release/2.10.0-2~156 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=77937d2cc4905b92803e18fb69ee315f5f8c562b;p=lilypond.git * scm/output-lib.scm (stroke-finger::calc-text): allow reading of 'text property too. * ly/music-functions-init.ly: rename to StrokeFingerEvent, set 'text if string argument. * scm/define-grobs.scm (all-grob-descriptions): rename to StrokeFinger. * scm/define-context-properties.scm (all-user-translation-properties): change to strokeFingerOrientations --- diff --git a/ChangeLog b/ChangeLog index b34c289c81..e8d001f3d9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2006-10-16 Han-Wen Nienhuys + + * scm/output-lib.scm (stroke-finger::calc-text): allow reading of + 'text property too. + + * ly/music-functions-init.ly: rename to StrokeFingerEvent, set + 'text if string argument. + + * scm/define-grobs.scm (all-grob-descriptions): rename to StrokeFinger. + + * scm/define-context-properties.scm + (all-user-translation-properties): change to strokeFingerOrientations + 2006-10-16 Erik Sandberg * lily/parser.yy: remove debug output diff --git a/input/regression/script-stack-horizontal.ly b/input/regression/script-stack-horizontal.ly index d313f5fda4..e9cba0687a 100644 --- a/input/regression/script-stack-horizontal.ly +++ b/input/regression/script-stack-horizontal.ly @@ -14,7 +14,7 @@ The order may be set with script-priority." { \set stringFingerOrientations = #'(left) \set fingeringOrientations = #'(left) - \set stringNumberOrientations = #'(left) + \set strokeNumberOrientations = #'(left) fingerings_; - vector string_fingerings_; + vector stroke_fingerings_; vector articulations_; vector string_numbers_; @@ -99,9 +99,9 @@ New_fingering_engraver::acknowledge_rhythmic_head (Grob_info inf) add_fingering (inf.grob (), ly_symbol2scm ("StringNumber"), &string_numbers_, ev, note_ev); - else if (ev->in_event_class ("string-finger-event")) + else if (ev->in_event_class ("stroke-finger-event")) add_fingering (inf.grob (), - ly_symbol2scm ("StringFinger"), &string_fingerings_, + ly_symbol2scm ("StrokeFinger"), &stroke_fingerings_, ev, note_ev); else if (ev->in_event_class ("harmonic-event")) { @@ -306,11 +306,11 @@ New_fingering_engraver::position_all () string_numbers_.clear (); } - if (string_fingerings_.size ()) + if (stroke_fingerings_.size ()) { - position_scripts (get_property ("stringFingerOrientations"), - &string_fingerings_); - string_fingerings_.clear (); + position_scripts (get_property ("strokeFingerOrientations"), + &stroke_fingerings_); + stroke_fingerings_.clear (); } for (vsize i = articulations_.size (); i--;) @@ -345,7 +345,7 @@ ADD_TRANSLATOR (New_fingering_engraver, /* create */ "Fingering " "StringNumber " - "StringFinger " + "StrokeFinger " "Script " , /* read */ diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly index 320a0ffeff..4686f7b723 100644 --- a/ly/music-functions-init.ly +++ b/ly/music-functions-init.ly @@ -539,11 +539,17 @@ includePageLayoutFile = rightHandFinger = -#(define-music-function (parser location finger) (number?) - "Define a StringFingerEvent" - (make-music 'StringFingerEvent - 'origin location - 'digit finger)) +#(define-music-function (parser location finger) (number-or-string?) + "Define a StrokeFingerEvent" + + (apply make-music + (append + (list + 'StrokeFingerEvent + 'origin location) + (if (string? finger) + (list 'text finger) + (list 'digit finger))))) scoreTweak = #(define-music-function (parser location name) (string?) diff --git a/scm/define-context-properties.scm b/scm/define-context-properties.scm index 095f71fb89..b0c85c24ae 100644 --- a/scm/define-context-properties.scm +++ b/scm/define-context-properties.scm @@ -377,7 +377,7 @@ up the interpretation phase. This speeds up debugging large scores.") squashing for @internalsref{Pitch_squash_engraver}.") (stringNumberOrientations ,list? "See @code{fingeringOrientations}") - (stringFingerOrientations ,list? "See @code{fingeringOrientations}") + (strokeFingerOrientations ,list? "See @code{fingeringOrientations}") (stringOneTopmost ,boolean? "Whether the 1st string is printed on the top line of the tablature.") diff --git a/scm/define-event-classes.scm b/scm/define-event-classes.scm index 7a9bb402a1..951c0e7641 100644 --- a/scm/define-event-classes.scm +++ b/scm/define-event-classes.scm @@ -16,7 +16,7 @@ OneTimeStep Finish)) (music-event . (arpeggio-event breathing-event extender-event span-event rhythmic-event dynamic-event break-event percent-event - key-change-event string-number-event string-finger-event tie-event part-combine-event + key-change-event string-number-event stroke-finger-event tie-event part-combine-event beam-forbid-event script-event tremolo-event bend-after-event fingering-event glissando-event harmonic-event hyphen-event laissez-vibrer-event mark-event diff --git a/scm/define-grob-interfaces.scm b/scm/define-grob-interfaces.scm index cca3a16c7d..59b0631ad3 100644 --- a/scm/define-grob-interfaces.scm +++ b/scm/define-grob-interfaces.scm @@ -145,8 +145,8 @@ are interesting enough to maintain a hara-kiri staff." '()) (ly:add-interface - 'string-finger-interface - "A string finger instruction" + 'strokefinger-interface + "A right hand finger instruction" '(digit-names)) (ly:add-interface diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index a6a51409a8..69b68fec68 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -1548,10 +1548,10 @@ self-alignment-interface item-interface)))))) - (StringFinger + (StrokeFinger . ( (stencil . ,ly:text-interface::print) - (text . ,string-finger::calc-text) + (text . ,stroke-finger::calc-text) (digit-names . #("P" "I" "m" "a" "x")) (padding . 0.5) (staff-padding . 0.5) @@ -1561,7 +1561,7 @@ (font-shape . italic) (font-size . -4) ; don't overlap when next to heads. (meta . ((class . Item) - (interfaces . (string-finger-interface + (interfaces . (stroke-finger-interface font-interface text-script-interface text-interface diff --git a/scm/define-music-types.scm b/scm/define-music-types.scm index 61f53d40a7..fde38a1804 100644 --- a/scm/define-music-types.scm +++ b/scm/define-music-types.scm @@ -623,13 +623,13 @@ Syntax: @code{\\@var{number}}.") (types . (general-music string-number-event event)) )) - (StringFingerEvent + (StrokeFingerEvent . ( (description . "Specify with which finger to pluck a string. Syntax: @code{\\rightHandFinger @var{text}}.") - (types . (general-music string-finger-event event)) + (types . (general-music stroke-finger-event event)) )) (TextScriptEvent diff --git a/scm/lily-library.scm b/scm/lily-library.scm index 3ffc598c49..7bdf96d05d 100644 --- a/scm/lily-library.scm +++ b/scm/lily-library.scm @@ -500,7 +500,6 @@ possibly turned off." (define-public (car< a b) (< (car a) (car b))) - (define-public (symbolstring lst) (symbol->string r))) diff --git a/scm/output-lib.scm b/scm/output-lib.scm index c67c89df90..1748401fd4 100644 --- a/scm/output-lib.scm +++ b/scm/output-lib.scm @@ -422,12 +422,15 @@ centered, X==1 is at the right, X == -1 is at the left." (number->string digit 10) )) -(define-public (string-finger::calc-text grob) + +(define-public (stroke-finger::calc-text grob) (let* - ((digit (ly:event-property (event-cause grob) 'digit)) - (texts (ly:grob-property grob 'digit-names))) - (vector-ref texts (1- (max (min 5 digit) 1))) - )) + ((digit (ly:event-property (event-cause grob) 'digit)) + (text (ly:event-property (event-cause grob) 'text))) + + (if (string? text) + text + (vector-ref (ly:grob-property grob 'digit-names) (1- (max (min 5 digit) 1)))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; dynamics diff --git a/scm/part-combiner.scm b/scm/part-combiner.scm index 2fd78599ee..a444313f66 100644 --- a/scm/part-combiner.scm +++ b/scm/part-combiner.scm @@ -235,10 +235,11 @@ Voice-state objects (define-public (make-part-combine-music music-list) (let* ((m (make-music 'PartCombineMusic)) - (m1 (make-non-relative-music (context-spec-music (first music-list) 'Voice "one"))) - (m2 (make-non-relative-music (context-spec-music (second music-list) 'Voice "two"))) - (evs2 (recording-group-emulate m2 part-combine-listener)) - (evs1 (recording-group-emulate m1 part-combine-listener))) + (m1 (make-non-relative-music (context-spec-music (first music-list) 'Voice "one"))) + (m2 (make-non-relative-music (context-spec-music (second music-list) 'Voice "two"))) + (evs2 (recording-group-emulate m2 part-combine-listener)) + (evs1 (recording-group-emulate m1 part-combine-listener))) + (set! (ly:music-property m 'elements) (list m1 m2)) (set! (ly:music-property m 'split-list) (determine-split-list (reverse! (cdr (assoc "one" evs1)) '())