]> git.donarmstrong.com Git - lilypond.git/commitdiff
* scripts/convert-ly.py (conv): add instrument rule.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 27 Jan 2004 21:37:33 +0000 (21:37 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 27 Jan 2004 21:37:33 +0000 (21:37 +0000)
* lily/instrument-name-engraver.cc: add Vocal_name_engraver.

ChangeLog
lily/instrument-name-engraver.cc
ly/engraver-init.ly
scm/define-grobs.scm
scm/define-translator-properties.scm
scripts/convert-ly.py

index 56facfc86af83b9a4e3ba842d8aada39629b3025..c1e3a041f66003440d048cea5860e11a77ebcf03 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2004-01-27  Han-Wen Nienhuys   <hanwen@xs4all.nl>
 
+       * scripts/convert-ly.py (conv): add instrument rule.
+
+       * lily/instrument-name-engraver.cc: add Vocal_name_engraver.
+
        * lily/side-position-interface.cc: remove add_staff_support ()
        Change all callers to use staff-padding.
 
index faa4b39dbcdd5de04c3d4e2ebbb8d168e8fb729c..c38022300915a6de40035e34ca18cc794d90131b 100644 (file)
 
 class Instrument_name_engraver : public Engraver
 {
-  Item *text_;
-  Grob *delim_ ;
   
-  void create_text ();
 public:
   TRANSLATOR_DECLARATIONS(Instrument_name_engraver);
 
+protected:
+  Grob *text_;
+
+  virtual void create_text ();
   virtual void initialize ();
   virtual void acknowledge_grob (Grob_info);
   virtual void stop_translation_timestep ();
@@ -35,7 +36,6 @@ public:
 Instrument_name_engraver::Instrument_name_engraver ()
 {
   text_ = 0;
-  delim_ =0;
 }
 
 
@@ -57,31 +57,28 @@ Instrument_name_engraver::stop_translation_timestep ()
     }
 }
 
+
 void
 Instrument_name_engraver::create_text ()
 {
-   if (!text_)
-    {
-      SCM txt = get_property ("instrument");
+  if (text_)
+    return ;
   
-      if (now_mom () > Moment (0))
-       txt = get_property ("instr");
-      /*
-       UGH.
-      */
-      if (txt == SCM_EOL)
-       return ;
-      
-      text_ = make_item ("InstrumentName");
-      
-      if (text_->get_grob_property ("text") != txt)
-       text_->set_grob_property ("text", txt);
+  SCM txt = get_property ("instrument");
+  
+  if (now_mom () > Moment (0))
+    txt = get_property ("instr");
+  /*
+    UGH.
+  */
+  if (txt == SCM_EOL)
+    return ;
 
-      if (delim_)
-        text_->set_parent (delim_, Y_AXIS);
+  
+  text_ = make_item ("InstrumentName");
       
-      announce_grob (text_, SCM_EOL);
-    }
+  if (text_->get_grob_property ("text") != txt)
+    text_->set_grob_property ("text", txt);
 }
 
 void
@@ -137,3 +134,54 @@ ENTER_DESCRIPTION(Instrument_name_engraver,
 /* acks  */      "bar-line-interface axis-group-interface",
 /* reads */       "instrument instr",
 /* write */       "");
+
+/****************************************************************/
+
+
+class Vocal_name_engraver : public Instrument_name_engraver
+{
+public:
+  TRANSLATOR_DECLARATIONS(Vocal_name_engraver);
+  virtual void create_text ();
+};
+
+
+Vocal_name_engraver::Vocal_name_engraver ()
+{
+}
+
+
+void
+Vocal_name_engraver::create_text ()
+{
+  if (text_)
+    return ;
+  
+  SCM txt = get_property ("vocalName");
+  
+  if (now_mom () > Moment (0))
+    txt = get_property ("vocNam");
+
+  /*
+    UGH.
+  */
+  if (txt == SCM_EOL)
+    return ;
+  
+  text_ = make_item ("VocalName");
+      
+  if (text_->get_grob_property ("text") != txt)
+    text_->set_grob_property ("text", txt);
+}
+
+
+
+ENTER_DESCRIPTION(Vocal_name_engraver,
+/* descr */       " Prints the name of the a lyric voice (specified by "
+" @code{Staff.vocalName} and @code{Staff.vocNam}) "
+"at the left of the staff. ",
+/* creats*/       "VocalName",
+/* accepts */     "",
+/* acks  */      "bar-line-interface axis-group-interface",
+/* reads */       "vocNam vocalName",
+/* write */       "");
index 8369cdf05f99c60b9c41ac3867989c7e36dd300d..193dd3ea47665f58f3cadb6fe6bae6c2837d1f1d 100644 (file)
        \consists "Extender_engraver"
        \consists "Hyphen_engraver"
        \consists "Stanza_number_engraver"
-       \consists "Instrument_name_engraver"
+       \consists "Vocal_name_engraver"
        \consists "Skip_event_swallow_translator"
        SeparationItem \set #'padding = #0.5
 }
index 09707316d8b381ed6e1c28c080bd27f3b2bcd5b3..93f0974f64bcc807bcc812d8ecfaa754c8d60724 100644 (file)
        (font-family . roman)
        (meta . ((interfaces . (font-interface self-alignment-interface side-position-interface text-interface break-aligned-interface item-interface ))))
        ))
+    
+    (InstrumentName
+     . (
+       (breakable . #t)
+       (Y-offset-callbacks . (,Side_position_interface::aligned_on_support_refpoints))
+       (direction . 0)
+       (space-alist . ((left-edge . (extra-space . 1.0))
+                       ))
+       (molecule-callback . ,Text_item::brew_molecule)         
+       (break-align-symbol . instrument-name)
+       (break-visibility . ,begin-of-line-visible)
+       (baseline-skip . 2)
+       (font-family . roman)
+       (meta . ((interfaces . (font-interface
+                               self-alignment-interface
+                               side-position-interface text-interface
+                               break-aligned-interface item-interface ))))
+       ))
 
     (KeySignature
      . (
index af3b54b492c725ae0bd7809e16fecf6ae8b2d00e..d8e8eb70a3f5009feec7805046cd1bcfa1342d4b 100644 (file)
@@ -487,6 +487,11 @@ and therefore only work in contexts which contain an
 @code{Axis_group_engraver}.
 ")
 
+(translator-property-description 'vocalName markup?
+                                "Name of a vocal line.")
+(translator-property-description 'vocNam markup?
+                                "Name of a vocal line, short version.")
+
 (translator-property-description 'voltaOnThisStaff boolean?
  "Normally, volta brackets are put only on the topmost staff. Setting
 this variable to true, will force a bracket to be on this staff as
index 9d69d660f58453723e3f7da142eff0bdc847beba..7ef3e908cb077141c54077475fefb9da750cef18 100644 (file)
@@ -1712,6 +1712,16 @@ def conv (str):
 
 conversions.append (((2,1,14), conv, """style = dotted -> dash-fraction = 0"""))
 
+def conv (str):
+       str =re.sub (r'LyricsVoice\s*\.\s*instrument\s*=\s*("[^"]*")',
+                    r'LyricsVoice . vocalName = \1', str)
+       
+       str =re.sub (r'LyricsVoice\s*\.\s*instr\s*=\s*("[^"]*")',
+                    r'LyricsVoice . vocNam = \1', str)
+       return str
+
+conversions.append (((2,1,15), conv, """LyricsVoice . instr(ument) -> vocalName"""))
+
 ################################
 #      END OF CONVERSIONS      
 ################################