]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.3.36
authorfred <fred>
Tue, 26 Mar 2002 23:09:46 +0000 (23:09 +0000)
committerfred <fred>
Tue, 26 Mar 2002 23:09:46 +0000 (23:09 +0000)
73 files changed:
CHANGES
input/test/volta.fly
lily/align-element.cc
lily/axis-group-engraver.cc
lily/axis-group-interface.cc [new file with mode: 0644]
lily/axis-group-item.cc [new file with mode: 0644]
lily/axis-group-spanner.cc [new file with mode: 0644]
lily/bar.cc
lily/break-align-engraver.cc
lily/break-align-item.cc
lily/collision.cc
lily/directional-element-interface.cc [new file with mode: 0644]
lily/dot-column.cc
lily/dynamic-engraver.cc
lily/dynamic-performer.cc
lily/grace-engraver-group.cc
lily/grace-performer-group.cc
lily/grace-position-engraver.cc
lily/hara-kiri-vertical-group-spanner.cc
lily/include/align-element.hh
lily/include/axis-group-interface.hh [new file with mode: 0644]
lily/include/axis-group-item.hh
lily/include/axis-group-spanner.hh
lily/include/music.hh
lily/include/paper-def.hh
lily/include/side-position-interface.hh
lily/include/translator.hh
lily/include/volta-spanner.hh
lily/line-group-group-engraver.cc
lily/line-of-score.cc
lily/note-column.cc
lily/paper-column.cc
lily/paper-def.cc
lily/rest.cc
lily/rhythmic-head.cc
lily/scm-hash.cc
lily/score-engraver.cc
lily/score-performer.cc
lily/side-position-interface.cc
lily/span-bar.cc
lily/span-dynamic-performer.cc
lily/span-score-bar-engraver.cc
lily/text-engraver.cc
lily/translator-group.cc
lily/translator.cc
lily/vertical-align-engraver.cc
lily/volta-spanner.cc
ly/engraver.ly
ly/performer.ly
mutopia/Coriolan/clarinetto-1.ly
mutopia/Coriolan/clarinetto-2.ly
mutopia/Coriolan/contrabasso.ly
mutopia/Coriolan/coriolan-midi.ly
mutopia/Coriolan/coriolan-paper.ly
mutopia/Coriolan/coriolan-part-paper.ly
mutopia/Coriolan/coriolan.ly
mutopia/Coriolan/corno-1.ly
mutopia/Coriolan/corno-2.ly
mutopia/Coriolan/fagotto-1.ly
mutopia/Coriolan/fagotto-2.ly
mutopia/Coriolan/flauto-1.ly
mutopia/Coriolan/flauto-2.ly
mutopia/Coriolan/oboe-1.ly
mutopia/Coriolan/oboe-2.ly
mutopia/Coriolan/timpani.ly
mutopia/Coriolan/trombo-1.ly
mutopia/Coriolan/trombo-2.ly
mutopia/Coriolan/viola-1.ly
mutopia/Coriolan/violino-1.ly
mutopia/Coriolan/violino-2.ly
mutopia/Coriolan/violoncello.ly
scm/generic-property.scm
scripts/convert-mudela.py

diff --git a/CHANGES b/CHANGES
index a64562175a18d23c04b5e5cf470c2887e95a6624..25d8b6894f91f509872f3e55c47cc77cd42cf4b7 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,40 @@
+.3.35.hwn1
+===========
+
+* textEmptyDimension changed into textNonEmpty, default: off,
+ie. texts don't occupy space.
+
+* Use STL map for Lookup::lookup_p_tab_p_
+
+* Abstracted Axis_group_element into Axis_group_interface, and removed
+Axis_group_element. This eliminates some multiple inheritance in the
+backend
+
+1.3.35.jcn1
+===========
+
+* Added minimum-space property to Side_position_interface.  Used in
+  positioning of Volta_spanner: voltaMinimumSpace.
+
+* Fixed and cleaned-up volta-spanner.
+
+* Moved directional-element.cc -> directional-element-interface.cc
+
+* Renamed all `process_requests' to `process_music', which fixes
+  midi performance.
+
+* Fixed dimensions (more x-y interchanges) of brace, bracket and
+  volta-spanner.
+
+* Bit half-baken fix in to get similar vertical placement of orphaned vs.
+  line-spanned dynamic elements.
+
+* Added property bracketCollapseHeight: the minimal size of a staff bracket
+  that will be typeset.  Smaller brackets will not be displayed.  This
+  fixes the (in 1.3.x reintroduced) funny duck-beak-bracket-bug (sorry).
+
+* Removed some dissonant chords from Coriolan
+
 1.3.35
 ======
 
index 86a57ed0d51f14160be6d357919970277a9e6a8e..d761f5b389f924a3003438cc9c863b25a655883a 100644 (file)
@@ -2,16 +2,16 @@
 % line breaks and special bars.
 
 c' d e f |
-\repeat semi 2 { g a b c }
+\repeat "volta" 2 { g a b c }
 \alternative { { c b a g a g a g} { f e d c } } 
-\repeat semi 2 { g a b c }
+\repeat "volta" 2 { g a b c }
 \alternative { { c b a g \break a g a g} { f e d c } } 
-c, d e f |
-\repeat semi 2 { g a b c }
+c' d e f |
+\repeat "volta" 2 { g a b c }
 \alternative { { c b a g \break a g a g \break a b a b } { f e d c } }
-c, d e f |
-\repeat semi 2 { g a b c }
+c' d e f |
+\repeat "volta" 2 { g a b c }
 \alternative { { c b a g } { f e d c \break a g a g} }
-c, d e f |
-\repeat semi 2 { g a b c }
+c' d e f |
+\repeat "volta" 2 { g a b c }
 \alternative { { c b a g a g a g} { f e d c \bar "|.";} }
index d892e733162ed09aadb16cea0fbcefe6860257f9..a8b34c069324cd7bffbf7b5967af5c7b3c549918 100644 (file)
@@ -10,8 +10,8 @@
 #include "interval.hh"
 #include "direction.hh"
 #include "debug.hh"
-#include "hash-table-iter.hh"
 #include "dimension-cache.hh"
+#include "axis-group-interface.hh"
 
 /*
   This callback is set in the children of the align element. It does
@@ -34,7 +34,7 @@ void
 Align_element::add_element (Score_element* s)
 {
   s->add_offset_callback (alignment_callback, axis ());
-  Axis_group_element::add_element (s);
+  axis_group (this).add_element (s);
 }
 
 /*
@@ -55,7 +55,8 @@ Align_element::do_side_processing (Axis a)
   Array<Interval> dims;
 
   Link_array<Score_element> elems;
-  Link_array<Score_element> all_elts (elem_l_arr ());
+  Link_array<Score_element> all_elts
+    = Group_interface__extract_elements (this, (Score_element*) 0, "elements");
   for (int i=0; i < all_elts.size(); i++) 
     {
       Interval y = all_elts[i]->extent(a) + all_elts[i]->relative_coordinate (this, a);
@@ -139,11 +140,10 @@ Align_element::axis () const
 void
 Align_element::set_axis (Axis a)
 {
-  set_axes (a, a);
+  axis_group (this).set_axes (a, a);
 }
 
-
-
-
-
-
+Align_element::Align_element ()
+{
+  axis_group (this).set_interface ();
+}
index f9d813035ad3211b6fec84172869d397ca7a97ec..50b76990e5ddc5ab8b3e6662aeec3e4cc2654451 100644 (file)
@@ -9,6 +9,7 @@
 #include "axis-group-engraver.hh"
 #include "axis-group-spanner.hh"
 #include "paper-column.hh"
+#include "axis-group-interface.hh"
 
 Axis_group_engraver::Axis_group_engraver ()
 {
@@ -19,7 +20,7 @@ void
 Axis_group_engraver::do_creation_processing ()
 {
   staffline_p_ = get_spanner_p ();
-  staffline_p_->set_axes (Y_AXIS, Y_AXIS);
+  axis_group (staffline_p_).set_axes (Y_AXIS, Y_AXIS);
   staffline_p_->set_bound(LEFT,get_staff_info().command_pcol_l ());
   announce_element (Score_element_info (staffline_p_, 0));
 }
@@ -49,16 +50,9 @@ Axis_group_engraver::process_acknowledged ()
   /* UGH UGH UGH */
   for (int i=0; i < elts_.size (); i++)
     {
-      if (!elts_[i]->parent_l (Y_AXIS))
-       staffline_p_->add_element (elts_[i]);
-      else
-       if (
-           // elts_[i]->get_elt_property ("Axis_group_element::add_extra_element") == SCM_UNDEFINED &&
-           ! dynamic_cast<Axis_group_element*> (elts_[i]->parent_l (Y_AXIS)))
-              
-       {
-         staffline_p_->add_element (elts_[i]);
-       }
+      Score_element *par = elts_[i]->parent_l (Y_AXIS);
+      if (!par || !axis_group (par).has_interface_b ())
+       axis_group (staffline_p_).add_element (elts_[i]);
     }
   elts_.clear ();
 }
diff --git a/lily/axis-group-interface.cc b/lily/axis-group-interface.cc
new file mode 100644 (file)
index 0000000..d00b7a1
--- /dev/null
@@ -0,0 +1,134 @@
+/*   
+  axis-group-interface.cc --  implement Axis_group_interface
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "axis-group-interface.hh"
+#include "score-element.hh"
+#include "dimension-cache.hh"
+
+Axis_group_interface::Axis_group_interface (Score_element*s)
+  : Group_interface (s)
+{
+  elt_l_ = s;
+}
+
+Axis_group_interface
+axis_group (Score_element*s)
+{
+  return Axis_group_interface (s);
+}
+
+void
+Axis_group_interface::add_element (Score_element *e)
+{
+  elt_l_->used_b_ = true;
+  e->used_b_ = true;
+
+  for (SCM ax = elt_l_->get_elt_property ("axes"); ax != SCM_EOL ; ax = gh_cdr (ax))
+    {
+      Axis a = (Axis) gh_scm2int (gh_car (ax));
+      
+      if (!e->parent_l (a))
+       e->set_parent (elt_l_, a);
+    }
+
+  Group_interface::add_element (e);
+
+  elt_l_->add_dependency (e);
+}
+
+
+bool
+Axis_group_interface::axis_b (Axis a )const
+{
+  return elt_l_->dim_cache_[a]->extent_callback_l_ == group_extent_callback;
+}
+
+Interval
+Axis_group_interface::group_extent_callback (Dimension_cache const *c) 
+{
+  Axis a = c->axis ();
+  Score_element * me = c->element_l ();
+
+  Interval r;
+  for (SCM s = me->get_elt_property ("elements"); gh_pair_p (s); s = gh_cdr (s))
+    {
+      SCM e=gh_car (s); 
+      Score_element * se = SMOB_TO_TYPE (Score_element, e);
+
+      Interval dims = se->extent (a);
+      if (!dims.empty_b ())
+       r.unite (dims + se->relative_coordinate (me, a));
+    }
+
+  return r;
+}
+
+
+void
+Axis_group_interface::set_interface ()
+{
+  if (!has_interface_b ())
+    {
+      elt_l_->set_elt_property ("elements", SCM_EOL);
+      elt_l_->set_elt_property ("transparent", SCM_BOOL_T);
+      elt_l_->set_elt_property ("axes" , SCM_EOL);
+      group (elt_l_, "interfaces").add_thing (ly_symbol2scm ("Axis_group"));
+    }
+}
+
+void
+Axis_group_interface::set_axes (Axis a1, Axis a2)
+{
+  // set_interface () ? 
+
+  SCM ax = gh_cons (gh_int2scm (a1), SCM_EOL);
+  if (a1 != a2)
+    ax= gh_cons (gh_int2scm (a2), ax);
+
+  
+  elt_l_->set_elt_property ("axes", ax);
+
+  if (a1 != X_AXIS && a2 != X_AXIS)
+    elt_l_->set_empty (X_AXIS);
+  if (a1 != Y_AXIS && a2 != Y_AXIS)
+    elt_l_->set_empty (Y_AXIS);
+  
+  elt_l_->dim_cache_[a1]->set_callback (Axis_group_interface::group_extent_callback);
+  elt_l_->dim_cache_[a2]->set_callback (Axis_group_interface::group_extent_callback);
+}
+
+Link_array<Score_element> 
+Axis_group_interface::get_children ()
+{
+  Link_array<Score_element> childs;
+  childs.push (elt_l_) ;
+
+  if (!has_interface_b ())
+    return childs;
+  
+  for (SCM ep = elt_l_->get_elt_property ("elements"); gh_pair_p (ep); ep = gh_cdr (ep))
+    {
+      Score_element* e = unsmob_element (gh_car (ep));
+      if (e)
+       childs.concat (axis_group (e).get_children ());
+    }
+  
+  return childs;
+}
+
+bool
+Axis_group_interface::has_interface_b ()
+{
+  SCM memq = scm_memq (ly_symbol2scm ("Axis_group"),
+             elt_l_->get_elt_property ("interfaces"));
+  
+  return (memq != SCM_BOOL_F);
+}
+
+
diff --git a/lily/axis-group-item.cc b/lily/axis-group-item.cc
new file mode 100644 (file)
index 0000000..e3dfe35
--- /dev/null
@@ -0,0 +1,16 @@
+/*   
+  axis-group-item.cc --  implement Axis_group_interface
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "axis-group-item.hh"
+#include "axis-group-interface.hh"
+
+Axis_group_item ::Axis_group_item ()
+{
+  axis_group (this).set_interface ();
+}
diff --git a/lily/axis-group-spanner.cc b/lily/axis-group-spanner.cc
new file mode 100644 (file)
index 0000000..00266e0
--- /dev/null
@@ -0,0 +1,16 @@
+/*   
+  axis-group-spanner.cc --  implement Axis_group_spanner
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "axis-group-spanner.hh"
+#include "axis-group-interface.hh"
+
+Axis_group_spanner::Axis_group_spanner()
+{
+  axis_group (this).set_interface ();
+}
index 7bcccfed32ea20ce9005359bdaa7107ef0d040f7..04ea330fb1c080cc8c1b611c8eccf016b6a44084 100644 (file)
@@ -54,10 +54,11 @@ Molecule
 Bar::staff_bracket (Real height) const 
 {
   Paper_def* p= paper_l ();
+  Real arc_height = p->get_var("bracket_arch_height");
   SCM at = gh_list (ly_symbol2scm ("bracket"),
                    gh_double2scm (p->get_var("bracket_arch_angle")),
                    gh_double2scm (p->get_var("bracket_arch_width")),
-                   gh_double2scm (p->get_var("bracket_arch_height")),
+                   gh_double2scm (arc_height),
                    gh_double2scm (p->get_var("bracket_width")),
                    gh_double2scm (height),
                    gh_double2scm (p->get_var("bracket_arch_thick")),
@@ -65,7 +66,8 @@ Bar::staff_bracket (Real height) const
                    SCM_UNDEFINED);
 
   Real staff_space = p->get_var ("interline");
-  Box b (Interval (0, 1.5 * staff_space), Interval (-height/2,height/2));
+  Real h = height + 2 * arc_height;
+  Box b (Interval (0, 1.5 * staff_space), Interval (-h/2, h/2));
   Molecule mol (b, at);
   
   mol.translate_axis (- mol.dim_[X_AXIS].length () / 2, X_AXIS);
@@ -165,8 +167,8 @@ Bar::staff_brace (Real y)  const
 
   at = fontify_atom (all_fonts_global_p->find_font (nm), at);
   
-  Box b ( Interval (-y/2,y/2),
-          Interval (0,0));
+  Box b (Interval (0,0), Interval (-y/2, y/2));
+
   return Molecule(b, at);
 }
   
index c111645eee452692c112815e21d62e1be4f259f5..82f6dd904df42a5a566b2a52ebef46a6b0e9bee1 100644 (file)
@@ -10,6 +10,7 @@
 #include "protected-scm.hh"
 #include "break-align-item.hh"
 #include "axis-group-item.hh"
+#include "axis-group-interface.hh"
 
 class Break_align_engraver : public Engraver
 {
@@ -111,12 +112,12 @@ Break_align_engraver::acknowledge_element (Score_element_info inf)
       else
        {
          group = new Axis_group_item;
-         group->set_axes (X_AXIS,X_AXIS);
+         axis_group(group).set_axes (X_AXIS,X_AXIS);
          group->set_elt_property ("origin", name);
          group->set_parent (align_l_, Y_AXIS);
          announce_element (Score_element_info (group, 0));
          column_alist_ = scm_assoc_set_x (column_alist_, name, group->self_scm_);
        }
-      group->add_element (item_l);
+      axis_group (group).add_element (item_l);
     }
 }
index 0d67818da9448c8cbbde633ed2f58a4093e9fc0b..c0c2ac4807b28c756757595a2e67c4b3851294bc 100644 (file)
@@ -16,6 +16,7 @@
 #include "paper-score.hh"
 #include "paper-def.hh"
 #include "paper-column.hh"
+#include "group-interface.hh"
 
 /*
   Handle spacing for prefatory matter. 
@@ -33,7 +34,9 @@ Break_align_item::before_line_breaking ()
 
 
   Link_array<Score_element> elems;
-  Link_array<Score_element> all_elems (elem_l_arr ());
+  Link_array<Score_element> all_elems
+    = Group_interface__extract_elements (this, (Score_element*)0,
+                                        "elements");
   
   for (int i=0; i < all_elems.size(); i++) 
     {
index 161016104ca00ebf238b4d7c1f8742fbe027cf03..f423d2a4a2dda420b43fe5c3c9e4d8889cd94633 100644 (file)
 #include "note-column.hh"
 #include "note-head.hh"
 #include "paper-def.hh"
+#include "axis-group-interface.hh"
+
 
 Collision::Collision()
 {
-  set_axes (X_AXIS, Y_AXIS);
+  axis_group (this).set_axes (X_AXIS, Y_AXIS);
 }
 
 void
 Collision::add_column (Note_column* ncol_l)
 {
-  add_element (ncol_l);
+  axis_group (this).add_element (ncol_l);
   add_dependency (ncol_l);
 }
 
diff --git a/lily/directional-element-interface.cc b/lily/directional-element-interface.cc
new file mode 100644 (file)
index 0000000..4cc5ebb
--- /dev/null
@@ -0,0 +1,48 @@
+/*   
+  directional-element.cc -- implement Directional_element
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "directional-element-interface.hh"
+
+
+Directional_element_interface::Directional_element_interface (Score_element const *s)
+{
+  elt_l_ =  (Score_element*)s;
+}
+
+bool
+Directional_element_interface::has_interface_b () const
+{
+  return isdir_b (elt_l_->get_elt_property ("direction"));
+}
+
+
+  
+
+Direction
+Directional_element_interface::get () const
+{
+  // return dir_;
+  SCM d= elt_l_->get_elt_property ("direction");
+  if (!isdir_b(d))
+    return CENTER;
+      
+  return to_dir (d);
+}
+
+void
+Directional_element_interface::set (Direction d) 
+{
+  elt_l_->set_elt_property ("direction", gh_int2scm (d));
+}
+
+Directional_element_interface
+directional_element (Score_element const*s)
+{
+  return s;
+}
index d9331f89074bc6dddcfc3ded34995ebde9a4ad3e..29a5789a22a6d043b8a922d73a2e754f941cdd83 100644 (file)
@@ -13,6 +13,8 @@
 #include "staff-symbol-referencer.hh"
 #include "directional-element-interface.hh"
 #include "side-position-interface.hh"
+#include "axis-group-interface.hh"
+
 
 void
 Dot_column::add_dots (Dots *d)
@@ -21,7 +23,7 @@ Dot_column::add_dots (Dots *d)
   gi.add_element (d);
 
   add_dependency (d);
-  add_element (d);
+  axis_group (this).add_element (d);
 }
 
 void
@@ -51,7 +53,7 @@ Dot_column::Dot_column ()
   gi.set_interface ();
   
   directional_element (this).set (RIGHT);
-  set_axes(X_AXIS,X_AXIS);
+  axis_group (this).set_axes(X_AXIS,X_AXIS);
 }
 
 /*
index ea79cff0fe9d54f6b7113fc966b45f85c3483e52..038d02ba54c68071c4ab2b5b9b4fc88e09835405 100644 (file)
@@ -29,8 +29,8 @@
 /*
   TODO:
 
-  * padding of orphaned items
-  * direction of orphaned items
+  * direction of text-dynamic-request if not equalt to direction
+  of line-spanner
  */
 
 class Dynamic_line_spanner : public Spanner
@@ -39,7 +39,9 @@ public:
   Dynamic_line_spanner ();
   VIRTUAL_COPY_CONS(Score_element);
   void add_column (Item*);
-  Direction get_default_dir () const;
+
+protected:
+  virtual void after_line_breaking ();
 };
 
 Dynamic_line_spanner::Dynamic_line_spanner ()
@@ -59,10 +61,29 @@ Dynamic_line_spanner::add_column (Item* n)
   add_dependency (n);
 }
 
-Direction
-Dynamic_line_spanner::get_default_dir () const
+void
+Dynamic_line_spanner::after_line_breaking ()
 {
-  return DOWN;
+#if 0
+
+  /*
+    We hebben hier een probleempje: er is een verschil tussen
+    dynamics zonder en met line-spanner.
+    Allen zijn gecentreerd (aligned-on-self), wat okee is, 
+    maar de losse hebben zelf een padding tov de staff.
+
+    Deze padding werkt niet op items die in line-spanner zitten:
+    de padding werkt op line-spanner zelf.
+    De line-spanner moet dus eigenlijk zoveel naar beneden of boven
+    als er items uitsteken, maar Hmm.
+   */
+#endif
+  Direction dir = directional_element (this).get ();
+  if (!dir)
+    dir = DOWN;
+  //Hmm. inf
+  //translate_axis (extent (Y_AXIS)[dir], Y_AXIS);
+  translate_axis (staff_symbol_referencer (this).staff_space () * dir, Y_AXIS);
 }
 
 /**
@@ -213,6 +234,9 @@ Dynamic_engraver::do_process_music ()
          SCM s = get_property ("dynamicPadding");
          if (gh_number_p (s))
            e->set_elt_property ("padding", s);
+         s = get_property ("dynamicMinimumSpace");
+         if (gh_number_p (s))
+           e->set_elt_property ("minimum-space", s);
        }
       pending_element_arr_.clear ();
     } 
index b7472eaf515b87a241343f5e5644437a64ca2efd..7fbca0dd698718d599a2dca4e009e224a2ed94bf 100644 (file)
@@ -31,7 +31,7 @@ public:
 protected:
   void do_print () const;
   virtual bool do_try_music (Music* req_l);
-  virtual void do_process_requests ();
+  virtual void do_process_music ();
   virtual void do_pre_move_processing ();
 
 private:
@@ -61,7 +61,7 @@ Dynamic_performer::do_print () const
 }
 
 void
-Dynamic_performer::do_process_requests ()
+Dynamic_performer::do_process_music ()
 {
   if (text_script_req_l_)
     {
index 20eb4a63ee8ef6d267085ded4766d695b7cd4a84..91744ff657dc4d6dc0d977d04242df6c5965940a 100644 (file)
@@ -69,7 +69,7 @@ void
 Grace_engraver_group::process ()
 {
   calling_self_b_  = true;
-  process_requests ();
+  process_music ();
   do_announces();
   pre_move_processing();
   check_removal();
index f2c8ef277651edbfa1a4f1e4f5dc321466bf7279..fcfad2a3391a34021f08b0476d535fb173f33b98 100644 (file)
@@ -71,7 +71,7 @@ void
 Grace_performer_group::process ()
 {
   calling_self_b_  = true;
-  process_requests ();
+  process_music ();
   do_announces();
   pre_move_processing();
   check_removal();
index 866b3a2d80fb8a99698103407b7aaf411dc17f30..735ba6b69a894fcd9b4866ffe1ab50e1751ae362 100644 (file)
@@ -14,6 +14,8 @@
 #include "paper-column.hh"
 #include "dimension-cache.hh"
 #include "side-position-interface.hh"
+#include "axis-group-interface.hh"
+
 
 class Grace_position_engraver:public Engraver
 {
@@ -91,7 +93,7 @@ Grace_position_engraver::do_pre_move_processing ()
       warning (_("Unattached grace notes.  Attaching to last musical column."));
       
       align_l_->set_parent (0, X_AXIS);
-      last_musical_col_l_->add_element (align_l_);
+      axis_group(last_musical_col_l_).add_element (align_l_);
     }
 
   last_musical_col_l_ = get_staff_info ().musical_pcol_l ();
index b6a6416455f916245eb170d377120d1576c20545..ba10c73d46bb87dc5834df6c3cccc9ad54514e76 100644 (file)
@@ -8,6 +8,7 @@
   Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
+#include "axis-group-interface.hh"
 #include "hara-kiri-vertical-group-spanner.hh"
 #include "debug.hh"
 #include "item.hh"
@@ -15,7 +16,7 @@
 Hara_kiri_group_spanner::Hara_kiri_group_spanner()
 {
   set_elt_property ("items-worth-living", SCM_EOL);
-  set_axes(Y_AXIS,Y_AXIS);
+  axis_group (this).set_axes(Y_AXIS,Y_AXIS);
 }
 
 void 
@@ -34,7 +35,7 @@ Hara_kiri_group_spanner::after_line_breaking ()
   if (gh_pair_p (worth))
     return;
 
-  Link_array<Score_element> childs = get_children ();
+  Link_array<Score_element> childs = axis_group (this).get_children ();
   for (int i = 0; i < childs.size (); i++)
     {
       Score_element* s = childs[i];
index b4fae226423f29d196f32294b44ced9804e23929..19a4e9dcc995708eeae767f74406e1eea74622da 100644 (file)
 #ifndef VERTICAL_ALIGN_ITEM_HH
 #define VERTICAL_ALIGN_ITEM_HH
 
-#include "axis-group-element.hh"
-#include "interval.hh"
-#include "direction.hh"
-#include "axes.hh"
-#include "hash-table.hh"
+#include "score-element.hh"
 
 /**
   Order elements top to bottom/left to right/right to left etc..
 
 
 */
-class Align_element : public virtual Axis_group_element {
+class Align_element : public virtual Score_element {
 public:
   Axis axis () const;
 
+  Align_element ();
   void set_axis (Axis);
   int get_count (Score_element*)const;
   void add_element (Score_element *);
diff --git a/lily/include/axis-group-interface.hh b/lily/include/axis-group-interface.hh
new file mode 100644 (file)
index 0000000..9ceee2f
--- /dev/null
@@ -0,0 +1,31 @@
+/*   
+  axis-group-interface.hh -- declare Axis_group_interface
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef AXIS_GROUP_INTERFACE_HH
+#define AXIS_GROUP_INTERFACE_HH
+
+#include "group-interface.hh"
+
+struct Axis_group_interface : Group_interface
+{
+  Axis_group_interface (Score_element*);
+  static Interval group_extent_callback (Dimension_cache const*);
+  void add_element (Score_element*);
+  void set_axes (Axis,Axis);
+  bool axis_b (Axis)const;
+  Link_array<Score_element> get_children ();
+  bool has_interface_b ();
+  void set_interface ();
+};
+
+Axis_group_interface
+axis_group (Score_element*);
+
+#endif /* AXIS_GROUP_INTERFACE_HH */
+
index 0f88cc78bb23d94e64aee7147191ff5b0b27abb5..aa2e6392bc670a77444e91539edee6cab5971d01 100644 (file)
 #ifndef AXIS_ITEM_HH
 #define AXIS_ITEM_HH
 
-#include "axis-group-element.hh" 
 #include "item.hh"
 
-/**
-  A grouping item. Its special support is in do_breakable_col_processing().
- */
-class Axis_group_item : public virtual Axis_group_element, public virtual Item
+class Axis_group_item :  public virtual Item
 {
 public:
+  Axis_group_item ();
   VIRTUAL_COPY_CONS(Score_element);
 };
 
index d421973f5058d361958dc8c487184e068144fad5..9d48108c2ee9c6a2e8d45402a7113d2451910ef7 100644 (file)
 #define AXIS_GROUP_SPANNER_HH
 
 #include "spanner.hh"
-#include "axis-group-element.hh"
 
 /**
    An element which groups a line in a certain direction. The most
    useful example of this is the Vertical_group_spanner
 */
-class Axis_group_spanner : public virtual Axis_group_element,
-                          public virtual Spanner
+class Axis_group_spanner : public virtual Spanner
 
 {
 public:
+  Axis_group_spanner ();
   VIRTUAL_COPY_CONS(Score_element);
 };
 
index fc8d7162ddfa4fd99d660fa03ea5a56c1a2ab9ad..ce355795d97dba423846a152a5f270d647932bee 100644 (file)
@@ -30,8 +30,6 @@
   */
 class Music:public Input {
 public:
-    
-
   virtual Musical_pitch to_relative_octave (Musical_pitch);
 
   /// The duration of this piece of music
index 987c0f25da3d3f3345915d2c8114f471c71887d6..4970d49905f1182ee6fd33ee4c0c19f8a113365f 100644 (file)
@@ -9,6 +9,9 @@
 
 #ifndef PAPER_DEF_HH
 #define PAPER_DEF_HH
+
+#include <map>
+
 #include "lily-proto.hh"
 #include "lily-guile.hh"
 #include "real.hh"
@@ -44,7 +47,7 @@
 */
 class Paper_def : public Music_output_def 
 {
-  Hash_table<int, Lookup *> *lookup_p_tab_p_;
+  map<int, Lookup *> *lookup_p_tab_p_;
   static int default_count_i_;
 
 protected:
index 341b711c6779deeb0b24d0452957f563e27fe245..12495db3afc9d2ca9dedfac0b62ec4c9c2c8faaa 100644 (file)
@@ -24,6 +24,8 @@ public:
   static Real quantised_position (Dimension_cache const*);
   static Real centered_on_parent (Dimension_cache const*);
   void set_axis (Axis);
+  void set_minimum_space (Real);
+  void set_padding (Real);
   void set_quantised (Axis);
   Axis get_axis () const;
   
index f7afd50cfa97c55abf827c26b42b8369cca96864..c84c109ec4fcdddb264287e43db8d0a8266aba5d 100644 (file)
@@ -54,7 +54,7 @@ public:
   void pre_move_processing();
   void add_processing ();
   void creation_processing ();
-  void process_requests();
+  void process_music();
   void post_move_processing();
   void removal_processing();
   /**
index 9630477fa8382b6df50c3b65517b632fcc790478..e76d6e0537b8288188dd7fe12745ff9c4db2f012 100644 (file)
@@ -26,7 +26,6 @@ protected:
   VIRTUAL_COPY_CONS (Score_element);
 
   virtual void do_add_processing ();
-  static  Interval dim_callback (Dimension_cache const*);
   virtual void after_line_breaking ();
 };
 
index a0f8d10dbce7b8afc283e3df34a4e6a1dc624d03..99dc54a202df3341af7827d8e402ed649e09d667 100644 (file)
@@ -13,6 +13,8 @@
 #include "debug.hh"
 #include "line-group-group-engraver.hh"
 #include "paper-column.hh"
+#include "axis-group-interface.hh"
+
 
 Line_group_engraver_group::Line_group_engraver_group()
 {
@@ -24,7 +26,7 @@ void
 Line_group_engraver_group::typeset_element (Score_element *elem)
 {
   if (!elem->parent_l (Y_AXIS))      
-    staffline_p_->add_element (elem);
+    axis_group (staffline_p_).add_element (elem);
   Engraver_group_engraver::typeset_element (elem);
 }
 
@@ -52,7 +54,7 @@ void
 Line_group_engraver_group::create_line_spanner ()
 {
   staffline_p_ = new Axis_group_spanner ;
-  staffline_p_->set_axes (Y_AXIS,Y_AXIS);
+  axis_group (staffline_p_).set_axes (Y_AXIS,Y_AXIS);
 }
 
 
index 3bba1d479bd35869be7f12f57e8ef71404326c94..478a07289d7fd26a55ded33594ef2f9e397218ff 100644 (file)
 #include "warn.hh"
 #include "main.hh"
 #include "debug.hh"
+#include "axis-group-interface.hh"
+
 
 Line_of_score::Line_of_score()
 {
   set_elt_property ("columns", SCM_EOL);
-  set_axes (Y_AXIS,X_AXIS);
+  axis_group (this).set_axes (Y_AXIS,X_AXIS);
 }
 
 
@@ -65,7 +67,7 @@ Line_of_score::add_column (Paper_column*p)
 {
   set_elt_property ("columns",
                    gh_cons (p->self_scm_, get_elt_property ("columns")));
-  add_element (p);
+  axis_group (this).add_element (p);
 }
 
 void
index ab801410ffb37bbc853b01236342497baaeeeaf9..3b9a26e89b230cffcfbcc72019846a33a293de1d 100644 (file)
@@ -7,7 +7,7 @@
 */
 #include <math.h>              // ceil
 
-
+#include "axis-group-interface.hh"
 #include "dot-column.hh"
 #include "note-column.hh"
 #include "beam.hh"
@@ -42,7 +42,7 @@ Note_column::Note_column()
 {
   set_elt_property ("rests", SCM_EOL);
   set_elt_property ("note-heads", SCM_EOL);  
-  set_axes (X_AXIS, Y_AXIS);
+  axis_group (this).set_axes (X_AXIS, Y_AXIS);
 }
 
 Stem *
@@ -92,7 +92,7 @@ Note_column::set_stem (Stem * stem_l)
   set_elt_property ("stem", stem_l->self_scm_);
 
   add_dependency (stem_l);
-  add_element (stem_l);
+  axis_group (this).add_element (stem_l);
 }
 
 
@@ -110,7 +110,7 @@ Note_column::add_head (Rhythmic_head *h)
       Group_interface gi (this, "note-heads");
       gi.add_element (nh);
     }
-  add_element (h);
+  axis_group (this).add_element (h);
 }
 
 /**
@@ -133,7 +133,7 @@ Note_column::translate_rests (int dy_i)
 void
 Note_column::set_dotcol (Dot_column *d)
 {
-  add_element (d);
+  axis_group (this).add_element (d);
 }
 
 /*
index 3117df5b95a8daefef222ae587feafdd9996f36c..14f1340464e2f2c334e437b18d8132350720d73d 100644 (file)
@@ -9,6 +9,7 @@
 #include "paper-column.hh"
 #include "paper-score.hh"
 #include "debug.hh"
+#include "axis-group-interface.hh"
 
 void
 Paper_column::add_rod (Paper_column * p, Real d)
@@ -126,7 +127,7 @@ Paper_column::Paper_column (Moment w)
   scm_unprotect_object (when);
   set_elt_property ("when", when);
   
-  set_axes (X_AXIS, X_AXIS);
+  axis_group (this).set_axes (X_AXIS, X_AXIS);
 
   line_l_=0;
   rank_i_ = -1;
index 2f60f9e14ce2f65295ed3210c2eedc141a736e2b..9234da4d1c89b793c002e1932b9f34d50a487b54 100644 (file)
@@ -7,6 +7,7 @@
 */
 
 #include <math.h>
+
 #include "all-font-metrics.hh"
 #include "string.hh"
 #include "misc.hh"
 
 Paper_def::Paper_def ()
 {
-  lookup_p_tab_p_ = new Hash_table<int, Lookup*>;
-  lookup_p_tab_p_->hash_func_ = int_hash;
+  lookup_p_tab_p_ = new map<int, Lookup*>;
 }
 
 
 Paper_def::~Paper_def ()
 {
-  for (Hash_table_iter<int, Lookup*> ai(*lookup_p_tab_p_); ai.ok (); ai++)
+  for (map<int,Lookup*>::const_iterator ai = lookup_p_tab_p_->begin();
+       ai != lookup_p_tab_p_->end (); ai++)
     {
-      delete ai.val ();
+      delete (*ai).second;
     }
   
   delete lookup_p_tab_p_;
@@ -45,13 +46,13 @@ Paper_def::Paper_def (Paper_def const&s)
   : Music_output_def (s)
 {
   shape_int_a_ = s.shape_int_a_;
-  lookup_p_tab_p_ = new Hash_table<int, Lookup*>;
-  lookup_p_tab_p_->hash_func_ = int_hash;
+  lookup_p_tab_p_ = new map<int, Lookup*>;
   
-  for (Hash_table_iter<int, Lookup*> ai(*s.lookup_p_tab_p_); ai.ok (); ai++)
+  for (map<int,Lookup*>::const_iterator ai = s.lookup_p_tab_p_->begin();
+       ai != s.lookup_p_tab_p_->end (); ai++)
     {
-      Lookup * l = new Lookup (*ai.val ());
-      set_lookup (ai.key(), l);
+      Lookup * l = new Lookup (* (*ai).second);
+      set_lookup ((*ai).first, l);      
     }
 }
 
@@ -112,9 +113,10 @@ Paper_def::line_dimensions_int (int n) const
 void
 Paper_def::set_lookup (int i, Lookup*l)
 {
-  if (lookup_p_tab_p_->elem_b (i))
+  map<int,Lookup*> :: const_iterator it (lookup_p_tab_p_->find (i));
+  if (it != lookup_p_tab_p_->end ())
     {
-      delete lookup_p_tab_p_->elem (i);
+      delete (*it).second;
     }
   (*lookup_p_tab_p_)[i] = l;
 }
@@ -139,9 +141,11 @@ Paper_def::print () const
 #ifndef NPRINT
   Music_output_def::print ();
   DEBUG_OUT << "Paper {";
-  for (Hash_table_iter<int, Lookup*> ai(*lookup_p_tab_p_); ai.ok (); ai++)
+  for (map<int,Lookup*>::const_iterator ai = lookup_p_tab_p_->begin();
+       ai != lookup_p_tab_p_->end (); ai++)
     {
-      DEBUG_OUT << "Lookup: " << ai.key () << " = " << ai.val ()->font_name_ << '\n';
+      DEBUG_OUT << "Lookup: " << (*ai).first
+               << " = " << (*ai).second->font_name_ << '\n';
     }
   DEBUG_OUT << "}\n";
 #endif
index 0c4aafee6697b6aa4187c71b005aca14a470ca5a..89c2d1a9e0ad51c65007809668fffb08652bab00 100644 (file)
@@ -11,7 +11,6 @@
 #include "lookup.hh"
 #include "rest.hh"
 #include "dots.hh"
-#include "axis-group-element.hh"
 #include "paper-score.hh"
 #include "staff-symbol-referencer.hh"
 
index 015fa2f9aa99ee7436c3cebc57aa760670a0d357..64d2bd4bdd6f716e4de9141be933f4038cf9c21b 100644 (file)
@@ -13,7 +13,6 @@
 #include "lookup.hh"
 #include "rest.hh"
 #include "dots.hh"
-#include "axis-group-element.hh"
 #include "paper-score.hh"
 #include "stem.hh"
 #include "staff-symbol-referencer.hh"
index 90009ffcd74905d5f4e382ae387c3de789fd9d82..551a050a2a29b4d7e940ef50413f6d36bf9d9005 100644 (file)
@@ -12,9 +12,6 @@
 #include "hash-table-iter.hh"
 
 
-#ifdef usestl
-
-
 Scheme_hash_table::Scheme_hash_table ()
 {
   self_scm_ = SCM_EOL;
@@ -130,104 +127,4 @@ Scheme_hash_table::to_alist () const
 IMPLEMENT_UNSMOB(Scheme_hash_table,scheme_hash);
 IMPLEMENT_SMOBS(Scheme_hash_table);
 
-#else
-Scheme_hash_table::Scheme_hash_table ()
-{
-  hash_func_ = ly_scm_hash;
-  self_scm_ = SCM_EOL;
-  smobify_self ();
-}
-
-void
-Scheme_hash_table::operator =(Scheme_hash_table const & src)
-{
-  Hash_table<SCM,SCM>::operator = (src);
-       
-  // we do not copy the self_scm_ field!
-}
-
-void
-Scheme_hash_table::do_smobify_self ()
-{
-}
-
 
-SCM
-Scheme_hash_table::mark_smob (SCM s)
-{
-  /*
-    can't typecheck naively, since GC bit lives in CAR of S
-   */
-  //assert (SMOB_IS_TYPE_B (Scheme_hash_table, s));
-  
-  Scheme_hash_table *me = SMOB_TO_TYPE(Scheme_hash_table,s);
-  for (Hash_table_iter<SCM,SCM> i (*me); i.ok(); i++)
-    {
-      scm_gc_mark (i.key());
-      scm_gc_mark (i.val ());
-    }
-  return SCM_EOL;
-}
-
-
-Scheme_hash_table::Scheme_hash_table (Scheme_hash_table const &src)
-  : Hash_table<SCM,SCM> (src)
-{
-  hash_func_ = src.hash_func_;
-  self_scm_ = SCM_EOL;
-  smobify_self ();
-}
-
-int
-Scheme_hash_table::print_smob (SCM s, SCM p, scm_print_state*)
-{
-  assert (SMOB_IS_TYPE_B (Scheme_hash_table, s));
-  char str[1000];
-  sprintf (str, "#<Scheme_hash_table 0x%0x ", s);
-  scm_puts (str, p);      
-  Scheme_hash_table *me = SMOB_TO_TYPE(Scheme_hash_table,s);
-  for (Hash_table_iter<SCM,SCM> i (*me); i.ok(); i++)
-    {
-      scm_display (i.key(), p);
-      scm_puts (" = ",p);      
-      scm_display (i.val (), p);
-      scm_puts ("\n",p);            
-    }
-  scm_puts ("> ",p);        
-  return 1;
-}
-
-
-void
-Scheme_hash_table::set (SCM k, SCM v)
-{
-  elem (k ) = v; 
-  scm_unprotect_object (v);
-}
-
-SCM
-Scheme_hash_table::get (SCM k)const
-{
-  return const_elem (k);
-}
-
-
-Scheme_hash_table::~Scheme_hash_table( )
-{
-  unsmobify_self ();
-}
-
-SCM
-Scheme_hash_table::to_alist () const
-{
-  SCM l = SCM_EOL;
-  for (Hash_table_iter<SCM,SCM> i (*this); i.ok(); i++)
-    l = gh_cons (gh_cons (i.key (), i.val()), l);
-  return l;  
-}
-
-
-#include "ly-smobs.icc"
-IMPLEMENT_UNSMOB(Scheme_hash_table,scheme_hash);
-IMPLEMENT_SMOBS(Scheme_hash_table);
-#endif
index 09c7ffd47fb9073c28844e412a8eef4b0071e0ee..15d490bca65693e3dc9de9ae341fbc8de06c1a35 100644 (file)
@@ -5,6 +5,7 @@
 
   (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
+
 #include "debug.hh"
 #include "dimension-cache.hh"
 #include "line-of-score.hh"
@@ -15,6 +16,7 @@
 #include "paper-column.hh"
 #include "command-request.hh"
 #include "paper-def.hh"
+#include "axis-group-interface.hh"
 
 Score_engraver::Score_engraver()
 {
@@ -80,7 +82,7 @@ Score_engraver::do_removal_processing()
 void
 Score_engraver::process()
 {
-  process_requests();
+  process_music();
   do_announces();
   pre_move_processing();
   check_removal();
@@ -145,14 +147,12 @@ Score_engraver::typeset_all()
          if (!elem_p->parent_l (X_AXIS))
            {
              bool br = to_boolean (elem_p->remove_elt_property ("breakable"));
-             if (br)
-               command_column_l_->add_element(elem_p);
-             else
-               musical_column_l_->add_element(elem_p);
+             Axis_group_interface gi ((br) ? command_column_l_ : musical_column_l_) ;
+             gi.add_element(elem_p);
            }
        }
       if (!elem_p->parent_l(Y_AXIS))
-       scoreline_l_->add_element (elem_p);
+       axis_group (scoreline_l_).add_element (elem_p);
     }
   elem_p_arr_.clear();
 }
index 4ba1a270fc3c29b596204d32f9aeb13bbd1b9eef..ad868ae9e3af77df8cd93ac8e467c67f3fa30c9c 100644 (file)
@@ -71,7 +71,7 @@ Score_performer::prepare (Moment m)
 void 
 Score_performer::process()
 {
-  process_requests();
+  process_music();
   do_announces ();
   pre_move_processing();
   check_removal();
index 787a22ac948cd17afd25130a4d09996afcbf24f0..7f556f08366090c8f514a8a198bec9b6a1006ffd 100644 (file)
@@ -93,18 +93,21 @@ Side_position_interface::side_position (Dimension_cache const * c)
       dim = Interval(0,0);
     }
 
-  Real off =  me->parent_l (axis)->relative_coordinate (common, axis);
-
-
   Direction dir = Side_position_interface (me).get_direction ();
     
-  SCM pad = me->remove_elt_property ("padding");
-  if (gh_number_p (pad))
+  Real off =  me->parent_l (axis)->relative_coordinate (common, axis);
+  SCM minimum = me->remove_elt_property ("minimum-space");
+
+  Real total_off = dim[dir] + off;
+  SCM padding = me->remove_elt_property ("padding");
+  if (gh_number_p (padding))
     {
-      off += gh_scm2double (pad) * dir;
+      total_off += gh_scm2double (padding) * dir;
+    }
+  if (gh_number_p (minimum) && total_off * dir < gh_scm2double (minimum))
+    {
+      total_off = gh_scm2double (minimum) * dir;
     }
-  Real total_off = dim[dir] + off;
-
   if (fabs (total_off) > 100 CM)
     programming_error ("Huh ? Improbable staff side dim.");
 
@@ -257,6 +260,18 @@ Side_position_interface::set_direction (Direction d)
   elt_l_->set_elt_property ("direction", gh_int2scm (d));
 }
 
+void
+Side_position_interface::set_minimum_space (Real m)
+{
+  elt_l_->set_elt_property ("minimum-space", gh_double2scm (m));
+}
+
+void
+Side_position_interface::set_padding (Real p)
+{
+  elt_l_->set_elt_property ("padding", gh_double2scm (p));
+}
+
 bool
 Side_position_interface::has_interface_b () const
 {
index 4aacb942480705d6f7c7dc665e53d42261a00376..7ed3c4a6c7dede5699f145fe91c63c0dad1a43e6 100644 (file)
@@ -53,21 +53,29 @@ void
 Span_bar::after_line_breaking ()
 {
   Bar::after_line_breaking ();
-  Interval i(get_spanned_interval ());
+  SCM s = get_elt_property ("collapse-height");
+  if (gh_number_p (s)
+      && get_spanned_interval ().length () < gh_scm2double (s))
+    {
+      set_elt_property ("transparent", SCM_BOOL_T);
+      set_empty (X_AXIS);
+      set_empty (Y_AXIS);   
+    }
 
+  Interval i (get_spanned_interval ());
   translate_axis (i.center (), Y_AXIS);
 }
 
 void
 Span_bar::evaluate_empty ()
 { 
-  if (!gh_pair_p (get_elt_property ("elements"))) 
-    {
-      set_elt_property ("transparent", SCM_BOOL_T);
-      set_empty (X_AXIS);
-      set_empty (Y_AXIS);   
-    }
-
+  if (!gh_pair_p (get_elt_property ("elements")))
+  {
+    set_elt_property ("transparent", SCM_BOOL_T);
+    set_empty (X_AXIS);
+    set_empty (Y_AXIS);   
+  }
+  
   SCM gl = get_elt_property ("glyph");
   if (!gh_string_p (gl))
     {
index 5a64f17922b74885d426058a40fc5c2314dc5d02..44b2547008b8e7c2e28eccd7d3265b4b3a0486c7 100644 (file)
@@ -30,7 +30,7 @@ public:
 protected:
   virtual bool do_try_music (Music* req_l);
   virtual void acknowledge_element (Audio_element_info);
-  virtual void do_process_requests ();
+  virtual void do_process_music ();
   virtual void do_pre_move_processing ();
   virtual void do_post_move_processing ();
 
@@ -68,7 +68,7 @@ Span_dynamic_performer::acknowledge_element (Audio_element_info i)
 }
 
 void
-Span_dynamic_performer::do_process_requests ()
+Span_dynamic_performer::do_process_music ()
 {
   if (finished_dynamic_tuple_arr_.size () > 1
      && finished_dynamic_tuple_arr_.top ().audio_l_->volume_i_)
index 98782a58da259b81111eb6243e6b2a769c8d3963..4e717788a0d0746bae98bc98bc06734f63b77a48 100644 (file)
@@ -43,6 +43,13 @@ Staff_group_bar_engraver::get_span_bar_p () const
   Span_bar *s= new Span_bar;
   s->set_empty (X_AXIS);
   s->set_elt_property ("glyph",  gh_str02scm ("bracket"));
+
+  SCM collapse = get_property ("bracketCollapseHeight");
+  if (gh_number_p (collapse))
+    s->set_elt_property ("collapse-height", collapse);
+  else
+    s->set_elt_property ("collapse-height", gh_double2scm (1));
+      
   return s;
 }
 
index ad69deef943190671c4744386da9e3d3dcdd083d..97b7a18a24055e383eb235b569e815ef8afe3dbb 100644 (file)
@@ -102,11 +102,9 @@ Text_engraver::do_process_music ()
       if (r->style_str_.length_i ())
        text->set_elt_property ("style", ly_str02scm (r->style_str_.ch_C()));
       
-      SCM empty = get_property ("textEmptyDimension");
-      if (to_boolean (empty))
-       {
-         text->set_empty (X_AXIS);
-       }
+      SCM empty = get_property ("textNonEmpty");
+      if (!to_boolean (empty))
+       text->set_empty (X_AXIS);
 
       announce_element (Score_element_info (text, r));
       texts_.push (text);
index ab2bb7c82f0c18a69808c72c9aaeb43c7f6919d8..2a071f2e9a9d31d27273deddb6d833f41aa216c8 100644 (file)
@@ -390,7 +390,7 @@ Translator_group::do_post_move_processing ()
 void
 Translator_group::do_process_music ()
 {
-  each (&Translator::process_requests);
+  each (&Translator::process_music);
 }
 
 void
index 4840b898c48c9b4736a734a50d14edaf962b15e8..9471666e8b4a94fe44b13e051a780514b8dbb3fc 100644 (file)
@@ -137,7 +137,7 @@ Translator::try_music (Music * r)
 }
 
 void
-Translator::process_requests ()
+Translator::process_music ()
 {
   if (status < PROCESSED_REQS)
     post_move_processing ();
index 46da33759686b50cd59595f040fa8890397a0036..2c2d48d9ad901edb1cc997a92a11c31f8b01a02a 100644 (file)
@@ -12,6 +12,7 @@
 #include "axis-align-spanner.hh"
 #include "axis-group-spanner.hh"
 #include "span-bar.hh"
+#include "axis-group-interface.hh"
 
 Vertical_align_engraver::Vertical_align_engraver()
 {
@@ -54,9 +55,11 @@ Vertical_align_engraver::qualifies_b (Score_element_info i) const
 {
   int sz = i.origin_trans_l_arr ((Translator*)this).size()  ;
 
-  Axis_group_element * elt = dynamic_cast<Axis_group_element *> (i.elem_l_);
 
-  return sz > 1 && elt && !elt->parent_l (Y_AXIS) && elt->axis_b (Y_AXIS);
+  Axis_group_interface agi(i.elem_l_);
+
+  return sz > 1 && agi.has_interface_b ()
+    && !i.elem_l_->parent_l (Y_AXIS) && agi.axis_b (Y_AXIS);
 }
 
 void
index 743609de93fdee1d8371a8ea0968f73ec03d27b1..79c1829824e7790865a5a3b41f5fa460133ed544 100644 (file)
 #include "stem.hh"
 #include "dimension-cache.hh"
 #include "group-interface.hh"
-
-
+#include "side-position-interface.hh"
+#include "directional-element-interface.hh"
 
 Volta_spanner::Volta_spanner ()
 {
-  dim_cache_ [Y_AXIS]->set_callback (dim_callback);
+  //dim_cache_ [Y_AXIS]->set_callback (dim_callback);
   set_elt_property ("bars", SCM_EOL);
-  set_elt_property ("note-columns", SCM_EOL);
+  side_position (this).set_axis (Y_AXIS);
+  directional_element (this).set (UP);
 }
 
-/*
-  FIXME: too complicated.
- */
 Molecule 
 Volta_spanner::do_brew_molecule () const
 {
@@ -43,9 +41,6 @@ Volta_spanner::do_brew_molecule () const
   if (!bar_arr.size ())
     return mol;
 
-  Link_array<Score_element> note_column_arr
-    = Group_interface__extract_elements (this, (Score_element*)0, "note-columns");
-  
   bool no_vertical_start = false;
   bool no_vertical_end = to_boolean (get_elt_property ("last-volta"));
   Spanner *orig_span =  dynamic_cast<Spanner*> (original_l_);
@@ -61,12 +56,11 @@ Volta_spanner::do_brew_molecule () const
 #endif
 
   Real staff_space = paper_l ()->get_var ("interline");
-  Real half_staff_space = staff_space/2;
-  Real t = paper_l ()->get_var ("volta_thick");
+  Real half_space = staff_space / 2;
 
-  Real dx = half_staff_space;
-  Real w = spanner_length() - dx - get_broken_left_end_align ();
+  Real w = spanner_length () - get_broken_left_end_align () - half_space;
   Real h = paper_l()->get_var ("volta_spanner_height");
+  Real t = paper_l ()->get_var ("volta_thick");
 
   SCM at = (gh_list (ly_symbol2scm ("volta"),
                     gh_double2scm (h),
@@ -75,33 +69,17 @@ Volta_spanner::do_brew_molecule () const
                     gh_int2scm (no_vertical_start),
                     gh_int2scm (no_vertical_end),
                     SCM_UNDEFINED));
-  Box b (Interval (- h/2, h/2),  Interval (0, w));
-  Molecule volta(b,at);
+  //Box b (Interval (0, w), Interval (- h/2, h/2));
+  Box b (Interval (0, w), Interval (0, h));
+  Molecule volta (b, at);
+  mol.add_molecule (volta);
   
   Molecule num (lookup_l ()->text ("volta",
                                   ly_scm2string (get_elt_property("text")),
                                   paper_l ()));
-  Real dy = bar_arr.top ()->extent (Y_AXIS) [UP] >? 
-     bar_arr[0]->extent (Y_AXIS) [UP];
-  dy += 2 * h;
-
-
-  /*
-    CODE DUPLICATION.
-    FIXME (see axis-group-elt, side-pos interface.)
-   */
-  for (int i = 0; i < note_column_arr.size (); i++)
-    dy = dy >? note_column_arr[i]->extent (Y_AXIS)[BIGGER];
-  dy -= h;
-
-  Molecule two (lookup_l ()->text ("volta", "2", paper_l ()));
-  Real gap = two.dim_.x ().length () / 2;
-  Offset off (num.dim_.x ().length () + gap, 
-             h / half_staff_space - gap);
-  num.translate (off);
-  mol.add_molecule (volta);
-  mol.add_molecule (num);
-  mol.translate (Offset (0, dy));
+
+  mol.add_at_edge (X_AXIS, LEFT, num, - num.extent (X_AXIS).length ()
+                  - staff_space);
   return mol;
 }
   
@@ -119,50 +97,25 @@ Volta_spanner::do_add_processing ()
     }
 }
 
-/*
-    Originally the following comment existed here
-    "in most cases, it's a lot better not no have height...",
-    but problems existed with collision between volta spanner
-    and above staff or lyrics for multi-staff music, so the proper
-    height is now being returned. Additional space should still
-    be added elsewhere so lyrics from above staff do not sit on
-    volta spanner. (Roy R. Rankin)
-*/
-Interval
-Volta_spanner::dim_callback (Dimension_cache const *c)
-{
-  Volta_spanner * v = dynamic_cast<Volta_spanner*> (c->element_l ());
-  Real h = v->paper_l()->get_var ("volta_spanner_height") * 2.;
-  return Interval (0., h);
-}
-
 void
 Volta_spanner::after_line_breaking ()
 {
-  Link_array<Bar> bar_arr
-    = Group_interface__extract_elements (this, (Bar*)0, "bars");
-  
-  if (bar_arr.size())
-    translate_axis (bar_arr[0]->extent (Y_AXIS)[UP], Y_AXIS);
-  translate_axis (get_broken_left_end_align (), X_AXIS);
+  side_position (this).add_staff_support ();
 }
   
 void
-Volta_spanner::add_bar  (Bar* c)
+Volta_spanner::add_bar  (Bar* b)
 {
   Group_interface gi(this, "bars");
-  gi.add_element (c);
+  gi.add_element (b);
 
-  add_dependency (c);
+  side_position (this).add_support (b);
+  add_dependency (b);
 }
 
 void
 Volta_spanner::add_column (Note_column* c)
 {
-  Group_interface gi(this, "note-columns");
-  gi.add_element (c);
-
+  side_position (this).add_support (c);
   add_dependency (c);
 }
-
-
index a97abe6d6e029ccf44329aaa868de1ac8b623e62..d5d4842896b8373dd770f87f0ee46c5010739587 100644 (file)
@@ -15,6 +15,9 @@ StaffContext=\translator {
        \consists "Bar_engraver";
  % Bar_engraver must be first so default bars aren't overwritten
 % with empty ones.
+
+       voltaPadding = #5  % urg, in \pt
+       voltaMinimumSpace = #25  % urg, in \pt
        \consists "Repeat_engraver";
 
 
@@ -100,6 +103,8 @@ RhythmicStaffContext=\translator{
        \consists "Separating_line_group_engraver";     
        \name RhythmicStaff;
 
+       voltaPadding = #5  % urg, in \pt
+       voltaMinimumSpace = #15  % urg, in \pt
        \consists "Repeat_engraver";
        \consists "Bar_engraver";
        \consists "Time_signature_engraver";
@@ -114,6 +119,8 @@ VoiceContext = \translator {
        \name Voice;
 
        dynamicPadding = #5  % urg, in \pt
+       dynamicMinimumSpace = #10  % urg, in \pt
+
        Generic_property_list = #generic-voice-properties
        \consists "Output_property_engraver";   
 
@@ -327,6 +334,7 @@ ScoreContext = \translator {
        \consists "Timing_engraver";
        \consists "Output_property_engraver";   
 
+       %bracketCollapseHeight = #10  % \pt
        \consists "Span_score_bar_engraver";
 %      \consists "Score_priority_engraver";
        \consists "Break_align_engraver";
index 132d0e8c84cb5af325eae5f07dc02c57257a13a1..37ba5b1252f72005aeddf3b84c9bdaeb0518e8a7 100644 (file)
@@ -14,7 +14,6 @@ StaffContext = \translator {
        \consists "Key_performer";
        \consists "Time_signature_performer";
        \consists "Tempo_performer";
-%      \consists "Span_dynamic_performer";
        dynamicStyle = #"dynamic"
 };
 \translator { \StaffContext }
@@ -43,7 +42,7 @@ VoiceContext = \translator {
        \type "Performer_group_performer";
        \name Voice;
 % All notes fall to Grace if you leave Thread out (huh?)
-       \consists "Dynamic_performer";   % must come before text_engraver.
+       \consists "Dynamic_performer";
        \consists "Span_dynamic_performer";
        \consists "Grace_position_performer";
        \accepts Thread;
index 801427b988ef72a97f212bc01b371f61155d4c4e..33ba9491ef06ad5a63a6933d67626d7469ee981e 100644 (file)
@@ -22,8 +22,8 @@ clarinetto1 = \notes \relative c {
        f4-. r r2 |
        e4-. r r2 |
        R1 *4 |
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        bes2\p\< ( a |
        )gis2. \!a4-.\f |
        R1*13 |
@@ -45,8 +45,8 @@ clarinetto1 = \notes \relative c {
        c2. c4\sf|
        c4 r r2|
        R1*5|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        a'2.\p\< ( bes4|
        a g e)c|
        c'2.( d4|
@@ -59,8 +59,8 @@ clarinetto1 = \notes \relative c {
        d~|
        d~|
        d|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        bes2.\<( c4|
        bes a fis)d|
        \!d'2\ff f|
@@ -142,8 +142,8 @@ clarinetto1 = \notes \relative c {
        )e2. f4\sf(|
        )e4 r r2|
        R1*9|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        fis2.\p\<(g4|
        fis e cis)a|
        \!a2\ff c|
@@ -162,8 +162,8 @@ clarinetto1 = \notes \relative c {
        r2 r4 d(|
        )cis r r2|
        r r4 r8 cis|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        d4\< r r2|
        r r4 r8 d|
        e4 r r r8 e|
@@ -196,18 +196,18 @@ clarinetto1 = \notes \relative c {
        d4 r8 g f4 r8 c|
        bes4 r r2|
        R1*11|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        f'2.\p\<(g4|
        f e cis)a|
        a1|
-       \!b\f~|
-       b|
+       \!bes\f~|
+       bes|
        c\f~|
        c\p|
        d\f~|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        d\p\<~|
        d~|
        d~|
@@ -237,8 +237,8 @@ clarinetto1 = \notes \relative c {
        R1|
        d4-. d-. r2|
        d4-. d-. r2|
-       \property Voice.decrescendoText = "dim."
-       \property Voice.decrescendoSpanner = "dashed-line"
+       \property VoiceOne.decrescendoText = "dim."
+       \property VoiceOne.decrescendoSpanner = "dashed-line"
        d4\> r e r|
        R1|
        \!a,4\p r r2|
index c63928dc0b8ee3e68793bade3ef3d3b753927b7e..acfad81c95d9c8eb0fef678689c20ab6403ee762 100644 (file)
@@ -51,8 +51,8 @@ clarinetto2 = \notes \relative c {
        d~|
        d|
        %a deux|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        bes'2.\<(c4|
        bes a fis)d|
        \!d'2\ff f,|
@@ -68,7 +68,7 @@ clarinetto2 = \notes \relative c {
        r4 r8 f f4\sf()a|
        r4 r8 f f4\sf()a|
        r4 r8 f f4\sf()a|
-       b2 gis|
+       bes2 gis|
        a fis|
        g f|
        b a|
@@ -98,7 +98,7 @@ clarinetto2 = \notes \relative c {
        a4 r8 a a4 r8 a|
        R1*4|
        %a deux|
-       b4\ff r8 es d4 r8 a|
+       bes4\ff r8 es d4 r8 a|
        g4 r8 c bes4 r8 f|
        es4 r8 a g4 r8 g|
        g4 r8 g fis4 r8 fis|
@@ -123,8 +123,8 @@ clarinetto2 = \notes \relative c {
        )e2. f4\sf(|
        )e4 r r2|
        R1*9|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        fis2.\p\<( g4|
        fis e cis)a|
        %a deux; urg|
@@ -171,8 +171,8 @@ clarinetto2 = \notes \relative c {
        c1\f~|
        c\p|
        a1\f|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        d,\p\<~|
        d~|
        d~|
@@ -204,8 +204,8 @@ clarinetto2 = \notes \relative c {
        R1|
        a4-. c-. r2|
        bes4-. c-. r2|
-       \property Voice.decrescendoText = "dim."
-       \property Voice.decrescendoSpanner = "dashed-line"
+       \property VoiceTwo.decrescendoText = "dim."
+       \property VoiceTwo.decrescendoSpanner = "dashed-line"
        bes4\> r a r|
        R1|
        \!a4\p r r2|
index 0df39bde3378fb970a94cc6293c3cf45344aeb54..eeb66e6349d9f30a12346ef9732d8cae15b19929 100644 (file)
@@ -152,8 +152,8 @@ contrabasso = \notes \relative c {
        )g,4 r r r8 g( |
        \!)d2\ff e' |
        dis b |
-       e4\p r r r8 e(|
-       )a4 r r r8 a(|
+       es4\p r r r8 es(|
+       )a,4 r r r8 a(|
 
        %200
        )g1 |
@@ -161,7 +161,7 @@ contrabasso = \notes \relative c {
        \skip 1*18; |
 
        %220
-       f4 r r2 |
+       f'4 r r2 |
        f'4 r r2 |
        f4 r r2 |
        f4 r r2 |
index 3d5c9577c8ecff805e156af34e7315f4d29db2e0..a7086cbe80816a997fed854ca89b646a01c459b2 100644 (file)
@@ -1,3 +1,3 @@
 \midi{ 
-       \tempo 4 = 160; 
+       \tempo 4 = 150; 
 }
index 9e735356fbd818995d0545ad6ebe502ee1274ca3..3defda7a5bc1f7bf694d4c90aaf5355ec9612719 100644 (file)
@@ -6,6 +6,11 @@
        % slurs are never beautiful (no steep slurs)
        slur_beautiful = 0.0;
 
+       \translator {
+               \VoiceContext
+               dynamicPadding = #3  % urg, in \pt
+               dynamicMinimumSpace = #6  % urg, in \pt
+       }
        \translator {
                \VoiceContext
                \name "VoiceOne";
                \accepts "VoiceOne";
                \accepts "VoiceTwo";
        }
+       \translator { 
+               \ScoreContext 
+               textEmptyDimension = ##t
+               textStyle = #"italic"
+       }
        \translator { \OrchestralScoreContext }
 }
index 3d21929758a95bf35f53b475890ddeb51e0339a6..f16655066b84931b3a2d820a412f8b398b23dea6 100644 (file)
@@ -5,10 +5,15 @@
        % slurs are never beautiful (no steep slurs)
        slur_beautiful = 0.0;
 
+       \translator {
+               \VoiceContext
+               dynamicPadding = #3  % urg, in \pt
+               dynamicMinimumSpace = #6  % urg, in \pt
+       }
        \translator {
                \VoiceContext
                \name "VoiceOne";
-               \consists "Line_number_engraver";
+               %%\consists "Line_number_engraver";
                verticalDirection = #1
                stemVerticalDirection = #1
                dynamicDirection = #-1
@@ -16,7 +21,7 @@
        \translator {
                \VoiceContext
                \name "VoiceTwo";
-               \consists "Line_number_engraver";
+               %%\consists "Line_number_engraver";
                verticalDirection = #-1
                stemVerticalDirection = #-1
                \remove "Dynamic_engraver";
@@ -33,5 +38,9 @@
                maximumRestCount = #1
        }
        \translator { \OrchestralPartStaffContext }
-       \translator { \ScoreContext skipBars = ##t }
+       \translator { 
+               \ScoreContext skipBars = ##t 
+               textEmptyDimension = ##t
+               textStyle = #"italic"
+       }
 }
index 6059c4839348bbb10403a8940b214ccb7cebb3ea..453fc314a5d34bac8aa7d370819b19076c0f7fa6 100644 (file)
@@ -43,7 +43,7 @@ ottoni = \context StaffGroup = otonni_group <
 $timpani_g = \context StaffGroup = timpani_group <
        \$timpani_staff
        % Force a staff bracket (?)
-       \context Staff = timpany { \skip 1; }
+       \context Staff = timpany { \skip 1*314; }
 >
 
 violini = \context GrandStaff = violini_group <
index 56f44b218ad3cce019ce9328d640d464cee7524d..efaf24e060bc6d3bd64dc9e58e4dddef95cecea6 100644 (file)
@@ -25,8 +25,8 @@ corno1 = \notes \relative c {
        r4 g-.\f r2 |
        R1*2 |
        % `a 2
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        r8 f\p\< f2 e4 |
        r8 f f2 e4 |
        f4. e8 f4. e8 |
@@ -172,8 +172,8 @@ corno1 = \notes \relative c {
        e~|
        e~|
        e~|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        e\<~|
        e~|
        e|
index f41c2d0dc354b0a2af4151b3de1cd5bf47e5da45..71b0d44526c1a4e3f346f04f42eb92d583242390 100644 (file)
@@ -26,8 +26,8 @@ corno2 = \notes \relative c {
        R1*2 |
        % `a 2
        % urg, yes this is a-deux, but lily doesn't know about I. / a2 yet.
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        r8 f'\p\< f2 e4 |
        r8 f f2 e4 |
        f4. e8 f4. e8 |
@@ -97,7 +97,7 @@ corno2 = \notes \relative c {
        d4\f r r2|
        g,4 r r2|
        g4 r8 g g4 r8 g|
-       g4 r8 g g'4 r8 g|
+       g4 r8 g e'4 r8 e|
        d4\p r r2|
        R1*3|
        d4\ff r c r|
@@ -129,8 +129,8 @@ corno2 = \notes \relative c {
        e~|
        e~|
        e~|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        e\<~|
        e~|
        e~|
@@ -142,8 +142,8 @@ corno2 = \notes \relative c {
        %a deux|
        r4 r8 e,\p e4. e8|
        r4 r8 e e4. e8|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        r4 r8 e\< e4. e8|
        r4 r8 e e4. e8|
        r4 r8 e e4. e8|
@@ -189,8 +189,8 @@ corno2 = \notes \relative c {
        e~|
        e~|
        e~|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        e\<~|
        e~|
        e|
index 0a698b46798c80dc0ce301f26dd0192f246b3f35..05de181984345ad76429f08cfd86532eca3c77b7 100644 (file)
@@ -24,14 +24,14 @@ fagotto1 = \notes \relative c {
        R1*5 |
        r2 r4 g4-.\f |
        R1*5 |
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        ges'2\p\< f2 ~ |
        f4 \!e-.\f r2 |
        R1 |
        f2\p()es |
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        d1\< |
        d |
        d2 d |
@@ -54,8 +54,8 @@ fagotto1 = \notes \relative c {
        )d4 r r2|
        R1*9|
        \clef "tenor";
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        g'2.(as4 \p\<|
        g f d)bes
        \clef "bass";
@@ -66,8 +66,8 @@ fagotto1 = \notes \relative c {
        c~|
        c~|
        c~|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        c\<~|
        c|
        \!c2\ff bes|
@@ -80,8 +80,8 @@ fagotto1 = \notes \relative c {
        bes(a bes)g|
        fis r8 a\pp a4. a8|
        r4 r8 a a4. a8|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        r4 r8 bes\< bes4. bes8|
        r4 r8 bes bes4. bes8|
        r4 r8 c8 c4. c8|
@@ -129,8 +129,8 @@ fagotto1 = \notes \relative c {
        e4 r r2|
        R1*3|
        r4 r8 f' es4 r8 bes|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        c4\< r4 r2|
        R1*2|
        r4 r8 ges' f4 r8 c|
@@ -149,8 +149,8 @@ fagotto1 = \notes \relative c {
        [g,: bes: c: des:][f,: bes: c: des:]||
        [e,: g: bes: des:][c: e: g: c:]||
 
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        c1\p\< ~|
        c1~|
        c1~|
@@ -217,8 +217,8 @@ fagotto1 = \notes \relative c {
        es(d es)c|
        b r8 d\p d4. d8|
        r4 r8 d d4. d8|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        r4 r8 es\< es4. es8|
        r4 r8 es es4. es8|
        r4 r8 %
@@ -259,8 +259,8 @@ fagotto1 = \notes \relative c {
        es d b)g|
        g'2.(as4|
        g2)f|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        es2.\<( f4|
        es d b)g|
        R1|
@@ -269,8 +269,8 @@ fagotto1 = \notes \relative c {
        d\f|
        es\p|
        e\f|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        as,4.\p\< as8 g4. g8|
        f4. f8 es4. es8|
        as4. as8 g4. g8|
@@ -306,8 +306,8 @@ fagotto1 = \notes \relative c {
        R1|
        g,4-. g-. r2|
        as4-. bes-. r2|
-       \property Voice.decrescendoText = "dim."
-       \property Voice.decrescendoSpanner = "dashed-line"
+       \property VoiceOne.decrescendoText = "dim."
+       \property VoiceOne.decrescendoSpanner = "dashed-line"
        c4\> r d r|
        R1|
        \!c,4\p r r2|
@@ -315,8 +315,8 @@ fagotto1 = \notes \relative c {
        g4 r r2|
        R1|
        c4\pp r r2|
-       \property Voice.decrescendoText = "sempre pi\\`u piano"
-       \property Voice.decrescendoSpanner = ""
+       \property VoiceOne.decrescendoText = "sempre pi\\`u piano"
+       \property VoiceOne.decrescendoSpanner = ""
        r r4 g\p\>~|
        g1~|
        g~|
index fc958dd74a61e83ff3142c297c2f380d6a590f03..165e89d3bec4e36e23288b56a952a26faeea8ca3 100644 (file)
@@ -43,8 +43,8 @@ fagotto2 = \notes \relative c {
        )d4 r r2|
        R1*9|
        \clef "tenor";
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        g''2.(as4 \p\<||
        g f d)bes||
        \clef "bass";
@@ -55,14 +55,14 @@ fagotto2 = \notes \relative c {
        c~|
        c~|
        c~|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        c\<~|
        c|
        \!c2\ff g'|
        fis d|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        g,4 \p\< r r r8 g(|
        )c4 r r r8 c(|
        \!)b1\sf\>|
@@ -70,8 +70,8 @@ fagotto2 = \notes \relative c {
        R1*2|
        r4 r8 fis\pp fis4. fis8|
        r4 r8 fis fis4. fis8|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        r4 r8 g\< g4. g8|
        r4 r8 g g4. g8|
        r4 r8 a a4. a8|
@@ -130,8 +130,8 @@ fagotto2 = \notes \relative c {
        e|
        f|
        g|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        as\<|
        g|
        as|
@@ -191,8 +191,8 @@ fagotto2 = \notes \relative c {
        g~|
        g~|
        g~|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        g\<~|
        g~|
        g~|
@@ -205,8 +205,8 @@ fagotto2 = \notes \relative c {
        a~|
        a~|
        a~|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        a\<~|
        a|
        \!f'2\ff e|
@@ -219,8 +219,8 @@ fagotto2 = \notes \relative c {
        R1*3|
        r4 r8 b'' b4. b8|
        r4 r8 b b4. b8|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        r4 r8 c\< c4. c8|
        r4 r8 c c4. c8|
        \clef "tenor";
@@ -269,8 +269,8 @@ fagotto2 = \notes \relative c {
        g\p|
        bes\f|
        %a deux|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        as4.\p\< as8 g4. g8|
        f4. f8 es4. es8|
        as4. as8 g4. g8|
@@ -307,8 +307,8 @@ fagotto2 = \notes \relative c {
        R1|
        es,4-. e-. r2|
        f4-. g-. r2|
-       \property Voice.decrescendoText = "dim."
-       \property Voice.decrescendoSpanner = "dashed-line"
+       \property VoiceTwo.decrescendoText = "dim."
+       \property VoiceTwo.decrescendoSpanner = "dashed-line"
        as4\> r b r|
        R1|
        %a deux|
index 484f5e13370aff00ae55672ab9ead69bc7a4037b..fb64ff1d5f7edaaaf16d3f362304498b9b222770 100644 (file)
@@ -20,19 +20,19 @@ flauto1 = \notes \relative c {
        g4-. r r2 |
        b,4-. r r2 |
        R1 *4 |
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        r2 g'\p\< ( |
        )fis2. \!g4-.\f |
        R1*5 |
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        r2 f\p\< ~ |
        f4 \!e-.\f r2 |
        R1 |
-       f2()es |
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       f2\p()es |
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        d1\<  |
        d1 |
        d2 d2 |
@@ -55,22 +55,24 @@ flauto1 = \notes \relative c {
        )f2. ges4\sf|
        f4 r r2 |
        R1*9|
-       g2.(f4|
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
+       g2.\p\<(f4|
        as g d)bes
-       bes2\ff des|
+       \!bes2\ff des|
        c1~|
        c\p~|
        c~|
        c~|
        c~|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        c\<~|
        c~|
        \!c2\ff es|
        d1~|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        d\p\<~|
        d~| 
        d2.()f4|
@@ -80,8 +82,8 @@ flauto1 = \notes \relative c {
        \!fis\pp r r2|
        r2 r4 r8 a|
        bes4 r r2|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        r r4 r8 bes\<|
        c4 r r r8 c |
        d4 r r r8 d|
@@ -127,8 +129,8 @@ flauto1 = \notes \relative c {
        r4 r8 f' es4 r8 bes|
        c4 r r2|
        R1*2|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = ""
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = ""
        r4 r8 ges'\< f4 r8 c|
        des4 r r2|
        R1*5|
@@ -137,13 +139,13 @@ flauto1 = \notes \relative c {
        bes4 r8 e f4 r8 f|
        g4 r8 g e4 r8 e|
        R1*4|
-       as,4\ff r8 des8 c4 r8 g|
+       \!as,4\ff r8 des8 c4 r8 g|
        f4 r8 bes as4 r8 es|
        des4 r8 g f4 r8 f'|
        f4 r8 f e4 r8 e|
        f4 r r2|
        R1|
-       \!des4-.\ff r r2|
+       des4-.\ff r r2|
        R1*3|
        d2\sf r|
        d2\sf r|
@@ -162,15 +164,15 @@ flauto1 = \notes \relative c {
        )d2. es4\sf(|
        )d r r2|
        R1*9|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        e2.\p\<(f4|
        e d b )g|
        \!g2\ff bes|
        a1~a4\p r r2|
        R1*3|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        a1\<~|
        a|
        \!a2\ff c|
@@ -204,17 +206,17 @@ flauto1 = \notes \relative c {
        f4 r as r|
        f r g r|
        c,\p r r2|
-       r r4 r8 des\f|
+       r r4 r8 d\f|
        es4 r r2|
-       r r4 r8 des\f|
+       r r4 r8 d\f|
        es4 r r2|
        R1*3|
        es4\f r d r |
        c r8 f8 es4 r8 bes|
        as4-. des4-. r2|
        R1*11|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        es2.\p\<(f4|
        es d b)g|
        g1|
@@ -253,8 +255,8 @@ flauto1 = \notes \relative c {
        R1|
        c4-. c4-. r2|
        c4-. c4-. r2|
-       \property Voice.decrescendoText = "dim."
-       \property Voice.decrescendoSpanner = "dashed-line"
+       \property VoiceOne.decrescendoText = "dim."
+       \property VoiceOne.decrescendoSpanner = "dashed-line"
        c4\> r d r|
        R1|
        \!es4\p r r2|
index d4cc025a6dcb75a5150f9ea34ca61388f568087a..f1b70a133a0174abf3b7172e86649c0825f90c9f 100644 (file)
@@ -77,10 +77,10 @@ flauto2 = \notes \relative c {
        R1*21|
        f4\f r r r8 es|
        des4 r r r8 c|
-       bes4 r8 bes bes4 r8 bes|
+       bes4 r8 bes' bes4 r8 bes|
        bes4 r8 bes bes4 r8 bes|
        R1*4|
-       as4\ff r8 des c4 r8 g|
+       as,4\ff r8 des c4 r8 g|
        f4 r8 bes as4 r8 es|
        des4 r8 g f4 r8 as'|
        g4 r8 g g4 r8 g|
@@ -129,8 +129,8 @@ flauto2 = \notes \relative c {
        bes\f~|
        bes\p|
        c1\f~|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        c\p\<~|
        c~|
        c~|
@@ -164,8 +164,8 @@ flauto2 = \notes \relative c {
        R1|
        c4-. g'-. r2|
        as4-. e-. r2|
-       \property Voice.decrescendoText = "dim."
-       \property Voice.decrescendoSpanner = "dashed-line"
+       \property VoiceTwo.decrescendoText = "dim."
+       \property VoiceTwo.decrescendoSpanner = "dashed-line"
        f4\> r f r|
        R1|
        \!es4\p r r2|
index 6a08addc60899cfd3554e9bb0f69501e50ae6545..d652792f9f05347d7c1d49618ddf87bc9d936992 100644 (file)
@@ -20,19 +20,19 @@ oboe1 = \notes \relative c'' {
        g4-. r r2 |
        g4-. r r2 |
        R1 *4 |
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        as2\p\< ( g |
        )fis2. \!g4-.\f |
        R1*5 |
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        ges2\p\<  f ~ |
        f4 \!e\f r2 |
        R1 |
        f2\p()es |
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        d1\< |
        d |
        d2 d |
@@ -55,22 +55,22 @@ oboe1 = \notes \relative c'' {
        )f2. ges4(|
        )f4 r r2|
        R1*9|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        g2.\p\<( as4|
        g f d)bes|
        \!bes'2\ff des|
        c bes|
        as4\p r r2|
        R1*3|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        as2.\p\<( bes4|
        as g e)c|
        \!c'2\ff es,|
        d1~|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        d\p\< ~|
        d~|
        \!d2.\sf\>()f4|
@@ -80,8 +80,8 @@ oboe1 = \notes \relative c'' {
        fis\pp r r2|
        r r4 r8 fis' |
        g4 r r2|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        r r4 r8 g\<|
        a4 r r r8 a|
        bes4 r r r8 bes|
@@ -127,8 +127,8 @@ oboe1 = \notes \relative c'' {
        des4 r r r8 c|
        bes4 r8 es f4 r8 f|
        g4 r8 g e4 r 8 e|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        c'1\p\< ~|
        c~|
        c~|
@@ -158,8 +158,8 @@ oboe1 = \notes \relative c'' {
        )g2. fis4\sf(|
        )g4 r r2|
        R1*5|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        e2.\p\< (f4|
        e d b)g|
        g'2.(a4 g2)f|
@@ -171,8 +171,8 @@ oboe1 = \notes \relative c'' {
        a~|
        a~|
        a|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        f2.\<( g4|
        f e cis)a|
        \!a'2\ff c|
@@ -187,8 +187,8 @@ oboe1 = \notes \relative c'' {
        es(d es)c|
        b r r2|
        r r4 r8 d|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        es4\< r r2|
        r r4 r8 es|
        f4 r r r8 f|
@@ -224,8 +224,8 @@ oboe1 = \notes \relative c'' {
        es d b)g|
        g'2.(as4|
        g2)f|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        es2.\<( f4|
        es d b)g|
        c1|
@@ -234,8 +234,8 @@ oboe1 = \notes \relative c'' {
        f\f|
        g\p|
        g\f|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        c\p\<~|
        c~|
        c~|
index dc32f60845d663fc95273f6626c3627b9e1daf5d..32870617b330ab6f9f2557fb629fe18382ed55f2 100644 (file)
@@ -76,8 +76,8 @@ oboe2 = \notes \relative c{
        bes4 r8 bes bes4 r8 bes|
        bes4\p r r2|
        R1*15|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        r4 r8 as'\< ges4 r8 des|
        es4 r8 bes' as4 r8 es|
        f4 r r2|
@@ -87,8 +87,8 @@ oboe2 = \notes \relative c{
        des4 r r r8 c|
        bes4 r8 bes bes4 r8 bes|
        bes4 r8 bes bes4 r8 bes|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        c1\p\< ~||
        c~|
        c~|
@@ -152,8 +152,8 @@ oboe2 = \notes \relative c{
        d\f|
        es\p|
        e\f|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        c\p\< ~|
        c~|
        c~|
@@ -185,8 +185,8 @@ oboe2 = \notes \relative c{
        R1|
        c4-. c-. r2|
        c4-. c-. r2|
-       \property Voice.decrescendoText = "dim."
-       \property Voice.decrescendoSpanner = "dashed-line"
+       \property VoiceTwo.decrescendoText = "dim."
+       \property VoiceTwo.decrescendoSpanner = "dashed-line"
        c4\> r d r|
        R1|
        \!c4\p r r2|
index d000a5c929c5ec1a3397801cd11298f0f8f96a5e..bd5acb4455d4d5bc393d1a7c24bee82d5520a4f4 100644 (file)
@@ -153,7 +153,7 @@ $timpani_staff = \context Staff = timpani <
        \notes< 
 %              \global
                \time 4/4;
-               \context VoiceOne=timpani
+               \context Voice=timpani
                        \$timpani
        >
 >
index d4b5b418b389bba0e2d5cf955d989f135a1d6b1f..a3c1300de7bf5af06663f5b314f3002fcbd74ff0 100644 (file)
@@ -24,8 +24,8 @@ trombo1 = \notes \relative c {
        R1*6 |
        r4 c-.\f r2 |
        R1*2 |
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        r2 c4\p\< r |
        r2 c4 r |
        r2 c4 r |
@@ -116,8 +116,8 @@ trombo1 = \notes \relative c {
        c4 r r2|
        R1*18|
        e1\f(|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceOne.crescendoText = "cresc."
+       \property VoiceOne.crescendoSpanner = "dashed-line"
        )c\p\< ~|
        c~|
        c~|
@@ -149,8 +149,8 @@ trombo1 = \notes \relative c {
        R1|
        c4-. c-. r2|
        c4-. c-. r2|
-       \property Voice.decrescendoText = "dim."
-       \property Voice.decrescendoSpanner = "dashed-line"
+       \property VoiceOne.decrescendoText = "dim."
+       \property VoiceOne.decrescendoSpanner = "dashed-line"
        c4\> r g r|
        R1|
        \!g4\p r r2|
index 8f2be3458ad909cc199d849b3d96c86a4530746b..658fb7a8bfd3d853a3e9b4278e5a25523d85115f 100644 (file)
@@ -24,8 +24,8 @@ trombo2 = \notes \relative c {
        R1*6 |
        r4 c-.\f r2 |
        R1*2 |
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        r2 c4\p\< r |
        r2 c4 r |
        r2 c4 r |
@@ -116,8 +116,8 @@ trombo2 = \notes \relative c {
        c4 r r2|
        R1*18|
        c1\f~|
-       \property Voice.crescendoText = "cresc."
-       \property Voice.crescendoSpanner = "dashed-line"
+       \property VoiceTwo.crescendoText = "cresc."
+       \property VoiceTwo.crescendoSpanner = "dashed-line"
        c\p\< ~|
        c~|
        c~|
@@ -149,8 +149,8 @@ trombo2 = \notes \relative c {
        R1|
        c,4-. c-. r2|
        c4-. c-. r2|
-       \property Voice.decrescendoText = "dim."
-       \property Voice.decrescendoSpanner = "dashed-line"
+       \property VoiceTwo.decrescendoText = "dim."
+       \property VoiceTwo.decrescendoSpanner = "dashed-line"
        c4\> r g r|
        R1|
        \!g4\p r r2|
index 8ce909a15f5369c7edb7b08342b648e3d890328e..d288e3212a7f07df46fd98113b17c56a610a0085 100644 (file)
@@ -236,9 +236,9 @@ viola1 = \notes \relative c {
        %155
        f,1 ~ |
        f |
-       d'2\sf [g,8-. bes-.][bes()as] |
+       d'2\sf [f,8-. as-.][as()g] |
        
-       es'2\sf [g,8-. bes-.][bes()as] |
+       d'2\sf [f,8-. as-.][as()g] |
        % ugh, should be quoted and transposed...
        %160
        [f8-.\p as-.][as()f][g-. c-.][c()b] |
@@ -247,7 +247,7 @@ viola1 = \notes \relative c {
        g2\ff [es8-. g-.][g()f] |
        g2\sf [es8-. g-.][g()f] |
        %165
-       [e-. bes'-.][bes()as][g-. des'-.][des()c] |
+       [e-.\p bes'-.][bes()as][g-. des'-.][des()c] |
        R1*2 |
        r4 [e,8-.\ff g-.][g()f] r4 |
        r4 [e8-. g-.][g()f] r4 |
@@ -318,21 +318,21 @@ viola1 = \notes \relative c {
        g'2: g: |
        
        %214
-       b,2:16\ff b4: c: |
+       bes,2:16\ff bes4: c: |
        g'2: g: |
        
        e2:16\ff e4: f: |
-       b,: c: b: c: |
+       bes,: c: bes: c: |
        
        e2:16\ff e4: f: |
        b,: c: b: c: |
        
        %220
-       r4 r8 es8 es4\sf()fes |
-       r4 r8 es8 es4\sf()fes |
-       r4 r8 es8 es4\sf()fes |
-       r4 r8 es8 es4\sf()fes |
-       [des16 des f f]des4: [b16 b d d]b4: |
+       r4 r8 as as2|
+       r4 r8 as as2|
+       r4 r8 as as2|
+       r4 r8 as as2|
+       [des'16 des f f]des4: [b16 b d d]b4: |
        %225
        % check
        [bes16 bes c c]bes4: [a16 a c c]a4: |
index 3938fc528bd34af259c111ad92f35da1d3f654bd..f9cd07a6d3a9316a876415cda7ebdecf3b7d1a3d 100644 (file)
@@ -212,7 +212,7 @@ violino1 = \notes \relative c {
        f4\f r8 bes as4 r8 es |
        des4 r8 ges f4 r8 c |
        bes4 r8 e f4 r8 bes, |
-       bes4 r8 g'! es4 r8 bes' |
+       bes4 r8 g'! e4 r8 bes' |
        \property Voice.crescendoText = "cresc."
        \property Voice.crescendoSpanner = "dashed-line"
        as4\p r8 des\< c4 r8 g |
index 6134ce7a324b5774c8ade605351a208ff66f8dc5..41ef2e4a8a12959614b9d36b0998c54b710e618f 100644 (file)
@@ -213,7 +213,7 @@ violino2 = \notes \relative c {
        f4\f r8 bes as4 r8 es |
        des4 r8 ges f4 r8 c |
        bes4 r8 e f4 r8 bes, |
-       bes4 r8 g'! es4 r8 bes' |
+       bes4 r8 g'! e4 r8 bes' |
        \property Voice.crescendoText = "cresc."
        \property Voice.crescendoSpanner = "dashed-line"
        as4\p r8 des\< c4 r8 g |
index 27f80fbbc8967e026426a7b308c3ef29632c4892..578ceb41d155c294c508f9a6f296e9e9fe93e53e 100644 (file)
@@ -414,7 +414,7 @@ violoncello = \notes \relative c {
        g,4. g'8 g2\sf |
        g,4. g'8 g2\sf |
        as,4. as'8 as2\sf |
-       a,4. a'8 a2\sf |
+       b,4. b'8 b2\sf |
        
        %270
        [c,8-"sempre"\ff b c d][es\ff d es c]|
index a71efc94d3319865071564959660b01a651ddd0a..dc20e838cc1553a4d9bc300f7713ec48815c827d 100644 (file)
@@ -57,6 +57,7 @@
                     (list 'verticalDirection dir? 'direction)
                     (list 'dynamicDirection dir? 'direction)
                     (list 'dynamicPadding number? 'padding) 
+                    (list 'dynamicMinimumSpace number? 'minimum-space) 
                     )))
   
 (define generic-dynamic-line-spanner-properties
                     (list 'verticalDirection dir? 'direction)
                     (list 'dynamicDirection dir? 'direction)
                     (list 'dynamicPadding number? 'padding) 
+                    (list 'dynamicMinimumSpace number? 'minimum-space) 
+                    )))
+  
+(define generic-volta-spanner-properties
+  (cons "Volta_spanner" (list
+                    (list 'voltaVerticalDirection dir? 'direction)
+                    (list 'voltaPadding number? 'padding) 
+                    (list 'voltaMinimumSpace number? 'minimum-space) 
                     )))
   
 (define generic-bar-properties
    generic-clef-properties
    generic-collision-properties
    generic-rest-collision-properties
+   generic-volta-spanner-properties
 ;   generic-staff-symbol-properties
    generic-All-properties      
    )
index ede540b40bbe600abeb43234b535990b7580187a..7714a5695c0b7ec9afb5ef4a5e3d91b3c619696c 100644 (file)
@@ -414,6 +414,18 @@ if 1:
 
        conversions.append ((1,3,18), conv, 'staffLineLeading -> staffSpace')
 
+if 1:
+       def conv (str):
+               str = re.sub ('textEmptyDimension *= *##t',
+                             'textNonEmpty = ##f',
+                             str)
+               str = re.sub ('textEmptyDimension *= *##f',
+                             'textNonEmpty = ##t',
+                             str)
+               return str
+
+       conversions.append ((1,3,35), conv, 'textEmptyDimension -> textNonEmpty')
+
 ############################