]> git.donarmstrong.com Git - lilypond.git/commitdiff
* scm/output-lib.scm (stroke-finger::calc-text): allow reading of
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 16 Oct 2006 21:59:35 +0000 (21:59 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 16 Oct 2006 21:59:35 +0000 (21:59 +0000)
'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

13 files changed:
ChangeLog
input/regression/script-stack-horizontal.ly
lily/fingering-engraver.cc
lily/new-fingering-engraver.cc
ly/music-functions-init.ly
scm/define-context-properties.scm
scm/define-event-classes.scm
scm/define-grob-interfaces.scm
scm/define-grobs.scm
scm/define-music-types.scm
scm/lily-library.scm
scm/output-lib.scm
scm/part-combiner.scm

index b34c289c8113bfdc3975e2fef0741457cf97f380..e8d001f3d9d55121515a5de2561ffbfca37ffe6f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2006-10-16  Han-Wen Nienhuys  <hanwen@lilypond.org>
+
+       * 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  <mandolaerik@gmail.com>
 
        * lily/parser.yy: remove debug output
index d313f5fda4bb55db328fc557dbb3c446b969a0f8..e9cba0687a0728d68d345f9e1226b575fbbfb4e6 100644 (file)
@@ -14,7 +14,7 @@ The order may be set with script-priority."
 {
   \set stringFingerOrientations = #'(left) 
   \set fingeringOrientations = #'(left) 
-  \set stringNumberOrientations = #'(left) 
+  \set strokeNumberOrientations = #'(left) 
   <cis-1\4
    -\rightHandFinger #1
    es-2\5
index 020c1f6a1cef60f012e4645d88f580521fb7299f..47c0a9b4272fae2ca51c87ce6bc347a9378ab42a 100644 (file)
@@ -27,7 +27,7 @@ protected:
   void stop_translation_timestep ();
   void process_music ();
   DECLARE_TRANSLATOR_LISTENER (fingering);
-  DECLARE_TRANSLATOR_LISTENER (string_finger);
+  DECLARE_TRANSLATOR_LISTENER (stroke_finger);
   DECLARE_ACKNOWLEDGER (rhythmic_head);
   DECLARE_ACKNOWLEDGER (stem);
 
@@ -42,9 +42,9 @@ Fingering_engraver::listen_fingering (Stream_event *ev)
   events_.push_back (ev);
 }
 
-IMPLEMENT_TRANSLATOR_LISTENER (Fingering_engraver, string_finger);
+IMPLEMENT_TRANSLATOR_LISTENER (Fingering_engraver, stroke_finger);
 void
-Fingering_engraver::listen_string_finger (Stream_event *ev)
+Fingering_engraver::listen_stroke_finger (Stream_event *ev)
 {
   /*
     FIXME: should do something.
index f965e63e53d4b86eb307c2112ba162b3e9a9b90c..5c1a7819ff88e896fa179c11c82041e5b403146f 100644 (file)
@@ -48,7 +48,7 @@ operator< (Finger_tuple const &a, Finger_tuple const &b)
 class New_fingering_engraver : public Engraver
 {
   vector<Finger_tuple> fingerings_;
-  vector<Finger_tuple> string_fingerings_;
+  vector<Finger_tuple> stroke_fingerings_;
   vector<Finger_tuple> articulations_;
   vector<Finger_tuple> 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 */
index 320a0ffefff508f98fe66d6834c3d92fda11680b..4686f7b723831d048d64a36fdfc1d02e3f1adc5e 100644 (file)
@@ -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?)
index 095f71fb89542a3e4e5935261afa41a8a76cd502..b0c85c24aec9da6e24657b636e7f99ccd6ee3d62 100644 (file)
@@ -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.")
 
index 7a9bb402a1685b1ae2c24a10590d8696d0706bd4..951c0e7641777ac36846ad6642bfc7b7dbc8ed03 100644 (file)
@@ -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
index cca3a16c7dd3de505fc588aff2e4606e2f82966b..59b0631ad340f2e8cab4146e3dc1a999e9f2eef7 100644 (file)
@@ -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
index a6a51409a88b63cb50745f9cafa5d907f095d623..69b68fec68de2135af013ed791044efad5fc09fd 100644 (file)
                                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)
        (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
index 61f53d40a7a92555c9fdb932fcacf2b8e6ce9ecb..fde38a1804d9867bbb460a4d0e82f441bc90de09 100644 (file)
@@ -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
index 3ffc598c4965d7fbb2ec17fa9988d32babec44b1..7bdf96d05d542a73b97e5a2a9d5f5b1d45e83c87 100644 (file)
@@ -500,7 +500,6 @@ possibly turned off."
 
 (define-public (car< a b) (< (car a) (car b)))
 
-
 (define-public (symbol<? lst r)
   (string<? (symbol->string lst) (symbol->string r)))
 
index c67c89df90e2d7309a7baa6885b1cc17a9de8244..1748401fd4807b21c07f743175d9c54e5c5491fd 100644 (file)
@@ -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
index 2fd78599ee0d4bd98c3c799cc654058b90c18067..a444313f6617f1d385580e8cd76905b1041b8eb7 100644 (file)
@@ -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)) '())