]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.3.29 release/1.3.29
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 2 Mar 2000 18:13:13 +0000 (19:13 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 2 Mar 2000 18:13:13 +0000 (19:13 +0100)
===========

* Moved Slur-specific code from Bezier_bow to Slur and Slur_bezier_bow.
  Slurs are now calculated just once.

1.3.28.j

104 files changed:
CHANGES
Documentation/index.texi
Documentation/topdocs/index.tely
TODO
VERSION
input/test/bar-script-visibility.ly [new file with mode: 0644]
input/test/sleur.ly
input/test/slur-area.fly [deleted file]
input/test/slur-area.ly [new file with mode: 0644]
lily/all-font-metrics.cc
lily/atom.cc
lily/bar-number-engraver.cc
lily/bar-script-engraver.cc
lily/bar.cc
lily/base-span-bar-engraver.cc
lily/beam.cc
lily/bezier-bow.cc
lily/bezier.cc
lily/breathing-sign.cc
lily/chord-name.cc
lily/clef-engraver.cc
lily/crescendo.cc
lily/dots.cc
lily/extender-spanner.cc
lily/font-metric.cc
lily/hyphen-spanner.cc
lily/include/atom.hh
lily/include/bar.hh
lily/include/beam.hh
lily/include/bezier-bow.hh
lily/include/bezier.hh
lily/include/breathing-sign.hh
lily/include/chord-name.hh
lily/include/crescendo.hh
lily/include/dots.hh
lily/include/extender-spanner.hh
lily/include/hyphen-spanner.hh
lily/include/key-item.hh
lily/include/lily-guile.hh
lily/include/local-key-item.hh
lily/include/ly-smobs.icc
lily/include/molecule.hh
lily/include/multi-measure-rest.hh
lily/include/note-head.hh
lily/include/paper-outputter.hh
lily/include/rest.hh
lily/include/score-element.hh
lily/include/script.hh
lily/include/slur.hh
lily/include/span-bar.hh
lily/include/staff-symbol.hh
lily/include/stem-tremolo.hh
lily/include/stem.hh
lily/include/text-item.hh
lily/include/tie.hh
lily/include/time-signature.hh
lily/include/tuplet-spanner.hh
lily/include/volta-spanner.hh
lily/key-engraver.cc
lily/key-item.cc
lily/lily-guile.cc
lily/local-key-item.cc
lily/lookup.cc
lily/mark-engraver.cc
lily/molecule.cc
lily/moment.cc
lily/multi-measure-rest.cc
lily/note-head.cc
lily/paper-outputter.cc
lily/rest.cc
lily/scm-hash.cc
lily/score-element.cc
lily/script.cc
lily/slur.cc
lily/span-bar.cc
lily/staff-margin-engraver.cc
lily/staff-symbol-engraver.cc
lily/staff-symbol.cc
lily/stem-tremolo.cc
lily/stem.cc
lily/text-item.cc
lily/tie.cc
lily/time-signature.cc
lily/tuplet-spanner.cc
lily/volta-spanner.cc
ly/engraver.ly
ly/params-as.ly
ly/params.ly
make/out/lilypond.lsm
make/out/lilypond.spec
make/toplevel.make.in
mutopia/GNUmakefile
mutopia/N.W.Gade/GNUmakefile [deleted file]
mutopia/N.W.Gade/README [deleted file]
mutopia/N.W.Gade/brass.ly [deleted file]
mutopia/N.W.Gade/global.ly [deleted file]
mutopia/N.W.Gade/global.tex [deleted file]
mutopia/N.W.Gade/parts.ly [deleted file]
mutopia/N.W.Gade/score.ly [deleted file]
mutopia/N.W.Gade/strings.ly [deleted file]
mutopia/N.W.Gade/wood.ly [deleted file]
scm/generic-property.scm
scm/lily.scm
scm/paper.scm

diff --git a/CHANGES b/CHANGES
index cab708ae46f8e6990f45b5978ab7f520e3edbef0..d992a22dfa85e3d3839751759e0bbeb216448baf 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,10 +1,44 @@
-1.3.28.jcn1
+1.3.28.jcn4
 ===========
 
+* Moved Slur-specific code from Bezier_bow to Slur and Slur_bezier_bow.
+  Slurs are now calculated just once.
+
+1.3.28.jcn3
+===========
+
+* Bezier_bow gets constants from paper.  Still no sensible solution for
+  magic asymmetry gradient step constants.
+
+* Reinstantiated tangent-controls, more flexible than ever.  You can choose
+  between area asymmetry and tangent-controls.  My guess is, tangent controls
+  will be junked in 1.3.30.
+
+1.3.28.jcn2
+===========
+
+* Slur area: only look at x-gradient.
+
+* Added credits for some symbols of as5/9 fonts.
+
 * Bugfix: don't make almost flat slurs, change in de-uglyfy slur.  
 
 * Bugfix: midi2ly put out recent version (ugh).
 
+1.3.28.hwn2
+===========
+
+* Bugfix: don't forget to process staffSpace and numberOfStaffLines
+properties.
+
+* Removed Gade score. To appear (shortly?) on Mutopia. 
+
+* Make Bar_script_engraver look for typeVisibilityFunction (eg
+property barNumberVisibilityFunction). Changed the names of the Scheme
+functions to be understandable. See input/test/bar-script-visibility.ly
+
+* rewrite of class Molecule. It has now reached the ultimate quality
+plateau. All molecule data is now shared.
 
 1.3.28
 ======
index da0c1053fbcf1dd0a7ba2e731b4cfb8cafc9b37a..4d38ca8c4da1f1e40ab44bd363cf41ad58a790f5 100644 (file)
@@ -30,7 +30,8 @@ integrating text and music in LaTeX and texinfo; also available in
 @uref{../user/out-www/mudela-book.ps.gz,Postscript}
 @item @uref{../programmer/out-www/index.html,Programmer documentation}
 @item @uref{../bibliography/out-www/index.html,Bibliography}
-@item @uref{../misc/out-www/index.html,Miscellaneous texts}
+@item @uref{../misc/out-www/index.html,Miscellaneous texts}:
+announcements and change logs for old versions; background information.
 @end itemize
 
 
index e1211293a7edad2497faf4c5f01e44ee25668f01..c3aff45b14d29ddf3c0a99d4c20439ab7fe1a017 100644 (file)
@@ -99,7 +99,7 @@ in PostScript, and LilyPond input.
 Others use LilyPond too.
 @uref{http://www.geocities.com/Vienna/Studio/1714/harpsichord.html,John
 Sankey}, harpsichordist to the internet, is typesetting the complete
-@uref{http://www.geocities.com/Vienna/Studio/1714/scarlattidwn.html/,sonatas
+@uref{http://www.geocities.com/Vienna/Studio/1714/scarlattidwn.html,sonatas
 by Scarlatti}. Jeff Covey, guitar player and overall nice guy, is
 putting @uref{http://www4.smart.net/~jcovey/scores/,guitar music} on the
 net. The @uref{http://sca.uwaterloo.ca/Mutopia/,Mutopia project} is a
@@ -168,9 +168,17 @@ Frequently Asked Questions} first.)
 
 @item bug-gnu-music@@gnu.org
     If you have bugreports, you should send them to this list.  If you
-want to know about bugs, subscribe: send mail with subject "subscribe" to
+want to know about bugs, subscribe: send mail with subject "subscribe"
+to
     @email{bug-gnu-music-request@@gnu.org}. The archive is at
 @uref{http://www.mail-archive.com/bug-gnu-music@@gnu.org}
+
+        Please include in your bugreport the version of LilyPond that
+you experience the problem with, a description of your system and sample
+input to reproduce the problem. Do not send output files over the list,
+they tend to be very big and don't help with describing the problem.
+
+
 @item gnu-music-discuss@@gnu.org,
     For discussions concerning LilyPond, to subscribe: send
     mail with subject "subscribe" to
diff --git a/TODO b/TODO
index f5a11cecd9ea95ce20c399e01fef00a522e80f60..259faaf8aff781944910b772662b66b0c5425f0f 100644 (file)
--- a/TODO
+++ b/TODO
@@ -10,6 +10,8 @@ Grep -i for TODO, FIXME and ugh/ugr/urg.
 
 .* TODO
 . * use hash tabs iso. alist_ for elt property?
+. * unhardcode stuff in bezier-bow: all sizes other than 20pt are
+    broken
 . * control paper-size/-file from commandline ?
   lilypond --paper=paper16 foo.ly
   lilypond --paper=paper20 foo.ly
@@ -17,6 +19,22 @@ Grep -i for TODO, FIXME and ugh/ugr/urg.
 . * entangle ly/* paper-params papersize stuff
 . * fix tremolos.
 . * change ) c4  to c4-)
+. * automated marks. 
+. * There should be no pagebreak below the title of the movement!!
+. * tempo:
+
+>   - Tempo Indications:
+>     * \tempo 4 = 60 should be printed
+>     * There should be commands like \alloegro that also do something
+>       sensible in midi.
+> 
+. *  - It should be possible to have Bar numbers on every bar.
+
+. * dynamics: 
+>       * Notes should be spaced out for crescendos (had to use c^"      ")
+>       * something like c-.->\ff looks ugly.  The dynamc indication should
+>         appear left of the marks
+> 
 . * 
 There's insufficient leading between lines of lyrics, so risers like
 `l' and 'b' collide with the bottom of the line above.
diff --git a/VERSION b/VERSION
index dfcdb1988335e8a2d9d5d657d0189ed3fafee1f4..8d61b7e43aba1f52f1e42de96f5a00a7b480c1d9 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
-PATCH_LEVEL=28
-MY_PATCH_LEVEL=jcn1
+PATCH_LEVEL=29
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
diff --git a/input/test/bar-script-visibility.ly b/input/test/bar-script-visibility.ly
new file mode 100644 (file)
index 0000000..48b2479
--- /dev/null
@@ -0,0 +1,13 @@
+
+\score {
+\notes { c1 c1 \break c1 c1 }
+\paper {
+
+\translator{
+       \StaffContext
+       \consists Bar_number_engraver;
+       barNumberVisibilityFunction = #end-of-line-invisible
+}
+}
+}
+
index 0b69da1a7b5add4fc1f467337faa624b75c25dcd..66d3d96948eb0e4f7defee9b6d1f9dd9dfe3ee0b 100644 (file)
@@ -1,8 +1,8 @@
 \header{
-title = "sleur";
-subtitle = "test slurs.";
 enteredby =     "jcn";
 copyright =     "public domain";
+TestedFeatures =        "This file tests Feta embedded slurs" +
+        "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
 \version "1.3.5";
@@ -167,7 +167,7 @@ clipping = \notes\transpose c'{
 }
 
 \score{
-       \notes{ 
+       \context Staff \notes{ 
 %              \property Voice.pletvisibility = 0;
                % use blend for fast check
                \blend
diff --git a/input/test/slur-area.fly b/input/test/slur-area.fly
deleted file mode 100644 (file)
index 14705f7..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-\property Voice.slurVerticalDirection = #1
-\property Voice.stemVerticalDirection = #-1
-a''(a' a,)a
-a(a a')a,
-a(d a)a
-a8(d a a a a a)a
-a(a a a a a d)a
-
-c,(g' c e f d b)g 
-c,(g' c e f d b)g 
diff --git a/input/test/slur-area.ly b/input/test/slur-area.ly
new file mode 100644 (file)
index 0000000..f16bb43
--- /dev/null
@@ -0,0 +1,26 @@
+\score{
+\notes\relative c''{
+
+\property Voice.slurVerticalDirection = #1
+\property Voice.stemVerticalDirection = #-1
+a(a' a,)a
+a(a a')a,
+a(d a)a
+a(a d)a
+
+e'8(e e e e e e)e
+a,8(d a a a a a)a
+a(a a a a a d)a
+
+c,(g' c e f d b)g 
+c,(g' c e f d b)g 
+
+\property Voice.noAutoBeaming = ##t
+\property Voice.stemVerticalDirection = #1
+a8(a a a a a a)a
+
+}
+\paper{
+indent=0.0\mm;
+}
+}
index 88f46c07a905895610a1999f9a648f85657e7d37..81a41334301c06b6861c1e46b2137b579bda6f1c 100644 (file)
@@ -147,6 +147,3 @@ All_font_metrics::font_descriptions () const
 }
 
 
-
-#include "ly-smobs.icc"
-IMPLEMENT_SMOBS(Font_metric);
index 9dd82bc754f88893320db90a009ea5253fb0f57a..f44d4d2c4e475cb876dbc6ea67fb5404900a9b8e 100644 (file)
@@ -29,7 +29,7 @@ SCM
 translate_atom (Offset o, SCM func)
 {
   return gh_list (ly_symbol2scm ("translate-atom"),
-                 ly_quote_scm (ly_offset2scm (o)),
+                 ly_quote_scm (to_scm (o)),
                  func,
                  SCM_UNDEFINED);
 }
@@ -41,7 +41,7 @@ translate_atom_axis (Real r, Axis a, SCM func)
   Offset o ;
   o[a] = r;
   return gh_list (ly_symbol2scm ("translate-atom"),
-                 ly_quote_scm (ly_offset2scm (o)),
+                 ly_quote_scm (to_scm (o)),
                  func,
                  SCM_UNDEFINED);
 }
index bf22b44c614062ea0b0797019b8370231f2a3842..b5f20c5235acd818c17ca365cfa13fe2608cdb27 100644 (file)
@@ -17,10 +17,10 @@ Bar_number_engraver::Bar_number_engraver()
 {
   axis_ = Y_AXIS;
   type_ = "barNumber";
-  visibility_lambda_
-    = ly_eval_str ("postbreak-only-visibility");
 }
 
+
+
 void
 Bar_number_engraver::do_process_requests ()
 {
index 98d4c92fdf098d65d1c00aed6aa255254d9c9a44..689ecea2bcff4166f9b1cadc40d61915ce8da4e3 100644 (file)
@@ -24,15 +24,19 @@ Bar_script_engraver::Bar_script_engraver ()
 {
   axis_ = Y_AXIS;
   text_p_ =0;
-  visibility_lambda_ 
-    = ly_eval_str ("non-postbreak-visibility");
 }
 
 void
 Bar_script_engraver::do_creation_processing ()
 {
+  String t = type_  + "VisibilityFunction";
+  SCM proc = get_property (t, 0);
+
+  if (gh_procedure_p (proc))
+      visibility_lambda_ = proc;
 }
 
+
 /*
   Some interesting item came across.  Lets attach the text and the
   positioner to the item.
@@ -142,9 +146,10 @@ Bar_script_engraver::create_items (Request *rq)
        ->set_elt_property ("padding",
                            gh_double2scm(paper_l ()->get_var ("interline")));
     }
-  
-  text_p_->set_elt_property ("visibility-lambda",
-                            visibility_lambda_);
+
+  if (gh_procedure_p (visibility_lambda_))
+      text_p_->set_elt_property ("visibility-lambda",
+                                visibility_lambda_);
   
   announce_element (Score_element_info (text_p_, rq));
 }
index 90de71251c4796c240c84562c1ad47e7909b23c4..e4f66f1d35763b8f488db84228b9a7d0996c3181 100644 (file)
@@ -29,14 +29,11 @@ Bar::get_bar_size () const
 }
 
 
-Molecule*
-Bar::do_brew_molecule_p () const
+Molecule 
+Bar::do_brew_molecule () const
 {
   String s = ly_scm2string (get_elt_property ("glyph"));
-  Molecule *output
-    = new Molecule (lookup_l ()->bar (s, get_bar_size (), paper_l ()));
-  
-  return output;
+  return lookup_l ()->bar (s, get_bar_size (), paper_l ());
 }
 
 
index 4636f957fac115a266f370bcf29d21969df3afbd..0c7177017f1cf6211c4f2c1b8fd9a6ed616b2d91 100644 (file)
@@ -51,6 +51,11 @@ Base_span_bar_engraver::acknowledge_element (Score_element_info i)
        {
          spanbar_p_ = get_span_bar_p();
          spanbar_p_->set_parent (bar_l_arr_[0], Y_AXIS);
+
+         /*
+           UGH. UGH UUHGK GUHG G
+           (ly_eval_str ??)
+          */
          String visnam =  String(name()) + "-visibility";
          
          spanbar_p_->set_elt_property ("visibility-lambda",
index 33f354eb26b8db304806210a67b50ab5e97b092c..d96e15a637bcd0921b38793e176e652250dada3a 100644 (file)
@@ -708,12 +708,12 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const
 }
 
 
-Molecule*
-Beam::do_brew_molecule_p () const
+Molecule 
+Beam::do_brew_molecule () const
 {
-  Molecule *mol_p = new Molecule;
+  Molecule mol;
   if (!stem_count ())
-    return mol_p;
+    return mol;
   Real x0,dx;
   if (visible_stem_count ())
     {
@@ -739,12 +739,12 @@ Beam::do_brew_molecule_p () const
       Molecule sb = stem_beams (i, next, prev);
       Real x = i->hpos_f ()-x0;
       sb.translate (Offset (x, x * dydx + y));
-      mol_p->add_molecule (sb);
+      mol.add_molecule (sb);
     }
-  mol_p->translate_axis (x0 
+  mol.translate_axis (x0 
     - spanned_drul_[LEFT]->relative_coordinate (0, X_AXIS), X_AXIS);
 
-  return mol_p;
+  return mol;
 }
 
 int
index aa276f3043e59155baf7cc073f5cc024403a8223..0a51f936140fb643ee0d87c1b183d0f07b220ca3 100644 (file)
 #include "debug.hh"
 #include "main.hh"
 #include "lily-guile.hh"
+#include "paper-def.hh"
 
-void
-flipy (Array<Offset>  &c)
-{
-  for (int i = c.size (); i--;)
-    c[i][Y_AXIS] = - c[i][Y_AXIS];
-}
 
-void
-rotate (Array<Offset> &c, Real phi)
-{
-  Offset rot (complex_exp (Offset (0, phi)));
-  for (int i = 0; i < c.size (); i++)
-    c[i] = complex_multiply (rot, c[i]);
-}
-
-void
-translate (Array<Offset> &c, Offset o)
-{
-  for (int i = 0; i < c.size (); i++)
-    c[i] += o;
-}
-
-
-Bezier_bow::Bezier_bow (Array<Offset> points, Direction dir)
+Bezier_bow::Bezier_bow (Array<Offset> encompass, Direction dir)
 {
+  alpha_ = 0;
   dir_ = dir;
-  encompass_ = points;
-  to_canonic_form ();
-
-  rc_factor_ = 1.0;
-  height_limit_ = 1.0;
-  ratio_ = 1.0;
-}
-
-static Real
-default_height (Real len)
-{
-  // assume 20pt staff
-  // see fonts.doc
-  Real staff_space = 5.0;
-  Real h_inf = 2.0* staff_space;
-  Real r_0 = 0.33;
-  return h_inf * 2.0 / M_PI * atan ( M_PI * r_0 / (2.0 * h_inf) * len);
-}
-
-void
-Bezier_bow::blow_fit ()
-{
-  Real len = curve_.control_[3][X_AXIS]; 
-  Real h = curve_.control_[1][Y_AXIS] * fit_factor () / len;
-  curve_.control_[1][Y_AXIS] = h * len;
-  curve_.control_[2][Y_AXIS] = h * len;  
-  curve_.check_sanity ();
-}
-
-void
-Bezier_bow::de_uglyfy ()
-{
-  Real len = curve_.control_[3][X_AXIS] ; 
-  Real ff = fit_factor ();
-  for (int i = 1; i < 3; i++)
-    {
-      Real ind = abs (curve_.control_[(i-1)*3][X_AXIS]
-                     - curve_.control_[i][X_AXIS]) / len;
-      Real h = curve_.control_[i][Y_AXIS] * ff / len;
-
-      // ugh. Unhardcode this
-      Real f = default_height (len) / len;
-      if (h > 2.0 * f)
-       {
-         h = 2.0 * f; 
-       }
-      else if (h > 0.8 + -2 * ind)
-       {
-         h = 0.8 - 2  *ind; 
-       }
-      
-      curve_.control_[i][Y_AXIS] = h * len;  
-    } 
-
-  curve_.check_sanity ();
-}
-
-Real
-Bezier_bow::calc_enclosed_area_f () const
-{
-  Real a = 0;
-  for (int i=0; i < encompass_.size (); i++)
-    {
-      Interval x;
-      Interval y;
-      if (i == 0)
-       {
-         x = Interval (0, encompass_[1][X_AXIS] / 2);
-         y = Interval (0,
-                       curve_.get_other_coordinate (X_AXIS,
-                                                    encompass_[1][X_AXIS]
-                                                    / 2));
-       }
-      else if (i == encompass_.size () - 1)
-       {
-         x = Interval ((encompass_[i-1][X_AXIS] + encompass_[i][X_AXIS])/2, 
-                       encompass_[i][X_AXIS]);
-         y = Interval (0,
-                       (curve_.get_other_coordinate (X_AXIS,
-                                                     (x[MIN] + x[MAX]) / 2)));
-       }
-      else
-       {
-         x = Interval ((encompass_[i-1][X_AXIS] + encompass_[i][X_AXIS]) / 2, 
-                       (encompass_[i][X_AXIS] + encompass_[i+1][X_AXIS]) / 2);
-         y = Interval (encompass_[i][Y_AXIS],
-                       (curve_.get_other_coordinate (X_AXIS, x[MIN])
-                        + curve_.get_other_coordinate (X_AXIS,
-                                                       (x[MIN] + x[MAX]) / 2)
-                        + curve_.get_other_coordinate (X_AXIS, x[MAX])) / 3);
-       }
-      
-      Real da = x.length () * y.length ();
-      a += da;
-    }
-  return a;
-}
-
-Array<Offset>
-Bezier_bow::area_gradient_offset_arr ()
-{
-  Real len = curve_.control_[3][X_AXIS]; 
-  Real area = calc_enclosed_area_f ();
-  
-  Real grow = len / 10.0;
-  Array<Offset> da (2);
-  for (int i=1; i < 3; i++)
-    {
-      for (Axis a=X_AXIS; a < NO_AXES; incr (a)) 
-       {
-         Real r = curve_.control_[i][a];
-         curve_.control_[i][a] += grow;
-         da[i-1][a] = (calc_enclosed_area_f () - area) / grow;
-         
-         curve_.control_[i][a] = r;
-       }
-    }
-  return da;
-}
-
-void
-Bezier_bow::minimise_enclosed_area ()
-{
-  Real len = curve_.control_[3][X_AXIS]; 
-  Real beautiful = len * default_height (len) / 2.0;
-
-  DEBUG_OUT << to_str ("Beautiful: %f\n", beautiful);
-  DEBUG_OUT << to_str ("Length: %f\n", len);
-  int steps=2;
-  for (int i=0; i < steps; i++)
-    {
-      Real ff = fit_factor ();
-      if (!ff)
-       break;
-
-      DEBUG_OUT << to_str ("FitFac: %f\n", ff);
-
-      // slur must be higher at every point
-      if (ff > 1.01)
-       {
-         blow_fit ();
-         DEBUG_OUT << to_str ("Blown area: %f\n", calc_enclosed_area_f ());
-       }
-      else
-         DEBUG_OUT << to_str ("Init area: %f\n", calc_enclosed_area_f ());
-
-      Real area = calc_enclosed_area_f ();
-      
-
-      if (area <= beautiful)
-       break;
-
-      Array<Offset> da = area_gradient_offset_arr ();
-
-      /*
-       Urg: empiric cs
-            Small slurs are easily too asymmetric,
-            while big slurs are too symmetric
-
-            This makes short slurs strictly x-bound,
-            long slurs become y-bound.
-       */
-      Real ypct = 0.50;
-      //Real xpct = (0.07 * len * len / 1000.0) <? 0.80;
-      Real xpct = (0.1 * len * len * len / 100000.0) <? 0.80;
-
-      Real yu = (abs (curve_.control_[1][Y_AXIS] / da[0][Y_AXIS])
-                <? abs (curve_.control_[2][Y_AXIS] / da[1][Y_AXIS]))
-       * ypct;
-      Real xu = (abs (curve_.control_[1][X_AXIS] / da[0][X_AXIS])
-                <? abs ((curve_.control_[3][X_AXIS]
-                            - curve_.control_[2][X_AXIS]) / da[1][X_AXIS]))
-       * xpct;
-      Real u = yu <? xu;
-      DEBUG_OUT << to_str ("u (xu, yu): %f (%f, %f)\n", u, xu, yu);
-      DEBUG_OUT << to_str ("pct (x, y): (%f, %f)\n", xpct, ypct);
-
-      DEBUG_OUT << to_str ("da1: (%f, %f)\n", da[0][X_AXIS], da[0][Y_AXIS]);
-      DEBUG_OUT << to_str ("da2: (%f, %f)\n", da[1][X_AXIS], da[1][Y_AXIS]);
-
-      curve_.control_[1] -= da[0] * u;
-      curve_.control_[2] -= da[1] * u;
-    }
-  
-
-  if (fit_factor () > 1.5)
-    blow_fit ();
-
-  DEBUG_OUT << to_str ("Exarea: %f\n", calc_enclosed_area_f ());
-  Real area = calc_enclosed_area_f ();
-  /*
-    Slurs that fit beautifully are not ugly
-   */
-  if (area > beautiful)
-    {
-      DEBUG_OUT << "DE-UGLYFY\n";
-      de_uglyfy ();
-    }
-
-}
-
-void
-Bezier_bow::calculate ()
-{
-  calc_default ();
-  if (fit_factor () > 1.0)
-    {
-      //    calc_tangent_controls ();
-      // blow_fit ();
-      minimise_enclosed_area ();
-    }
+  encompass_ = encompass;
+  to_canonical_form ();
 }
 
-
-  
 Bezier
-Bezier_bow::get_curve ()const
+Bezier_bow::get_bezier () const
 {
   Bezier rv = curve_;
   if (dir_ == DOWN)
@@ -272,191 +41,81 @@ Bezier_bow::get_curve ()const
   return rv;
 }
 
-static Real const FUDGE = 1e-8;
-
-/*
-  This function calculates 2 center control points,
-  based on lines through c_0 --> left disturbing
-  and c_3--> right disturbing encompass points.
-  
-  See Documentation/fonts.tex
- */
-void
-Bezier_bow::calc_tangent_controls ()
-{
-  Real b = curve_.control_[3][X_AXIS];
-  Real h = curve_.control_[1][Y_AXIS];
-  
-
-  Drul_array<Offset> disturb;
-  Drul_array<Real> maxtan;  
-  maxtan[LEFT]  = maxtan[RIGHT] = h/(b/2);
-  disturb[LEFT]  = disturb[RIGHT] =   Offset (b / 2, h);
-
-  for (int i = 1; i < encompass_.size () -1; i++)
-    {
-      Real y= encompass_[i][Y_AXIS];
-      if (y> 0)
-        {
-         Real x = encompass_[i][X_AXIS];
-         
-         Direction d = LEFT;
-         do
-           {
-             // 1 if d == LEFT
-             int k = (1 - d)/2;
-             Real tan = y /  ((1-k)* b - d * x);
-
-             if (tan > maxtan[d])
-               {
-                 maxtan[d] = tan;
-                 disturb[d] = Offset (x,y);
-               }
-           }
-         while (flip (&d)!=LEFT);
-       }
-    }
-
-  for (int i = 0; i < encompass_.size (); i++ )
-    h = h >? encompass_[i][Y_AXIS];
-
-  /*
-    The curve will always be under line between curve_.control_0 -> curve_.control_1, so
-    make it extra steep by slur_rc_factor
-  */
-
-
-  Drul_array<Real> angles;
-  Direction d = LEFT;
-  do
-    {
-      maxtan[d] *= -d * rc_factor_;
-      angles[d] = atan (maxtan[d]);
-    }
-  while (flip(&d) != LEFT);
-
-  Real rc3 = 0.0;
-
-  /* 
-    if we have two disturbing points, have line through those...
-    in order to get a sane line, make sure points are reasonably far apart
-    X distance must be reasonably(!) big (division)
-   */
-  if (abs (disturb[LEFT][X_AXIS] - disturb[RIGHT][X_AXIS]) > FUDGE)
-    rc3 = (disturb[RIGHT][Y_AXIS] - disturb[LEFT][Y_AXIS]) / (disturb[RIGHT][X_AXIS] - disturb[LEFT][X_AXIS]);
-
-  else
-    rc3 = tan ((angles[LEFT] - angles[RIGHT]) / 2);
-
-
-  // ugh: be less steep
-  rc3 /= 2*rc_factor_;
-  
-
-  Real c2 = -maxtan[RIGHT] * curve_.control_[3][X_AXIS];
-
-  // use highest because rc3 is damped.
-  Real maxy = disturb[LEFT][Y_AXIS] >? disturb[RIGHT][Y_AXIS];
-  Real c3 = disturb[LEFT][Y_AXIS] > disturb[RIGHT][Y_AXIS] ?
-    maxy - rc3 * disturb[LEFT][X_AXIS] :
-    maxy - rc3 * disturb[RIGHT][X_AXIS];
-
-  curve_.control_[1][X_AXIS] = c3 / (maxtan[LEFT] - rc3);
-  curve_.control_[1][Y_AXIS] = maxtan[LEFT] * curve_.control_[1][X_AXIS];
-  
-  curve_.control_[2][X_AXIS] = (c3 - c2) / (maxtan[RIGHT] - rc3);
-  curve_.control_[2][Y_AXIS] = maxtan[RIGHT] * curve_.control_[2][X_AXIS] + c2;
-
-
-  curve_.check_sanity();
-}
-
-/*
-  max ( encompass.y / curve.y )
-  
- */
-Real
-Bezier_bow::fit_factor () const
-{
-  Real x1 = encompass_[0][X_AXIS];
-  Real x2 = encompass_.top ()[X_AXIS];
-
-  Real factor = 0.0;
-  for (int i=1; i < encompass_.size ()-1; i++)
-    {
-      if (encompass_[i][X_AXIS] > x1 && encompass_[i][X_AXIS] < x2)
-       {
-        Real y = curve_.get_other_coordinate (X_AXIS, encompass_[i][X_AXIS]);
-        if (y>0)
-          {
-            Real f = encompass_[i][Y_AXIS] / y;
-            factor = factor >? f;
-          }
-       }
-    }
-
-
-  return factor;
-}
-
-
-
-
 void
-Bezier_bow::to_canonic_form ()
+Bezier_bow::to_canonical_form ()
 {
   origin_ = encompass_[0];
-  translate (encompass_,-origin_);
+  translate (&encompass_, -origin_);
 
   Offset delta = encompass_.top () - encompass_[0];
   alpha_ = delta.arg ();
 
-  rotate (encompass_, -alpha_);
+  rotate (&encompass_, -alpha_);
   if (dir_ == DOWN)
     {
-      flipy (encompass_);
+      flip (&encompass_, Y_AXIS);
     }
 
   while (encompass_.size () > 1 && encompass_[1][X_AXIS] <= 0.0)
     {
-      programming_error ("Degenerate slur: infinite steepness reqd");
+      programming_error ("Degenerate bow: infinite steepness reqd");
       encompass_.del (1);
     }
 
   Real l = encompass_.top ()[X_AXIS];
   while (encompass_.size () > 1 && encompass_.top (1)[X_AXIS] >= l)
     {
-      programming_error ("Degenerate slur: infinite steepness reqd");
+      programming_error ("Degenerate bow: infinite steepness reqd");
       encompass_.del (encompass_.size ()-2);
     }
 }
 
-
+void
+Bezier_bow::set_default_bezier (Real h_inf, Real r_0)
+{
+  curve_ = get_default_bezier (h_inf, r_0);
+}
 
 /*
- See Documentation/fonts.tex
+  See Documentation/programmer/fonts.doc
  */
-void
-Bezier_bow::calc_default ()
+Bezier
+Bezier_bow::get_default_bezier (Real h_inf, Real r_0) const
 {
-  Real pi = M_PI;
-
-  Real alpha = height_limit_ * 2.0 / pi;
-  Real beta = pi * ratio_ / (2.0 * height_limit_);
-
-  Offset delta (encompass_.top ()[X_AXIS] 
-    - encompass_[0][X_AXIS], 0);
-
+  Offset delta (encompass_.top ()[X_AXIS] - encompass_[0][X_AXIS], 0);
   Real b = delta.length ();
-  Real indent = alpha * atan (beta * b);
-  Real height = indent;
-  curve_.control_ [0] = Offset (0, 0);
-  curve_.control_ [1] = Offset (indent, height);
-  curve_.control_ [2] = Offset (b - indent, height);
-  curve_.control_ [3] = Offset (b, 0);
-}
+  Real height = get_default_height (h_inf, r_0, b);
+  // urg: scmify this?
+  Real indent = height;
 
+  Bezier curve;
+  curve.control_[0] = Offset (0, 0);
+  curve.control_[1] = Offset (indent, height);
+  curve.control_[2] = Offset (b - indent, height);
+  curve.control_[3] = Offset (b, 0);
+  return curve;
+}
 
+/*
+  See Documentation/programmer/fonts.doc
+ */
+Real
+Bezier_bow::get_default_height (Real h_inf, Real r_0, Real b) const
+{
+#if 0
+  Real pi = M_PI;
 
+  Real alpha = 2.0 * h_inf / pi;
+  Real beta = pi * r_0 / (2.0 * h_inf);
 
+  return alpha * atan (beta * b);
+#else
+  SCM h = scm_eval (scm_listify (ly_symbol2scm ("slur-default-height"),
+                                gh_double2scm (h_inf),
+                                gh_double2scm (r_0),
+                                gh_double2scm (b),
+                                SCM_UNDEFINED));
+  return gh_scm2double (h);
+#endif
+}
+  
index 28634b473c683b283e95cd27d465814a62d15ab4..6b388e1d8ff47f7c0589b610e296df1f8864a390 100644 (file)
 #include "bezier.hh"
 #include "polynomial.hh"
 
+Real
+binomial_coefficient (Real over , int under)
+{
+  Real x = 1.0;
+
+  while (under)
+    {
+      x *= over / Real (under);
+
+      over  -= 1.0;
+      under --;
+    }
+  return x;
+}
+
+void
+flip (Array<Offset>* arr_p, Axis a)
+{
+  // huh?
+  //  for (int i = c.size (); i--;)
+  for (int i = 0; i < arr_p->size (); i++)
+    (*arr_p)[i][a] = - (*arr_p)[i][a];
+}
+
+void
+rotate (Array<Offset>* arr_p, Real phi)
+{
+  Offset rot (complex_exp (Offset (0, phi)));
+  for (int i = 0; i < arr_p->size (); i++)
+    (*arr_p)[i] = complex_multiply (rot, (*arr_p)[i]);
+}
+
+void
+translate (Array<Offset>* arr_p, Offset o)
+{
+  for (int i = 0; i < arr_p->size (); i++)
+    (*arr_p)[i] += o;
+}
+
 /*
 
   Formula of the bezier 3-spline
@@ -18,6 +57,7 @@
  */
 
 Bezier::Bezier ()
+  : control_ (CONTROL_COUNT)
 {
 }
 
@@ -33,20 +73,6 @@ Bezier::get_other_coordinate (Axis a,  Real x) const
   return c[other];
 }
 
-Real
-binomial_coefficient (Real over , int under)
-{
-  Real x = 1.0;
-
-  while (under)
-    {
-      x *= over / Real (under);
-
-      over  -= 1.0;
-      under --;
-    }
-  return x;
-}
 
 Offset
 Bezier::curve_point (Real t)const
@@ -151,27 +177,23 @@ Bezier::extent (Axis a)const
 void
 Bezier::flip (Axis a)
 {
-  for (int i = CONTROL_COUNT; i--;)
-    control_[i][a] = - control_[i][a];
+  ::flip (&control_, a);
 }
 
 void
 Bezier::rotate (Real phi)
 {
-  Offset rot (complex_exp (Offset (0, phi)));
-  for (int i = 0; i < CONTROL_COUNT; i++)
-    control_[i] = complex_multiply (rot, control_[i]);
+  ::rotate (&control_, phi);
 }
 
 void
 Bezier::translate (Offset o)
 {
-  for (int i = 0; i < CONTROL_COUNT; i++)
-    control_[i] += o;
+  ::translate (&control_, o);
 }
 
 void
-Bezier::check_sanity () const
+Bezier::assert_sanity () const
 {
   for (int i=0; i < CONTROL_COUNT; i++)
     assert (!isnan (control_[i].length ())
index f6672d2059a962620c6f3301afd765e6585914c0..54120930f3a3698f020b49addb26f7a7bab2a0f2 100644 (file)
@@ -26,8 +26,8 @@ Breathing_sign::Breathing_sign ()
   set_elt_property ("breakable", SCM_BOOL_T);
 }
 
-Molecule*
-Breathing_sign::do_brew_molecule_p () const
+Molecule 
+Breathing_sign::do_brew_molecule () const
 {
   Staff_symbol_referencer_interface si (this);
   
@@ -35,9 +35,7 @@ Breathing_sign::do_brew_molecule_p () const
   Interval i1(0, space / 6), i2(-space / 2, space / 2);
   Box b(i1, i2);
 
-  Molecule *output = new Molecule (lookup_l()->filledbox(b));
-  return output;
+  return lookup_l()->filledbox(b);
 }
 
 void
index ba971322fc8650f8f39fe3a87d653589f10f3a11..e395663bd1f54b6d1d7a64952a19dccc3cd6c1c2 100644 (file)
@@ -221,8 +221,8 @@ Chord_name::banter (Array<Musical_pitch> pitch_arr, Chord_mol* name_p) const
   TODO:
     fix silly to-and-fro scm conversions
  */
-Molecule*
-Chord_name::do_brew_molecule_p () const
+Molecule 
+Chord_name::do_brew_molecule () const
 {
   Array<Musical_pitch> pitch_arr;
   scm_to_array (get_elt_property ("pitches"), &pitch_arr);
@@ -286,16 +286,16 @@ Chord_name::do_brew_molecule_p () const
   if (!name.addition_mol.empty_b ())
     name.addition_mol.translate (Offset (0, super_y));
 
-  Molecule* mol_p = new Molecule;
-  mol_p->add_at_edge (X_AXIS, RIGHT, name.tonic_mol, 0);
+  Molecule  mol;
+  mol.add_at_edge (X_AXIS, RIGHT, name.tonic_mol, 0);
   // huh?
   if (!name.modifier_mol.empty_b ())
-    mol_p->add_at_edge (X_AXIS, RIGHT, name.modifier_mol, 0);
+    mol.add_at_edge (X_AXIS, RIGHT, name.modifier_mol, 0);
   if (!name.addition_mol.empty_b ())
-    mol_p->add_at_edge (X_AXIS, RIGHT, name.addition_mol, 0);
+    mol.add_at_edge (X_AXIS, RIGHT, name.addition_mol, 0);
   if (!name.inversion_mol.empty_b ())
-    mol_p->add_at_edge (X_AXIS, RIGHT, name.inversion_mol, 0);
+    mol.add_at_edge (X_AXIS, RIGHT, name.inversion_mol, 0);
   if (!name.bass_mol.empty_b ())
-    mol_p->add_at_edge (X_AXIS, RIGHT, name.bass_mol, 0);
-  return mol_p;
+    mol.add_at_edge (X_AXIS, RIGHT, name.bass_mol, 0);
+  return mol;
 }
index 4dd5889831c5503a32d09c7f7d9f1763bec90a9b..e0c167b87f2fbd1a20c69d616f5622717294b32d 100644 (file)
@@ -199,7 +199,7 @@ Clef_engraver::do_pre_move_processing()
     {
       if(to_boolean (clef_p_->remove_elt_property("non-default")))
         clef_p_->set_elt_property("visibility-lambda",
-                                  ly_eval_str ("all-visibility"));
+                                  ly_eval_str ("all-visible"));
       
       typeset_element (clef_p_);
       clef_p_ =0;
index 481d30bca713b4c7335cf3542176dfec5a55b89a..3f0f16b637dd1423e6b70eb866188c3f200da3c0 100644 (file)
@@ -22,8 +22,8 @@ Crescendo::Crescendo ()
 
 
 
-Molecule*
-Crescendo::do_brew_molecule_p () const
+Molecule 
+Crescendo::do_brew_molecule () const
 {
   Real absdyn_dim = paper_l ()-> get_var ("crescendo_shorten");
   Real extra_left =  get_broken_left_end_align ();
@@ -33,9 +33,11 @@ Crescendo::do_brew_molecule_p () const
 
   if (!isdir_b (dir) || !gh_pair_p (dyns))
     {
-Crescendo * me = (Crescendo*)this;
+      Crescendo * me = (Crescendo*)this;
       me->set_elt_property ("transparent", SCM_BOOL_T);
-      return new Molecule;
+      Molecule m;
+      
+      return m;
     }
   
   Direction gd = to_dir (dir);
@@ -78,10 +80,9 @@ Crescendo * me = (Crescendo*)this;
   Real thick = paper_l ()->get_var ("crescendo_thickness");
 
   const char* hairpin = (gd < 0)? "decrescendo" :  "crescendo";
-  Molecule * m
-    = new Molecule;
-  m->dim_.x () = Interval (0, width);
-  m->dim_.y () = Interval (-2*height, 2*height);
+
+  Box b (Interval (0, width),
+        Interval (-2*height, 2*height));
 
   SCM at = gh_list (ly_symbol2scm (hairpin),
                     gh_double2scm (thick),
@@ -90,8 +91,9 @@ Crescendo * me = (Crescendo*)this;
                     gh_double2scm (continued ? height/2 : 0.0),
                     SCM_UNDEFINED);
 
-  m->add_atom (at);
-  m->translate_axis (extra_left, X_AXIS);
+  Molecule m (b, at);
+  
+  m.translate_axis (extra_left, X_AXIS);
   return m;
 }
 
index 36e0a348441704b42a84fe3e9e0e96b31503d81d..f63f77ddae1e57d08191c2cf3840591aede312a6 100644 (file)
@@ -39,14 +39,11 @@ Dots::do_post_processing ()
        si.set_position (p  + directional_element (this).get ());
     }
 }
-Molecule* 
-Dots::do_brew_molecule_p () const
+Molecule  
+Dots::do_brew_molecule () const
 {
-  Molecule *out = new Molecule;
-  Molecule fill = lookup_l ()->fill (Box (Interval (0,0),
-                                         Interval (0,0)));
-  out->add_molecule (fill);
-
+  Molecule mol (lookup_l ()->fill (Box (Interval (0,0),
+                                         Interval (0,0))));
   Molecule d = lookup_l ()->afm_find (String ("dots-dot"));
 
   Real dw = d.dim_[X_AXIS].length ();
@@ -56,10 +53,10 @@ Dots::do_brew_molecule_p () const
   for (int i = gh_scm2int (get_elt_property ("dot-count")); i--; )
     {
       d.translate_axis (2*dw,X_AXIS);
-      out->add_molecule (d);
+      mol.add_molecule (d);
     }
 
-  return out;
+  return mol;
 }
 
 
index e70e848035afa923f404c0a22cc7ad35a5dd1781..ff02c16d92efbb71aa4be8d5eeec2cc2722f31f7 100644 (file)
@@ -30,10 +30,10 @@ Extender_spanner::Extender_spanner ()
 
 
 
-Molecule*
-Extender_spanner::do_brew_molecule_p () const
+Molecule 
+Extender_spanner::do_brew_molecule () const
 {
-  Molecule* mol_p = new Molecule;
+  Molecule  mol;
 
   Real w = spanner_length ();
   
@@ -42,9 +42,9 @@ Extender_spanner::do_brew_molecule_p () const
   Molecule a = lookup_l ()->filledbox ( Box (Interval (0,w), Interval (0,h)));
   a.translate (Offset (dx_f_drul_[LEFT], 0));
 
-  mol_p->add_molecule (a);
+  mol.add_molecule (a);
 
-  return mol_p;
+  return mol;
 }
 
 
index c872d5b8d9e90292152b624964860b3f56cdb991..ef615ae0a9f7e73f3b813b3816a195f71a9be66a 100644 (file)
@@ -126,3 +126,5 @@ Font_metric::print_smob (SCM s, SCM port, scm_print_state * )
 }
 
 IMPLEMENT_UNSMOB(Font_metric, metrics);
+IMPLEMENT_SMOBS(Font_metric);
+
index be36b99bf61ccbf8bc7d749d581a55c42ca43673..65470ea81c4204e414228bf39055ff20d45e2425 100644 (file)
@@ -30,10 +30,10 @@ Hyphen_spanner::Hyphen_spanner ()
   dim_cache_[Y_AXIS]->set_callback (Dimension_cache::point_dimension_callback);
 }
 
-Molecule*
-Hyphen_spanner::do_brew_molecule_p () const
+Molecule 
+Hyphen_spanner::do_brew_molecule () const
 {
-  Molecule* mol_p = new Molecule;
+  Molecule  mol;
 
   Real w = spanner_length ();
 
@@ -50,9 +50,9 @@ Hyphen_spanner::do_brew_molecule_p () const
   Molecule a = lookup_l ()->filledbox ( Box (Interval ((w-l)/2,(w+l)/2), Interval (h,h+th)));
   a.translate (Offset (dx_f_drul_[LEFT], 0));
 
-  mol_p->add_molecule (a);
+  mol.add_molecule (a);
 
-  return mol_p;
+  return mol;
 }
 
 
index 10b6fcb3645fdf377940927f0ea04fadae5b1601..c2fb413312689fd2d6b4d656c951ae20325e9c94 100644 (file)
@@ -13,8 +13,6 @@
 #include "box.hh"
 #include "lily-guile.hh"
 
-SCM translate_atom (Offset, SCM);
-SCM translate_atom_axis (Real, Axis,SCM); 
 SCM fontify_atom (Font_metric*, SCM atom);
 
 #endif
index 21ee05890c46ef9e8e052204d4b74b130513f9fc..1e4f8c539a64ae5c4ad64264eccc33cd1237c47d 100644 (file)
@@ -17,7 +17,7 @@ public:
   Bar();
 protected:
   virtual void do_pre_processing ();
-  virtual Molecule* do_brew_molecule_p () const;
+  virtual Molecule  do_brew_molecule () const;
   virtual Real get_bar_size () const;
 };
 #endif // BAR_HH
index 966f3f08e8ac9d03f455bef3ee54318c47983f9b..aff606c7a99aacbe39b078a22062aefeae2e76ea 100644 (file)
@@ -47,7 +47,7 @@ protected:
  
   virtual void do_pre_processing ();
   virtual void do_post_processing ();
-  virtual Molecule*do_brew_molecule_p () const;
+  virtual Molecule do_brew_molecule () const;
 
   Molecule stem_beams (Stem *here, Stem *next, Stem *prev) const;
 private:
index d442124a5c1d0f34efbdbb25bf3a42858c31d289..4c2ea55fc9a15e729b6112d2fd2ab01a1deffdad 100644 (file)
   from bow paratime_signatures.  */
 class Bezier_bow
 {
-  Bezier curve_;
-  Array<Offset> encompass_;
-  
-  void blow_fit ();
-  void de_uglyfy ();
-  void calc_default ();
-  void to_canonic_form ();
-  void calc_tangent_controls ();
-  Real calc_enclosed_area_f () const;
-  void minimise_enclosed_area ();
-  Array<Offset> area_gradient_offset_arr ();
+public:
+  Bezier_bow (Array<Offset> encompass, Direction dir);
 
-  Real fit_factor () const;
+  Bezier get_bezier () const;
+  Bezier get_default_bezier (Real h_inf, Real r_0) const;
+  Real get_default_height (Real h_inf, Real r_0, Real length) const;
+  void set_default_bezier (Real h_inf, Real r_0);
 
+  /**
+     The canonical bezier.
+   */
+  Bezier curve_;
 
-  Paper_def* paper_l_;
+protected:
+  Array<Offset> encompass_;
+
+private:
+  void to_canonical_form ();
   Direction dir_;
   Real alpha_;
   Offset origin_;
-public:
-  Real  rc_factor_;
-  Real height_limit_;
-  Real ratio_;
-
-
-  Real vertical_offset_needed () const;
-  
-  Bezier_bow (Array<Offset> points, Direction dir);
-  void calculate ();
-  Bezier get_curve () const;
 };
 
 
index 47890afca282bb42045d8cda90003774fbf06e6a..3ac97b71706ea7baa09ac9f819f47ba254841465 100644 (file)
@@ -24,10 +24,12 @@ class Bezier
 public:
   Bezier ();
 
+  void assert_sanity () const;
+  void flip (Axis);
+  void reverse ();
   void rotate (Real);
   void translate (Offset);
-  void flip (Axis);
-  void check_sanity () const;
+
   Real get_other_coordinate (Axis a, Real x) const;
   Array<Real> solve_point (Axis, Real coordinate) const;
   Array<Real> solve_derivative (Offset) const;
@@ -35,12 +37,13 @@ public:
   Polynomial polynomial (Axis)const;
   Offset curve_point (Real t) const;
 
-  void reverse ();
-
   static const int CONTROL_COUNT = 4;
-  Offset control_[CONTROL_COUNT];
+  Array<Offset> control_;
 };
 
+void flip (Array<Offset>* arr_p, Axis a);
+void rotate (Array<Offset>* arr_p, Real phi);
+void translate (Array<Offset>* arr_p, Offset o);
 
 #endif // BEZIER_HH
 
index bda300aaa010f1777d3d98d5bd6f661410ed65db..83cf87e5e8266a38494ba9c0405e07b5f0b09ee3 100644 (file)
@@ -20,7 +20,7 @@ public:
   Breathing_sign ();
 protected:
   virtual void do_post_processing ();
-  virtual Molecule* do_brew_molecule_p () const;
+  virtual Molecule do_brew_molecule () const;
 };
 
 
index dc49f205c23f6ce26d891de2c3a94902a5559580..ae1ddc0500a030fc3d084d1b75ffaec2dc3229a0 100644 (file)
@@ -40,7 +40,7 @@ public:
   void banter (Array<Musical_pitch> pitch_arr, Chord_mol* name_p) const;
 
 protected:
-  virtual Molecule* do_brew_molecule_p () const;
+  virtual Molecule do_brew_molecule () const;
 };
 
 #endif // CHORD_NAME_HH
index ef7b6f3310e647aecdf87d4e29ffac9d987134b5..115b98b9fd720c288ed40029ee44b607d09f83b5 100644 (file)
@@ -21,7 +21,7 @@ public:
   Crescendo();
 protected:
   VIRTUAL_COPY_CONS(Score_element);
-  virtual Molecule*do_brew_molecule_p() const;
+  virtual Molecule do_brew_molecule() const;
     
 private:
   Molecule get_symbol() const;
index 647a1255135e89f7a12d348e15b9cc36b46fe997..6a36c9ef06e6e2ce02e6e9be9da9da80781c4d80 100644 (file)
@@ -21,7 +21,7 @@ class Dots :
   public Item
 {
 protected:
-  virtual Molecule * do_brew_molecule_p () const;
+  virtual Molecule do_brew_molecule () const;
   virtual void do_post_processing ();
 public:
   
index cb24e42ded4344e5aedc57ad8111dd4c9c787a81..0fa11e6f5750579305bec02b3feddf94e8992fb9 100644 (file)
@@ -34,7 +34,7 @@ public:
   void set_textitem (Direction, Item*);
 
 protected:
-  virtual Molecule* do_brew_molecule_p () const;
+  virtual Molecule do_brew_molecule () const;
   void do_post_processing ();
  
   VIRTUAL_COPY_CONS (Score_element);
index 3086facc32154c0fff6b4f2705c67e5a44034c42..2530a5e1161514a9787ddf5b7138335f32097262 100644 (file)
@@ -25,7 +25,7 @@ Hyphen_spanner ();
   void set_textitem (Direction, Item*);
 
 protected:
-  virtual Molecule* do_brew_molecule_p () const;
+  virtual Molecule do_brew_molecule () const;
   Interval do_height () const;
 
   void do_post_processing ();
index 6c78e9f29e91a8768a2213aa4224336122158869..55f320c9c9bed87d35eeae45b52700c0e7603822 100644 (file)
@@ -36,7 +36,7 @@ public:
   int calculate_position(int p, int a) const;
 
 protected:
-  virtual Molecule* do_brew_molecule_p() const;
+  virtual Molecule do_brew_molecule() const;
 };
 
 #endif // KEYITEM_HH
index 8d808ac4039208a140aee1bc946175836c90181f..b79ffbf89522d6620113c6e2d0673d5fede0bedb 100644 (file)
@@ -20,8 +20,6 @@ SCM ly_eval_str (String s);
 SCM ly_symbol2scm (char const *);
 String ly_symbol2string (SCM);
 
-SCM ly_offset2scm (Offset o);
-Offset ly_scm2offset (SCM s);
 SCM ly_eval (SCM a);
 SCM ly_parse_scm (char const* s, int* n);
 SCM ly_quote_scm (SCM s);
@@ -54,6 +52,9 @@ int scm_to (SCM s, int* i);
 SCM to_scm (Real r);
 Real scm_to (SCM s, Real* r);
 
+SCM to_scm (Offset o);
+Offset scm_to (SCM s, Offset* o);
+
 /*
   snarfing.
  */
index b1d20b3ac4f89ea2ed2332ea6f9cc261cc4d8397..3e2063167b0e0106af822f7416057b425525a86b 100644 (file)
@@ -50,7 +50,7 @@ public:
   void add_pitch (Musical_pitch, bool cautionary, bool natural);
 protected:
   virtual void do_pre_processing();
-  virtual Molecule* do_brew_molecule_p() const;
+  virtual Molecule do_brew_molecule() const;
 };
 #endif // LOCALKEYITEM_HH
 
index 97da61e6d00c8637b7b095d7355d8e03ce0feee4..10e9b03f30e68f5df77dae402906b2f72285081d 100644 (file)
@@ -18,7 +18,18 @@ unsmob_ ## name ( SCM s)                     \
     return SMOB_TO_TYPE(CL, s);                        \
   else                                         \
     return 0;                                  \
-}
+}\
+SCM smobify (CL *cl)\
+{\
+  SCM s;                                                               \
+                                                                       \
+  SCM_NEWCELL(s);                                                      \
+  SCM_SETCAR(s,CL::smob_tag_);                                         \
+  void * me_p = cl;                                                    \
+  SCM_SETCDR(s,me_p);                                                  \
+return s;\
+}\
+
 
 
 #define IMPLEMENT_SMOBS(CL)\
@@ -55,14 +66,8 @@ CL::smobify_self ()                                                  \
     This is local. We don't assign to self_scm_ directly, to assure    \
     that S isn't GC-ed from under us.                                  \
    */                                                                  \
-  SCM s;                                                               \
-                                                                       \
-  SCM_NEWCELL(s);                                                      \
+  SCM s = smobify (this); \
   self_scm_ = s;                                                       \
-                                                                       \
-  SCM_SETCAR(s,smob_tag_);                                             \
-  void * me_p = this;                                                  \
-  SCM_SETCDR(s,me_p);                                                  \
   scm_protect_object (s);                                              \
                                                                        \
 /* no scm_done_malloc() !  */ \
index f5e94ef60aadf6aa94e532af47043e573ea76389..7342d0d406fcc72e190f80407bf88c4682a57de3 100644 (file)
@@ -8,45 +8,51 @@
 #ifndef MOLECULE_HH
 #define MOLECULE_HH
 
+#include <stdlib.h>            // size_t
 #include "lily-proto.hh"
 #include "box.hh"
 #include "axes.hh"
 #include "direction.hh"
-#include "cons.hh"
-#include "protected-scm.hh"
-
-//#define ATOM_SMOB
+#include "lily-guile.hh"
 
 /** a group of individually translated symbols. You can add molecules
     to the top, to the right, etc.
 
+    It is implemented as a "tree" of scheme expressions, as in
+
+     Expr = combine Expr Expr
+              | translate Offset Expr
+             | SCHEME
+             ;
+
+    SCHEME is a Scheme expression that --when eval'd-- produces the
+    desired output.  
+
+
+    Because of the way that Molecule is implemented, it is the most
+    efficient to add "fresh" molecules to what you're going to build.
+    
     Dimension behavior:
 
     Empty molecules have empty dimensions.  If add_at_edge is used to
     init the molecule, we assume that
     DIMENSIONS = (Interval(0,0),Interval(0,0)
-
+    
 */
 class Molecule {
-  Protected_scm atom_list_;
-
-  friend class Paper_outputter;
-
+  /// can't alloc on heap.
+  void * operator new (size_t s); 
 public:
   Box dim_;
-
+  SCM expr_;
+  
+  Molecule (Box, SCM s);
   Molecule();
-  ~Molecule();
 
   /**
      Set dimensions to empty, or to (Interval(0,0),Interval(0,0) */
   void set_empty (bool);
   void add_at_edge (Axis a, Direction d, const Molecule &m, Real padding);
-
-  /**
-     Add an atom.  The molecule assumes responsibility for cleaning.
-   */
-  void add_atom (SCM as);    
   void add_molecule (Molecule const &m);
   void translate (Offset);
   
@@ -62,13 +68,10 @@ public:
   void translate_axis (Real,Axis);
 
   
+  
   /// how big is #this#? 
   Box extent() const;
   Interval extent (Axis) const;
-
-  Molecule (const Molecule&s);
-
-  void operator=(const Molecule&);  
   bool empty_b() const;
   void print ()const;
 };
index b86e566146519a9acd4938a4a80edff56f89d2eb..527e93fcd68c20f4e7931648dcc8d247e8b3358c 100644 (file)
@@ -21,7 +21,7 @@ public:
   void add_column (Item*);
   Molecule compound_rest (int)const;
 protected:
-  virtual Molecule *do_brew_molecule_p () const;
+  virtual Molecule do_brew_molecule () const;
   VIRTUAL_COPY_CONS (Score_element);
 
   virtual void do_add_processing ();
index 25fdda52b49739298e18a3cbd2cd43cb6dcfd1b8..fbebc0a4042a58916685a3fbf0434d379fc740e9 100644 (file)
@@ -24,7 +24,7 @@ public:
 protected:
   
   virtual void do_pre_processing();
-  virtual Molecule* do_brew_molecule_p() const;
+  virtual Molecule do_brew_molecule() const;
 };
 #endif // NOTEHEAD_HH
 
index 09e8f58bddac135ffcd271673ac3b47a9e20b7c8..3a1d343c2772229d486e4bc0e032e2e874f6f91d 100644 (file)
@@ -16,6 +16,7 @@
 #include "lily-guile.hh"
 #include "protected-scm.hh"
 
+// huh?
 #ifdef __powerpc__
 #include "protected-scm.hh"
 #endif
@@ -31,8 +32,6 @@ public:
   Paper_outputter ();
 
   void dump_onto (Paper_stream *);
-
-
   void output_int_def (String k, int v);
   void output_Real_def (String k, Real v);
   void output_String_def (String k, String v);
@@ -41,7 +40,7 @@ public:
   void output_font_def (int i, String str);
   void output_font_switch (int i);
   void output_header ();
-  void output_molecule (Molecule const *, Offset, char const *);
+  void output_molecule (SCM expr, Offset, char const *);
   void output_comment (String s);
   void output_scheme (SCM scm);
 
index ce95e6396bc4b2f4035508eeacfc016b7032001c..56b13441a6a4a5a7bb829fe85d03d031ba525831 100644 (file)
@@ -16,6 +16,6 @@ class  Rest : public Rhythmic_head
 {
 protected:
   virtual void do_post_processing ();
-  virtual Molecule * do_brew_molecule_p () const;
+  virtual Molecule do_brew_molecule () const;
 };
 #endif // REST_HH
index 2a962607fd387180003333718397ab366b8ea0cf..e3bec466effb37c587f251da14e0711d01fd87b8 100644 (file)
@@ -62,7 +62,7 @@ public:
   int status_i_;
 
   Paper_score *pscore_l_;
-  Molecule * output_p_;
+
   Score_element ();
   Score_element (Score_element const&);
   virtual void print () const;
@@ -137,7 +137,7 @@ protected:
   /// do printing of derived info.
   virtual void do_print () const;
   /// generate the molecule    
-  virtual Molecule* do_brew_molecule_p () const;
+  virtual Molecule do_brew_molecule () const;
   ///executed directly after the item is added to the Paper_score
   virtual void do_add_processing ();
   /// do calculations before determining horizontal spacing
index 8902a94bbf035ff91934b6e42155383cdb8c034e..b9c0be1238116e6f3d7835429fe49dfa3a868133 100644 (file)
@@ -26,7 +26,7 @@ public:
 protected:
   virtual void do_pre_processing ();
   virtual void do_post_processing ();
-  Molecule* do_brew_molecule_p () const;
+  Molecule do_brew_molecule () const;
 };
 
 #endif /* Stem_SCRIPT_HH */
index 2fc37f1df81cd728d8d7e73bfe22d4ad1c1e4235..4f14512047e2d7bc7172ec1ca1b91c47ebc0cb71 100644 (file)
@@ -15,8 +15,6 @@
  */
 class Slur : public Spanner
 {
-  int cross_staff_count () const;
-  Offset encompass_offset (Note_column const* )const;
 public:
   Slur ();
   VIRTUAL_COPY_CONS(Score_element);
@@ -25,7 +23,7 @@ public:
 
 
 protected:
-  virtual Molecule* do_brew_molecule_p () const;
+  virtual Molecule do_brew_molecule () const;
   virtual Array<Offset> get_encompass_offset_arr () const;
   Bezier get_curve () const;
   Drul_array<Real> dy_f_drul_;
@@ -35,6 +33,13 @@ protected:
   virtual void do_post_processing ();
   virtual void do_add_processing ();
   Array<Rod> get_rods () const;
+
+private:  
+  void de_uglyfy (class Slur_bezier_bow* bb, Real default_height);
+  void set_extremities ();
+  void set_control_points ();
+  int cross_staff_count () const;
+  Offset encompass_offset (Note_column const* )const;
 };
 
 #endif // SLUR_HH
index 77b6429fe38cafd4ad90f4dd692356742bcc67c5..8100bbafedec5078ca1dc7c92f2da88e1da6c3ce 100644 (file)
@@ -38,7 +38,7 @@ protected:
   
   virtual void do_pre_processing();
   virtual void do_post_processing();
-  virtual Molecule * do_brew_molecule_p() const;
+  virtual Molecule do_brew_molecule() const;
 };
 
 #endif // SPAN_BAR_HH
index ea6a4086539d8049ecf7efbd4ac461f350d8de5c..88821052fe5cdc84afc14cff39b1b54876e09a37 100644 (file)
@@ -23,6 +23,6 @@ public:
   int line_count () const;
 protected:
   VIRTUAL_COPY_CONS(Score_element);
-  virtual Molecule* do_brew_molecule_p() const;
+  virtual Molecule do_brew_molecule() const;
 };
 #endif // STAFFSYM_HH
index 9ef3b068292778cb80d5ce83b828859dff2d72fb..2e963007e26aa438c542f93720866c4247139f94 100644 (file)
@@ -16,7 +16,7 @@
 class Stem_tremolo : public Item {
 protected:
   Stem * stem_l () const;
-  virtual Molecule *do_brew_molecule_p () const;
+  virtual Molecule do_brew_molecule () const;
 
   static Interval dim_callback (Dimension_cache const*);
 public:
index 2f8298c4d80192d865e55d3b44ed62b768eab419..b31627019fa6f5b3850b0e9d01b246c83599917a 100644 (file)
@@ -91,7 +91,7 @@ protected:
 
   virtual void do_pre_processing();
   static Interval dim_callback (Dimension_cache const*);
-  virtual Molecule* do_brew_molecule_p() const;
+  virtual Molecule do_brew_molecule() const;
 
   void set_spacing_hints () ;
 };
index e3c7a89c33fc66ff398b809f62e43167b837507d..f6aaa02928310b469ca24ae66b4e9712d0678b06 100644 (file)
@@ -20,7 +20,7 @@ class Text_item : public Item
 public:
   VIRTUAL_COPY_CONS (Score_element);
 protected:
-  virtual Molecule *do_brew_molecule_p () const;
+  virtual Molecule do_brew_molecule () const;
 };
 
 #endif /* Text_ITEM_HH */
index 5e07334424d9901e3b5c1e10ca68bfaf1e66aceb..53dc0733ec0d2c2c8110d6c1683a85d9e877a965 100644 (file)
@@ -29,7 +29,7 @@ public:
   virtual Direction get_default_dir() const;
 
 protected:
-  virtual Molecule* do_brew_molecule_p () const;
+  virtual Molecule do_brew_molecule () const;
   virtual Array<Offset> get_encompass_offset_arr () const;
   Bezier get_curve () const;
 
index 4d02f04693f216423ae97c6e43bd26d4f57fa62c..3bdc1208e19a0eb318e5759268d98ab75d0dd0b0 100644 (file)
@@ -24,7 +24,7 @@ class Time_signature: public Item
   Molecule time_signature (int, int)const;
   
 protected:
-  virtual Molecule*do_brew_molecule_p() const;
+  virtual Molecule do_brew_molecule() const;
 public:
   Time_signature () ;
 
index e20141319792a79f8b16e235319141cf5b9ca7c4..a38a9dcb4c3f7343a4902b0eb77b016bffc66203 100644 (file)
@@ -28,7 +28,7 @@ protected:
   void calc_dy (Real *) const;
   void calc_position_and_height (Real*,Real *dy)const;
   
-  virtual Molecule* do_brew_molecule_p () const;
+  virtual Molecule do_brew_molecule () const;
   VIRTUAL_COPY_CONS(Score_element);
   virtual void do_add_processing ();
   virtual void do_post_processing ();
index a4f32c035463e97c89f91ddb363e7541e3a0cd30..bdc42ffdf43ffe6bec523f0122bf3d93a6505af7 100644 (file)
@@ -22,7 +22,7 @@ public:
   void add_bar (Bar*);
  
 protected:
-  virtual Molecule* do_brew_molecule_p () const;
+  virtual Molecule do_brew_molecule () const;
   VIRTUAL_COPY_CONS (Score_element);
 
   virtual void do_add_processing ();
index c94b17811bfead762db31d3b86b6b14cfb331458..40b9bd4bfd04408f47aedd999da52cf9a08de05d 100644 (file)
@@ -99,7 +99,7 @@ Key_engraver::acknowledge_element (Score_element_info info)
       if (!def)
        {
          item_p_->set_elt_property ("visibility-lambda",
-                                   ly_eval_str ("all-visibility"));
+                                   ly_eval_str ("all-visible"));
        }
     }
 
index 56ab8a050678f1981b0099205fe583828a9b523e..55c594c01cfa03552c204bb07b7960c9edb03e9b 100644 (file)
@@ -93,10 +93,10 @@ Key_item::calculate_position(int p, int a) const
   - space the `natural' signs wider
   - dehair this
  */
-Molecule*
-Key_item::do_brew_molecule_p() const
+Molecule 
+Key_item::do_brew_molecule() const
 {
-  Molecule*output = new Molecule;
+  Molecule mol;
 
   Staff_symbol_referencer_interface si (this);
   Real inter = si.staff_space ()/2.0;
@@ -118,7 +118,7 @@ Key_item::do_brew_molecule_p() const
               Molecule m =lookup_l ()->afm_find ("accidentals-0");
 
               m.translate_axis (calculate_position(old_pitch_arr_[i], old_acc_arr_[i]) * inter, Y_AXIS);
-              output->add_at_edge (X_AXIS, RIGHT, m,0);        
+              mol.add_at_edge (X_AXIS, RIGHT, m,0);    
             }
         }
 
@@ -130,17 +130,17 @@ Key_item::do_brew_molecule_p() const
       Interval x(0, inter);
       Interval y(0,0);
 
-      output->add_at_edge (X_AXIS, RIGHT, lookup_l()->fill (Box(x,y)),0);
+      mol.add_at_edge (X_AXIS, RIGHT, lookup_l()->fill (Box(x,y)),0);
     }
  
   for (int i =0; i < pitch_arr_.size(); i++) 
     {
       Molecule m = lookup_l ()->afm_find ("accidentals-" + to_str (acc_arr_[i]));
       m.translate_axis (calculate_position(pitch_arr_[i], acc_arr_[i]) * inter, Y_AXIS);
-      output->add_at_edge (X_AXIS, RIGHT, m, 0);
+      mol.add_at_edge (X_AXIS, RIGHT, m, 0);
     }
 
-  return output;
+  return mol;
 }
 
 
index 0ed09ec2de6e83fd1b810e93a9c7e2ecddb6b2cd..ccca3060e97edf6a8ff7e262ff7c1cabd9aaaf38 100644 (file)
@@ -328,13 +328,13 @@ appendable_list_append (SCM l, SCM elt)
 
 
 SCM
-ly_offset2scm (Offset o)
+to_scm (Offset o)
 {
   return gh_cons (gh_double2scm (o[X_AXIS]), gh_double2scm(o[Y_AXIS]));
 }
 
 Offset
-ly_scm2offset (SCM s)
+scm_to (SCM s, Offset*)
 {
   return Offset (gh_scm2double (gh_car (s)),
                 gh_scm2double (gh_cdr (s)));
index d18824b443a58c77df4ab3504b8ace86a5d517f9..249abd0743389dd843a477ec07924803cff7e359 100644 (file)
@@ -58,13 +58,17 @@ Local_key_item::accidental (int j, bool cautionary, bool natural) const
   return m;
 }
 
-Molecule*
-Local_key_item::do_brew_molecule_p() const
+/*
+  UGH. clean me up
+ */
+Molecule 
+Local_key_item::do_brew_molecule() const
 {
-  Molecule*output = new Molecule;
+  Molecule mol;
   Staff_symbol_referencer_interface si (this);
   Real note_distance = si.staff_space ()/2;
-  Molecule *octave_mol_p = 0;
+  Molecule octave_mol;
+  bool oct_b = false;
   int lastoct = -100;
   
   for  (int i = 0; i <  accidental_arr_.size(); i++) 
@@ -73,14 +77,14 @@ Local_key_item::do_brew_molecule_p() const
       // do one octave
       if (p.octave_i_ != lastoct) 
        {
-         if (octave_mol_p)
+         if (oct_b)
            {
              Real dy =lastoct*7* note_distance;
-             octave_mol_p->translate_axis (dy, Y_AXIS);
-             output->add_molecule (*octave_mol_p);
-             delete octave_mol_p;
+             octave_mol.translate_axis (dy, Y_AXIS);
+             mol.add_molecule (octave_mol);
+             octave_mol = Molecule ();
            }
-         octave_mol_p= new Molecule;
+         oct_b = true; 
        }
       
       lastoct = p.octave_i_;
@@ -94,15 +98,15 @@ Local_key_item::do_brew_molecule_p() const
                              accidental_arr_[i].natural_b_));
 
       m.translate_axis (dy, Y_AXIS);
-      octave_mol_p->add_at_edge (X_AXIS, RIGHT, m, 0);
+      octave_mol.add_at_edge (X_AXIS, RIGHT, m, 0);
     }
 
-  if (octave_mol_p)
+  if (oct_b)
     {
       Real dy =lastoct*7*note_distance;
-      octave_mol_p->translate_axis (dy, Y_AXIS);
-      output->add_molecule (*octave_mol_p);
-      delete octave_mol_p;
+      octave_mol.translate_axis (dy, Y_AXIS);
+      mol.add_molecule (octave_mol);
+      octave_mol = Molecule ();
     }
   
  if (accidental_arr_.size()) 
@@ -123,10 +127,10 @@ Local_key_item::do_brew_molecule_p() const
        Box b(Interval (0, gh_scm2double (pads[d]) * note_distance),
              Interval (0,0));
        Molecule m (lookup_l ()->fill (b));
-       output->add_at_edge (X_AXIS, d, m, 0);
+       mol.add_at_edge (X_AXIS, d, m, 0);
       } while ( flip (&d)!= LEFT);
     }
 
-  return output;
+  return mol;
 }
 
index 28a50a073eeb96b44316f1950668ac6cc15eb218..f1d1189b2495ec7653b19ae93c338fa37cee65b0 100644 (file)
@@ -59,9 +59,10 @@ Lookup::afm_find (String s, bool warn) const
        }
     }
   AFM_CharMetricInfo const *cm = afm_l_->find_char_metric (s, warn);
-  Molecule m;
+
   if (!cm)
     {
+      Molecule m;
       m.set_empty (false);
       return m;
     }
@@ -71,9 +72,7 @@ Lookup::afm_find (String s, bool warn) const
                    SCM_UNDEFINED));
 
   at= fontify_atom (afm_l_,at);
-  m.dim_ = afm_bbox_to_box (cm->charBBox);
-  m.add_atom (at);
-  return m;
+  return Molecule ( afm_bbox_to_box (cm->charBBox), at);
 }
 
 Molecule
@@ -177,19 +176,17 @@ Lookup::beam (Real slope, Real width, Real thick)
   Real max_y = (0 >? height) + thick/2;
 
   
-  Molecule m;
-  m.dim_[X_AXIS] = Interval (0, width);
-  m.dim_[Y_AXIS] = Interval (min_y, max_y);
 
-  
-  SCM at = (gh_list (ly_symbol2scm ("beam"),
-             gh_double2scm (width),
-             gh_double2scm (slope),
-             gh_double2scm (thick),
-             SCM_UNDEFINED));
+  Box b( Interval (0, width),
+        Interval (min_y, max_y));
 
-  m.add_atom (at);
-  return m;
+  
+  SCM at = gh_list (ly_symbol2scm ("beam"),
+                   gh_double2scm (width),
+                   gh_double2scm (slope),
+                   gh_double2scm (thick),
+                   SCM_UNDEFINED);
+  return Molecule (b, at);
 }
 
 
@@ -198,9 +195,10 @@ Molecule
 Lookup::dashed_slur (Bezier b, Real thick, Real dash)
 {
   SCM l = SCM_EOL;
+  // this is silly, we have array_to_scm
   for (int i= 4; i -- ;)
     {
-      l = gh_cons (ly_offset2scm (b.control_[i]), l);
+      l = gh_cons (to_scm (b.control_[i]), l);
     }
 
   SCM at = (gh_list (ly_symbol2scm ("dashed-slur"),
@@ -208,9 +206,9 @@ Lookup::dashed_slur (Bezier b, Real thick, Real dash)
                               gh_double2scm (dash),
                               ly_quote_scm (l),
                               SCM_UNDEFINED));
-  Molecule m;
-  m.add_atom (at);
-  return m;
+
+  Box box (Interval(0,0),Interval( 0,0));
+  return   Molecule (box, at);
 }
 
 
@@ -228,8 +226,6 @@ Lookup::fill (Box b)
 Molecule
 Lookup::filledbox (Box b ) 
 {
-  Molecule m;
-  
   SCM  at  = (gh_list (ly_symbol2scm ("filledbox"),
                     gh_double2scm (-b[X_AXIS][LEFT]),
                     gh_double2scm (b[X_AXIS][RIGHT]),                 
@@ -237,9 +233,7 @@ Lookup::filledbox (Box b )
                     gh_double2scm (b[Y_AXIS][UP]),                    
                     SCM_UNDEFINED));
 
-  m.dim_ = b;
-  m.add_atom (at);
-  return m;
+  return Molecule ( b,at);
 }
 
 Molecule
@@ -320,7 +314,6 @@ sanitise_PS_string (String t)
 Molecule
 Lookup::text (String style, String text, Paper_def *paper_l) 
 {
-  Molecule m;
   if (style.empty_b ())
     style = "roman";
   
@@ -361,15 +354,14 @@ Lookup::text (String style, String text, Paper_def *paper_l)
   else if (output_global_ch == "ps")
     text = sanitise_PS_string (text);
     
-  m.dim_ = metric_l->text_dimension (text);
+
   
   SCM at = (gh_list (ly_symbol2scm ("text"),
                     ly_str02scm (text.ch_C()),
                     SCM_UNDEFINED));
   at = fontify_atom (metric_l,at);
-  
-  m.add_atom (at);
-  return m;
+  return Molecule ( metric_l->text_dimension (text),
+                   at);
 }
   
 
@@ -377,8 +369,6 @@ Lookup::text (String style, String text, Paper_def *paper_l)
 Molecule
 Lookup::staff_brace (Real y, int staff_size) 
 {
-  Molecule m;
-
   // URG
   Real step  = 1.0;
   int minht  = 2 * staff_size;
@@ -396,10 +386,9 @@ Lookup::staff_brace (Real y, int staff_size)
 
   at = fontify_atom (all_fonts_global_p->find_font (nm), at);
   
-  m.dim_[Y_AXIS] = Interval (-y/2,y/2);
-  m.dim_[X_AXIS] = Interval (0,0);
-  m.add_atom (at);
-  return m;
+  Box b ( Interval (-y/2,y/2),
+          Interval (0,0));
+  return Molecule(b, at);
 }
  
 
@@ -417,10 +406,11 @@ Lookup::slur (Bezier curve, Real curvethick, Real linethick)
   back.control_[2] += curvethick * complex_exp (Offset (0, alpha + M_PI/2));  
 
   SCM scontrols[8];
+  // this is silly, we have array_to_scm
   for (int i=4; i--;)
-    scontrols[ i ] = ly_offset2scm (back.control_[i]);
+    scontrols[ i ] = to_scm (back.control_[i]);
   for (int i=4 ; i--;)
-    scontrols[i+4] = ly_offset2scm (curve.control_[i]);
+    scontrols[i+4] = to_scm (curve.control_[i]);
 
   /*
     Need the weird order b.o. the way PS want its arguments  
@@ -438,17 +428,13 @@ Lookup::slur (Bezier curve, Real curvethick, Real linethick)
                     gh_double2scm (linethick),
                     SCM_UNDEFINED));
 
-  Molecule m; 
-  m.dim_[X_AXIS] = curve.extent (X_AXIS);
-  m.dim_[Y_AXIS] = curve.extent (Y_AXIS);
-  m.add_atom (at);
-  return m;
+  Box b ( curve.extent (X_AXIS), curve.extent (Y_AXIS));
+  return Molecule (b, at);
 }
 
 Molecule
 Lookup::staff_bracket (Real height, Paper_def* paper_l)
 {
-  Molecule m;
   SCM at = ( gh_list (ly_symbol2scm ("bracket"),
                      gh_double2scm (paper_l->get_var("bracket_arch_angle")),
                      gh_double2scm (paper_l->get_var("bracket_arch_width")),
@@ -458,10 +444,9 @@ Lookup::staff_bracket (Real height, Paper_def* paper_l)
                      gh_double2scm (paper_l->get_var("bracket_arch_thick")),
                      gh_double2scm (paper_l->get_var("bracket_thick")),
                      SCM_UNDEFINED));
-  
-  m.add_atom (at);                              
-  m.dim_[Y_AXIS] = Interval (-height/2,height/2);
-  m.dim_[X_AXIS] = Interval (0,4 PT);
+
+  Box b ( Interval (-height/2,height/2), Interval (0,4 PT));
+  Molecule m (b, at);
 
   m.translate_axis (- 4. / 3. * m.dim_[X_AXIS].length (), X_AXIS);
   return m;
index 6e9dbfdb24c76166c8512132acdbe86bbd6c2e06..404644f2cea633c6ede89df0f58ab6326aaf3903 100644 (file)
@@ -18,7 +18,6 @@ Mark_engraver::Mark_engraver ()
   mark_req_l_ = 0;
   axis_ = Y_AXIS;
   type_ = "mark";
-  visibility_lambda_ = ly_eval_str ("mark-visibility");
 }
 
 void
index f447d542d6e44738d8e117eebf5bca1addc56668..cd4d0482063cfdfabfd6933b8b6bbe431e4688cd 100644 (file)
   ugh. Rewrite not finished yet. Still must copy atom lists.
  */
 
+
 #include <math.h>
 
+#include "dimensions.hh"
 #include "interval.hh"
 #include "string.hh"
 #include "molecule.hh"
@@ -32,67 +34,60 @@ Molecule::extent(Axis a) const
   return dim_[a];
 }
 
+Molecule::Molecule (Box b, SCM func)
+{
+  expr_ = func;
+  dim_ = b ;
+}
+
+Molecule::Molecule()
+{
+  expr_ = SCM_EOL;
+  set_empty (true);
+}
+
 void
 Molecule::translate (Offset o)
 {
-  if (isinf (o.length ()))
-    {
-      programming_error ("Translating infinitely. Ignore.");
-      return;
-    }
-    
-  for (SCM ptr = gh_cdr (atom_list_);  ptr != SCM_EOL; ptr = gh_cdr(ptr))
+  Axis a = X_AXIS;
+  while (a < NO_AXES)
     {
-      gh_set_car_x (ptr, translate_atom (o, gh_car (ptr)));
+      if (abs(o[a]) > 30 CM
+         || isinf (o[a]) || isnan (o[a]))
+       {
+         programming_error ("Improbable offset for translation: setting to zero");
+         o[a] =  0.0;
+       }
+      incr (a);
     }
+
+  expr_ = gh_list (ly_symbol2scm ("translate-molecule"),
+                  to_scm (o),
+                  expr_, SCM_UNDEFINED);
   if (!empty_b ())
     dim_.translate (o);
 }
+  
 
 void
 Molecule::translate_axis (Real x,Axis a)
 {
-  if (isinf (x))
-    {
-      programming_error ("Translating infinitely. Ignore.");
-      return;
-    }
-  for (SCM ptr = gh_cdr (atom_list_);  ptr != SCM_EOL; ptr = gh_cdr(ptr))
-    {
-      gh_set_car_x (ptr, translate_atom_axis (x, a, gh_car (ptr)));
-    }
+  Offset o(0,0);
+  o[a] = x;
+  translate (o);
+}  
+
 
-  if (!dim_[a].empty_b ())
-    dim_[a] += x;
-}
 
 void
 Molecule::add_molecule (Molecule const &m)
 {
-  for (SCM ptr = gh_cdr (m.atom_list_);  ptr != SCM_EOL; ptr = gh_cdr(ptr))
-    {
-      add_atom (gh_car (ptr));
-    }
+  expr_ = gh_list (ly_symbol2scm ("combine-molecule"),
+                  m.expr_,
+                  expr_, SCM_UNDEFINED);
   dim_.unite (m.dim_);
 }
 
-void
-Molecule::add_atom (SCM atomsmob)
-{
-  gh_set_cdr_x (atom_list_,
-               gh_cons  (atomsmob, gh_cdr (atom_list_)));
-}
-
-void
-Molecule::operator=(Molecule const & src)
-{
-  if (&src == this)
-    return;
-
-  atom_list_ = gh_cons (SCM_EOL,scm_list_copy (gh_cdr (src.atom_list_)));
-  dim_= src.dim_;
-}
-
 void
 Molecule::set_empty (bool e)
 {
@@ -112,41 +107,16 @@ void
 Molecule::print () const
 {
 #ifndef NPRINT
-  for (SCM ptr = gh_cdr (atom_list_);  ptr != SCM_EOL; ptr = gh_cdr(ptr))
-    gh_display (gh_car (ptr));
+  gh_display (expr_);
 #endif
 }
 
-Molecule::Molecule (Molecule const &s)
-{
-  atom_list_ = gh_cons (SCM_EOL, scm_list_copy (gh_cdr (s.atom_list_)));
-  dim_ = s.dim_;
-}
-
-Molecule::~Molecule ()
-{
-}
-
-
 void
 Molecule::align_to (Axis a, Direction d)
 {
-  if (d == CENTER)
-    {
-      Interval i (extent (a));
-      translate_axis (-i.center (), a);
-    }
-  else
-    {
-      translate_axis (-extent (a)[d], a);
-    }
-}
-
-Molecule::Molecule ()
-{
-  dim_[X_AXIS].set_empty ();
-  dim_[Y_AXIS].set_empty ();
-  atom_list_ = gh_cons (SCM_EOL, SCM_EOL);
+  Interval i (extent (a));
+  Real r =  (d == CENTER) ? i.center () : i[d];
+  translate_axis (-r, a);
 }
 
 
@@ -168,5 +138,5 @@ Molecule::add_at_edge (Axis a, Direction d, Molecule const &m, Real padding)
 bool
 Molecule::empty_b () const
 {
-  return gh_cdr (atom_list_) == SCM_EOL;
+  return expr_ == SCM_EOL;
 }
index 3d7a69474e88fcfa3f2781dc68338a83bde7ecab..45002d8eed960afa0f791885a3d2f9632f1d3795 100644 (file)
@@ -64,6 +64,7 @@ make_rational (SCM n, SCM d)
 
 #include "ly-smobs.icc"
 
+IMPLEMENT_UNSMOB(Moment,moment);
 IMPLEMENT_SMOBS(Moment);
 
 void
index 2b5ff1ac50eefb8110454b4ec4546bd19e03ed61..cba889d3f71924ee7f05401f26b33cca8c8abf56 100644 (file)
@@ -30,8 +30,8 @@ Multi_measure_rest::Multi_measure_rest ()
    [TODO]                                      17
  * variable-sized multi-measure rest symbol: |====| ??
 */
-Molecule*
-Multi_measure_rest::do_brew_molecule_p () const
+Molecule 
+Multi_measure_rest::do_brew_molecule () const
 {
   Real staff_space
     = staff_symbol_referencer (this).staff_space ();
@@ -48,7 +48,7 @@ Multi_measure_rest::do_brew_molecule_p () const
       sp_iv[d] = coldim[-d]  ;
     }
   while ((flip (&d)) != LEFT);
-  Molecule *mol_p  = new Molecule;
+  Molecule mol;
   Real x_off = 0.0;
 
   Real rx  = spanned_drul_[LEFT]->relative_coordinate (0, X_AXIS);
@@ -119,17 +119,17 @@ Multi_measure_rest::do_brew_molecule_p () const
       s = lookup_l ()->afm_find (idx);
     }
   
-  mol_p->add_molecule (s);
+  mol.add_molecule (s);
 
   if (measures > 1)
     {
       Molecule s (lookup_l ()->text ("number", to_str (measures), paper_l ()));
       s.align_to (X_AXIS, CENTER);
       s.translate_axis (3.0 * staff_space, Y_AXIS);
-      mol_p->add_molecule (s);
+      mol.add_molecule (s);
     }
-  mol_p->translate_axis (x_off, X_AXIS);
-  return mol_p;
+  mol.translate_axis (x_off, X_AXIS);
+  return mol;
 }
 
 /*
index d7da247660a90f0b37a419021e636ae9bbe7b97f..188d967f3bd6bce78c810e26f595a6c5b1c81af1 100644 (file)
@@ -26,7 +26,7 @@ Note_head::ledger_line (Interval xwid) const
 {
   Drul_array<Molecule> endings;
   endings[LEFT] = lookup_l()->afm_find ("noteheads-ledgerending");
-  Molecule * e = &endings[LEFT];
+  Molecule *e = &endings[LEFT];
   endings[RIGHT] = *e;
   
   Real thick = e->dim_[Y_AXIS].length();
@@ -79,8 +79,8 @@ Note_head::do_pre_processing ()
 
 
 
-Molecule*
-Note_head::do_brew_molecule_p() const 
+Molecule 
+Note_head::do_brew_molecule() const 
 {
   Staff_symbol_referencer_interface si (this);
   
@@ -98,15 +98,14 @@ Note_head::do_brew_molecule_p() const
       type = ly_scm2string (style);
     }
   
-  Molecule*  out =
-    new Molecule (lookup_l()->afm_find (String ("noteheads-") + to_str (balltype_i ()) + type));
+  Molecule   out = lookup_l()->afm_find (String ("noteheads-") + to_str (balltype_i ()) + type);
 
-  Box ledgerless = out->dim_;
+  Box ledgerless = out.dim_;
 
   if (streepjes_i) 
     {
       Direction dir = (Direction)sign (p);
-      Interval hd = out->dim_[X_AXIS];
+      Interval hd = out.dim_[X_AXIS];
       Real hw = hd.length ()/4;
       
       Molecule ledger (ledger_line  (Interval (hd[LEFT] - hw,
@@ -119,11 +118,11 @@ Note_head::do_brew_molecule_p() const
          Molecule s (ledger);
          s.translate_axis (-dir * inter_f * (i*2 + parity),
                           Y_AXIS);
-         out->add_molecule (s);
+         out.add_molecule (s);
        }
     }
 
-  out->dim_ = ledgerless;
+  out.dim_ = ledgerless;
   return out;
 }
 
index f3863b13bd202634c9f5909d0aa7ea4d7070f904..fc5630d9ac7c95bca21f18901557a9b3eb6cfe66 100644 (file)
@@ -73,57 +73,43 @@ Paper_outputter::output_header ()
 }
 
 void
-Paper_outputter::output_molecule (Molecule const*m, Offset o, char const *nm)
+Paper_outputter::output_molecule (SCM expr, Offset o, char const *nm)
 {
+#if 0
   if (flower_dstream)
     {
       output_comment (nm);
     }
+#endif
+  
+  SCM offset_sym = ly_symbol2scm ("translate-molecule");
+  SCM combine_sym = ly_symbol2scm ("combine-molecule");
+enter:
 
-  SCM offset_sym = ly_symbol2scm ("translate-atom"); 
-  for (SCM ptr = gh_cdr (m->atom_list_); ptr != SCM_EOL; ptr = gh_cdr (ptr))
+  if (!gh_pair_p (expr))
+    return;
+  
+  SCM head =gh_car (expr);
+  if (head == offset_sym)
     {
-      SCM func =  gh_car (ptr);
-      SCM funcptr = func;
-
-      Offset a_off (0,0);
-      while (gh_pair_p (funcptr))
-       {
-         if (gh_car (funcptr) == offset_sym)
-           {
-             SCM quot = gh_cadr (funcptr);
-             a_off += ly_scm2offset (gh_cadr (quot));
-           }
-         funcptr = scm_last_pair (funcptr);
-         if (funcptr != SCM_EOL )
-           {
-             funcptr = gh_car (funcptr);
-           }
-       }
-      
-      a_off += o;
-      
-      Axis a = X_AXIS;
-      while (a < NO_AXES)
-       {
-         if (abs(a_off[a]) > 30 CM
-             || isinf (a_off[a]) || isnan (a_off[a]))
-           {
-             programming_error ("Improbable offset for object: setting to zero");
-             a_off[a] =  0.0;
-           }
-         incr (a);
-       }
-
-       
-      SCM box_scm
-       = gh_list (ly_symbol2scm ("placebox"),
-                  gh_double2scm (a_off[X_AXIS]),
-                  gh_double2scm (a_off[Y_AXIS]),
-                  func,
-                  SCM_UNDEFINED);
+      o += scm_to (gh_cadr (expr), &o);
+      expr = gh_caddr (expr);
+      goto enter;
+    }
+  else if (head == combine_sym)
+    {
+      output_molecule (gh_cadr (expr), o, nm);
+      expr = gh_caddr (expr);
+      goto enter;              // tail recursion
+    }
+  else
+    {
+      output_scheme (gh_list (ly_symbol2scm ("placebox"),
+                             gh_double2scm (o[X_AXIS]),
+                             gh_double2scm (o[Y_AXIS]),
+                             expr,
+                             SCM_UNDEFINED));
 
-      output_scheme (box_scm);
     }
 }
 
index 671c59bf723b9b0e7dbb4d08f69d5d0580463020..783372390c783e7a0886d4189fef4feec0dc17ac 100644 (file)
@@ -37,8 +37,8 @@ Rest::do_post_processing ()
 }
 
 
-Molecule *
-Rest::do_brew_molecule_p () const
+Molecule 
+Rest::do_brew_molecule () const
 {
   bool ledger_b =false;
 
@@ -58,7 +58,7 @@ Rest::do_brew_molecule_p () const
 
   String idx =  ("rests-") + to_str (balltype_i ()) + (ledger_b ? "o" : "") + style;
 
-  return new Molecule(lookup_l ()->afm_find (idx));
+  return lookup_l ()->afm_find (idx);
 }
 
 
index e864d60875993f4168232cf5fcdff9e931211c20..83357769fa3c9d26f730e11e34d1bdf1226abb70 100644 (file)
@@ -31,8 +31,6 @@ Scheme_hash_table::do_smobify_self ()
 {
 }
 
-#include "ly-smobs.icc"
-IMPLEMENT_SMOBS(Scheme_hash_table);
 
 SCM
 Scheme_hash_table::mark_smob (SCM s)
@@ -108,3 +106,7 @@ Scheme_hash_table::to_alist () const
   return l;  
 }
 
+
+#include "ly-smobs.icc"
+IMPLEMENT_UNSMOB(Scheme_hash_table,scheme_hash);
+IMPLEMENT_SMOBS(Scheme_hash_table);
index 63a89e500f630105df6ed02fc2c793eb3348399c..bdc28e626aff13416e360958c365f685a23cd1e7 100644 (file)
@@ -30,7 +30,6 @@
 
 Score_element::Score_element()
 {
-  output_p_ =0;
   dim_cache_[X_AXIS] = new Dimension_cache;
   dim_cache_[Y_AXIS] = new Dimension_cache;
   dim_cache_[X_AXIS]->elt_l_ = dim_cache_[Y_AXIS]->elt_l_ = this;
@@ -66,7 +65,6 @@ Score_element::Score_element (Score_element const&s)
   original_l_ =(Score_element*) &s;
   element_property_alist_ = SCM_EOL; // onstack;
 
-  output_p_ =0;
   status_i_ = s.status_i_;
   lookup_l_ = s.lookup_l_;
   pscore_l_ = s.pscore_l_;
@@ -76,7 +74,6 @@ Score_element::Score_element (Score_element const&s)
 
 Score_element::~Score_element()
 {
-  assert (!output_p_);
   assert (status_i_ >=0);
   status_i_  = -1;
 
@@ -146,12 +143,8 @@ Interval
 Score_element::molecule_extent(Dimension_cache const *c)
 {
   Score_element *s = dynamic_cast<Score_element*>(c->element_l());
-  Molecule*m = s->do_brew_molecule_p();
-  
-  Interval iv =  m->extent()[c->axis ()];
-
-  delete m;
-  return iv;
+  Molecule m = s->do_brew_molecule();
+  return   m.extent()[c->axis ()];
 }
 
 
@@ -255,11 +248,8 @@ Score_element::output_processing ()
   if (to_boolean  (get_elt_property ("transparent")))
     return;
 
-  // we're being silly here. 
-  if (output_p_)
-    delete output_p_;
   
-  output_p_ = do_brew_molecule_p ();
+  Molecule m (do_brew_molecule ());
   Offset o (relative_coordinate (0, X_AXIS), relative_coordinate (0, Y_AXIS));
 
   SCM s = get_elt_property ("extra-offset");
@@ -270,12 +260,7 @@ Score_element::output_processing ()
       o[Y_AXIS] += il * gh_scm2double (gh_cdr (s));      
     }
   
-  pscore_l_->outputter_l_->output_molecule (output_p_,
-                                           o,
-                                           classname(this));
-
-  delete output_p_;
-  output_p_ =0;
+  pscore_l_->outputter_l_->output_molecule (m.expr_, o, classname(this));
 }
 
 /*
@@ -316,22 +301,20 @@ Score_element::do_add_processing()
 
 
 
-Molecule*
-Score_element::do_brew_molecule_p() const
+Molecule 
+Score_element::do_brew_molecule() const
 {
   SCM glyph = get_elt_property ("glyph");
   if (gh_string_p (glyph))
     {
-      Molecule*output = new Molecule (lookup_l ()->afm_find (String (ly_scm2string (glyph))));
+      return lookup_l ()->afm_find (String (ly_scm2string (glyph)));
       
-      return output;
     }
   else
     {
       Interval emp;
       emp.set_empty ();
-      Molecule a (lookup_l ()->fill (Box (emp,emp)));
-      return new Molecule (a);
+      return lookup_l ()->fill (Box (emp,emp));
     }
 }
 
@@ -609,8 +592,8 @@ Score_element::fixup_refpoint ()
 
 #include "ly-smobs.icc"
 
-IMPLEMENT_SMOBS(Score_element);
 IMPLEMENT_UNSMOB(Score_element, element);
+IMPLEMENT_SMOBS(Score_element);
 SCM
 Score_element::mark_smob (SCM ses)
 {
index 494faed2b4703446636f553ed9f46df9dfa078d1..7e19e16940ab95320646df44fd6949be31948e24 100644 (file)
@@ -56,15 +56,15 @@ Script::do_post_processing ()
   i.set_direction (d);
 }
 
-Molecule*
-Script::do_brew_molecule_p () const
+Molecule 
+Script::do_brew_molecule () const
 {
   Direction dir = DOWN;
   SCM d = get_elt_property ("direction");
   if (isdir_b (d))
     dir = to_dir (d);
   
-  return new Molecule (get_molecule (dir));
+  return get_molecule (dir);
 }
 
 
index bc64fd20c4f35e8ad537c038ade4da51908c2f10..679ece65b5b264333a03e235cd0938a21be8c108 100644 (file)
 #include "molecule.hh"
 #include "debug.hh"
 #include "box.hh"
-#include "bezier.hh"
 #include "bezier-bow.hh"
 #include "main.hh"
 #include "cross-staff.hh"
 #include "group-interface.hh"
+#include "staff-symbol-referencer.hh"
+#include "lily-guile.icc"
+
+
+class Slur_bezier_bow : public Bezier_bow
+{
+public:
+  Slur_bezier_bow (Array<Offset> encompass, Direction dir);
+  Array<Real> area_x_gradients_array (Real area);
+  void blow_fit ();
+  Real enclosed_area_f () const;
+  Real fit_factor () const;
+  void minimise_enclosed_area (Paper_def* paper_l, Real default_height);
+};
+
+Slur_bezier_bow::Slur_bezier_bow (Array<Offset> encompass, Direction dir)
+  : Bezier_bow (encompass, dir)
+{
+}
+
+void
+Slur_bezier_bow::blow_fit ()
+{
+  Real len = curve_.control_[3][X_AXIS]; 
+  Real h = curve_.control_[1][Y_AXIS] * fit_factor () / len;
+  curve_.control_[1][Y_AXIS] = h * len;
+  curve_.control_[2][Y_AXIS] = h * len;  
+  curve_.assert_sanity ();
+}
+
+
+Real
+Slur_bezier_bow::enclosed_area_f () const
+{
+  Real a = 0;
+  for (int i=0; i < encompass_.size (); i++)
+    {
+      Interval x;
+      Interval y;
+      if (i == 0)
+       {
+         x = Interval (0, encompass_[1][X_AXIS] / 2);
+         y = Interval (0,
+                       curve_.get_other_coordinate (X_AXIS,
+                                                    encompass_[1][X_AXIS]
+                                                    / 2));
+       }
+      else if (i == encompass_.size () - 1)
+       {
+         x = Interval ((encompass_[i-1][X_AXIS] + encompass_[i][X_AXIS])/2, 
+                       encompass_[i][X_AXIS]);
+         y = Interval (0,
+                       (curve_.get_other_coordinate (X_AXIS,
+                                                     (x[MIN] + x[MAX]) / 2)));
+       }
+      else
+       {
+         x = Interval ((encompass_[i-1][X_AXIS] + encompass_[i][X_AXIS]) / 2, 
+                       (encompass_[i][X_AXIS] + encompass_[i+1][X_AXIS]) / 2);
+         y = Interval (encompass_[i][Y_AXIS],
+                       (curve_.get_other_coordinate (X_AXIS, x[MIN])
+                        + curve_.get_other_coordinate (X_AXIS,
+                                                       (x[MIN] + x[MAX]) / 2)
+                        + curve_.get_other_coordinate (X_AXIS, x[MAX])) / 3);
+       }
+      
+      Real da = x.length () * y.length ();
+      a += da;
+    }
+  return a;
+}
+
+Array<Real>
+Slur_bezier_bow::area_x_gradients_array (Real area)
+{
+  Real len = curve_.control_[3][X_AXIS]; 
+  Real grow = len / 10.0;
+  Array<Real> da (2);
+  for (int i=0; i < 2; i++)
+    {
+      Real r = curve_.control_[i+1][X_AXIS];
+      curve_.control_[i+1][X_AXIS] += grow;
+      da[i] = (enclosed_area_f () - area) / grow;
+      curve_.control_[i+1][X_AXIS] = r; 
+    }
+  return da;
+}
+
+void
+Slur_bezier_bow::minimise_enclosed_area (Paper_def* paper_l,
+                                        Real default_height)
+{
+  Real length = curve_.control_[3][X_AXIS]; 
+  Real bbc = paper_l->get_var ("bezier_beautiful");
+  Real beautiful = length * default_height / bbc;
+
+  DEBUG_OUT << to_str ("Beautiful: %f\n", beautiful);
+  DEBUG_OUT << to_str ("Length: %f\n", length);
+  DEBUG_OUT << to_str ("D-height: %f\n", default_height);
+  DEBUG_OUT << to_str ("FitFac: %f\n", fit_factor ());
+
+  if (fit_factor () > 1.0)
+    blow_fit ();
+  
+  Real pct_c0 = paper_l->get_var ("bezier_pct_c0");
+  Real pct_c3 = paper_l->get_var ("bezier_pct_c3");
+  Real pct_in_max = paper_l->get_var ("bezier_pct_in_max");
+  Real pct_out_max = paper_l->get_var ("bezier_pct_out_max");
+  Real steps = paper_l->get_var ("bezier_area_steps");
+
+  for (int i=0; i < steps; i++)
+    {
+      Real area = enclosed_area_f ();
+      if (!i)
+       DEBUG_OUT << to_str ("Init area: %f\n", area);
+
+      if (area <= beautiful)
+       break;
+
+      Array<Real> da = area_x_gradients_array (area);
+
+      // urg
+      Real pct = pct_c0 + pct_c3 * length * length * length;
+      pct *= (steps - i) / steps;
+      if (da[0] > 0 || da[1] < 0)
+       pct = pct <? pct_out_max;
+      else
+       pct = pct <? pct_in_max;
+
+      Real u = (abs (curve_.control_[1][X_AXIS] / da[0])
+               <? abs ((curve_.control_[3][X_AXIS]
+                        - curve_.control_[2][X_AXIS]) / da[1]));
+
+      DEBUG_OUT << to_str ("pct: %f\n", pct);
+      DEBUG_OUT << to_str ("u: %f\n", u);
+
+      DEBUG_OUT << to_str ("da: (%f, %f)\n", da[0], da[1]);
+      DEBUG_OUT << to_str ("da*u: (%f, %f)\n", da[0]*u*pct, da[1]*u*pct);
+      DEBUG_OUT << to_str ("cx: (%f, %f)\n", curve_.control_[1][X_AXIS],
+                          curve_.control_[2][X_AXIS]);
+
+      curve_.control_[1][X_AXIS] -= da[0] * u * pct;
+      curve_.control_[2][X_AXIS] -= da[1] * u * pct;
+    }
+
+  Real area = enclosed_area_f ();
+  DEBUG_OUT << to_str ("Exarea: %f\n", area);
+}
+
+
+
+/*
+  max ( encompass.y / curve.y )
+  
+ */
+Real
+Slur_bezier_bow::fit_factor () const
+{
+  Real x1 = encompass_[0][X_AXIS];
+  Real x2 = encompass_.top ()[X_AXIS];
+
+  Real factor = 0.0;
+  for (int i=1; i < encompass_.size ()-1; i++)
+    {
+      if (encompass_[i][X_AXIS] > x1 && encompass_[i][X_AXIS] < x2)
+       {
+        Real y = curve_.get_other_coordinate (X_AXIS, encompass_[i][X_AXIS]);
+        if (y>0)
+          {
+            Real f = encompass_[i][Y_AXIS] / y;
+            factor = factor >? f;
+          }
+       }
+    }
+
+
+  return factor;
+}
+
+
+
+
+
+/*
+  Slur
+*/
 
 Slur::Slur ()
 {
+  // URG
   dy_f_drul_[LEFT] = dy_f_drul_[RIGHT] = 0.0;
   dx_f_drul_[LEFT] = dx_f_drul_[RIGHT] = 0.0;
+
   set_elt_property ("note-columns", SCM_EOL);
+  set_elt_property ("control-points", SCM_EOL);
+
+#if 0
+  /*
+    I still don't understand the merits of this Group_interface.
+   */
+  Group_interface c (this, "control-points");
+  c.set_interface ();
+#endif
 }
 
 void
@@ -50,6 +246,36 @@ Slur::add_column (Note_column*n)
     }
 }
 
+void
+Slur::de_uglyfy (Slur_bezier_bow* bb, Real default_height)
+{
+  Real length = bb->curve_.control_[3][X_AXIS] ; 
+  Real ff = bb->fit_factor ();
+  for (int i = 1; i < 3; i++)
+    {
+      Real ind = abs (bb->curve_.control_[(i-1)*3][X_AXIS]
+                     - bb->curve_.control_[i][X_AXIS]) / length;
+      Real h = bb->curve_.control_[i][Y_AXIS] * ff / length;
+
+      Real f = default_height / length;
+      Real c1 = paper_l ()->get_var ("bezier_control1");
+      Real c2 = paper_l ()->get_var ("bezier_control2");
+      Real c3 = paper_l ()->get_var ("bezier_control3");
+      if (h > c1 * f)
+       {
+         h = c1 * f; 
+       }
+      else if (h > c2 + c3 * ind)
+       {
+         h = c2 + c3 * ind; 
+       }
+      
+      bb->curve_.control_[i][Y_AXIS] = h * length;
+    } 
+
+  bb->curve_.assert_sanity ();
+}
+
 Direction
 Slur::get_default_dir () const
 {
@@ -94,7 +320,7 @@ Slur::encompass_offset (Note_column const* col) const
   if (!stem_l)
     {
       warning (_ ("Slur over rest?"));
-      o[X_AXIS] = col->hpos_f ();
+     o[X_AXIS] = col->hpos_f ();
       o[Y_AXIS] = col->extent (Y_AXIS)[dir];
       return o;  
     }
@@ -125,13 +351,19 @@ Slur::encompass_offset (Note_column const* col) const
   return o;
 }
 
-/*
-  ARGRARGRARGRARGAR!
+void
+Slur::do_post_processing ()
+{
+  set_extremities ();
+  set_control_points ();
+} 
 
-  Fixme
+/*
+  urg
+  FIXME
  */
 void
-Slur::do_post_processing ()
+Slur::set_extremities ()
 {
   Link_array<Note_column> encompass_arr =
     Group_interface__extract_elements (this, (Note_column*)0, "note-columns");
@@ -287,158 +519,6 @@ Slur::do_post_processing ()
        
   if (!fix_broken_b)
     dy_f_drul_[RIGHT] += interstaff_f;
-
-
-
-  return; 
-
-  /*
-    Now we've got a fine slur
-    Catch and correct some ugly cases
-   */
-  String infix = interstaff_b ? "interstaff_" : "";
-  Real height_damp_f = paper_l ()->get_var ("slur_"+infix +"height_damping");
-  Real slope_damp_f = paper_l ()->get_var ("slur_"+infix +"slope_damping");
-  Real snap_f = paper_l ()->get_var ("slur_"+infix +"snap_to_stem");
-  Real snap_max_dy_f = paper_l ()->get_var ("slur_"+infix +"snap_max_slope_change");
-
-  Real dx_f = spanner_length ()+ dx_f_drul_[RIGHT] - dx_f_drul_[LEFT];
-  Real dy_f = dy_f_drul_[RIGHT] - dy_f_drul_[LEFT];
-  if (!fix_broken_b)
-    dy_f -= interstaff_f;
-
-  /*
-    Avoid too steep slurs.
-   */
-  Real slope_ratio_f = abs (dy_f / dx_f);
-  if (slope_ratio_f > slope_damp_f)
-    {
-      Direction d = (Direction)(- my_dir * (sign (dy_f)));
-      if (!d)
-       d = LEFT;
-      Real damp_f = (slope_ratio_f - slope_damp_f) * dx_f;
-      /*
-       must never change sign of dy
-       */
-      damp_f = damp_f <? abs (dy_f);
-      dy_f_drul_[d] += my_dir * damp_f;
-    }
-
-  /*
-   Avoid too high slurs 
-
-   Wierd slurs may look a lot better after they have been
-   adjusted a bit.
-   So, we'll do this in 3 steps
-   */
-  for (int i = 0; i < 3; i++)
-    {
-      Bezier c (get_curve ());
-      
-      Offset size (c.extent (X_AXIS).length (),
-                  c.extent (Y_AXIS).length ());
-
-      dy_f = dy_f_drul_[RIGHT] - dy_f_drul_[LEFT];
-      if (!fix_broken_b)
-       dy_f -= interstaff_f;
-
-      Real height_ratio_f = abs (size[Y_AXIS] / size[X_AXIS]);
-      if (height_ratio_f > height_damp_f)
-       {
-         Direction d = (Direction)(- my_dir * (sign (dy_f)));
-         if (!d)
-           d = LEFT;
-         /* take third step */
-         Real damp_f = (height_ratio_f - height_damp_f) * size[X_AXIS] / 3;
-         /*
-           if y positions at about the same height, correct both ends
-         */
-         if (abs (dy_f / dx_f ) < slope_damp_f)
-           {
-             dy_f_drul_[-d] += my_dir * damp_f;
-             dy_f_drul_[d] += my_dir * damp_f;
-           }
-         /*
-           don't change slope too much, would have been catched by slope damping
-         */
-         else
-           {
-             damp_f = damp_f <? abs (dy_f/2);
-             dy_f_drul_[d] += my_dir * damp_f;
-           }
-       }
-    }
-
-  /*
-    If, after correcting, we're close to stem-end...
-  */
-  Drul_array<Real> snapy_f_drul;
-  snapy_f_drul[LEFT] = snapy_f_drul[RIGHT] = 0;
-  Drul_array<Real> snapx_f_drul;
-  snapx_f_drul[LEFT] = snapx_f_drul[RIGHT] = 0;
-  Drul_array<bool> snapped_b_drul;
-  snapped_b_drul[LEFT] = snapped_b_drul[RIGHT] = false;
-  do
-    {
-      Note_column * nc = note_column_drul[d];
-      if (nc == spanned_drul_[d]
-         && nc->stem_l ()
-         && nc->stem_l ()->get_direction () == my_dir
-         && abs (nc->stem_l ()->extent (Y_AXIS)[my_dir]
-                 - dy_f_drul_[d] + (d == LEFT ? 0 : interstaff_f))
-             <= snap_f)
-       {
-         /*
-           prepare to attach to stem-end
-         */
-         snapx_f_drul[d] = nc->stem_l ()->hpos_f ()
-           - spanned_drul_[d]->relative_coordinate (0, X_AXIS);
-
-         snapy_f_drul[d] = nc->stem_l ()->extent (Y_AXIS)[my_dir]
-           + interstaff_interval[d]
-           + my_dir * 2 * y_gap_f;
-         
-         snapped_b_drul[d] = true;
-       }
-    }
-  while (flip (&d) != LEFT);
-
-  /*
-    only use snapped positions if sign (dy) will not change
-    and dy doesn't change too much
-    */
-  if (!fix_broken_b)
-    dy_f += interstaff_f;
-
-
-  /*
-    (sigh)
-
-    More refactoring could be done.
-   */
-  Real maxsnap = abs (dy_f * snap_max_dy_f);
-  if (snapped_b_drul[LEFT] && snapped_b_drul[RIGHT]
-      && ((sign (snapy_f_drul[RIGHT] - snapy_f_drul[LEFT]) == sign (dy_f)))
-      && (!dy_f || (abs (snapy_f_drul[RIGHT] - snapy_f_drul[LEFT] - dy_f)
-                   < maxsnap)))
-    {
-      dy_f_drul_ = snapy_f_drul;
-      dx_f_drul_ = snapx_f_drul;
-    }
-  else
-    do
-      {
-       Direction od = (Direction)-d;
-       if (snapped_b_drul[d]
-           && d * sign (snapy_f_drul[d] - dy_f_drul_[od]) == sign (dy_f)
-           && (!dy_f || (abs (snapy_f_drul[d] - dy_f_drul_[od]  - d * dy_f)
-                         < maxsnap)))
-         {
-           dy_f_drul_[d] = snapy_f_drul[d];
-           dx_f_drul_[d] = snapx_f_drul[d];
-         }
-      }
-    while (flip (&d) != LEFT);
 }
 
 
@@ -560,8 +640,8 @@ ugly_scm (Bezier  b)
 /*
   Ugh should have dash-length + dash-period
  */
-Molecule*
-Slur::do_brew_molecule_p () const
+Molecule
+Slur::do_brew_molecule () const
 {
   Real thick = paper_l ()->get_var ("slur_thickness");
   Bezier one = get_curve ();
@@ -586,26 +666,60 @@ Slur::do_brew_molecule_p () const
       a.add_molecule (mark);
     }
 #endif
-  return new Molecule (a); 
+  return a;
 }
 
+void
+Slur::set_control_points ()
+{
+  Slur_bezier_bow bb (get_encompass_offset_arr (),
+                     directional_element (this).get ());
+
+  Real staff_space = Staff_symbol_referencer_interface (this).staff_space ();
+  Real h_inf = paper_l ()->get_var ("slur_height_limit_factor") * staff_space;
+  Real r_0 = paper_l ()->get_var ("slur_ratio");
 
+  bb.set_default_bezier (h_inf, r_0);
 
+  if (bb.fit_factor () > 1.0)
+    {
+      Real length = bb.curve_.control_[3][X_AXIS]; 
+      Real default_height = bb.get_default_height (h_inf, r_0, length);
+      bb.minimise_enclosed_area (paper_l(), default_height);
+      
+      Real bff = paper_l ()->get_var ("slur_force_blowfit");
+      bb.curve_.control_[1][Y_AXIS] *= bff;
+      bb.curve_.control_[2][Y_AXIS] *= bff;
+      bb.blow_fit ();
+
+      Real sb = paper_l ()->get_var ("slur_beautiful");
+      Real beautiful = length * default_height * sb;
+      Real area = bb.enclosed_area_f ();
+      
+      /*
+       Slurs that fit beautifully are not ugly
+      */
+      if (area > beautiful)
+       de_uglyfy (&bb, default_height);
+    }
+
+  Bezier b = bb.get_bezier ();
+  SCM controls = array_to_scm (b.control_);
+  set_elt_property ("control-points", controls);
+}
+  
+  
 Bezier
 Slur::get_curve () const
 {
+  Bezier b;
+  Array<Offset> controls (4);
+  scm_to_array (get_elt_property ("control-points"), &controls);
+  b.control_ = controls;
+  
   Array<Offset> enc (get_encompass_offset_arr ());
-  Direction dir =  directional_element (this).get ();
-  Bezier_bow b (enc,dir);
-
-  b.ratio_ = paper_l ()->get_var ("slur_ratio");
-  b.height_limit_ = paper_l ()->get_var ("slur_height_limit");
-  b.rc_factor_ = paper_l ()->get_var ("slur_rc_factor");
-
-  b.calculate ();
-
-  Bezier  curve =  b.get_curve ();
-
+  Direction dir = directional_element (this).get ();
+  
   Real x1 = enc[0][X_AXIS];
   Real x2 = enc.top ()[X_AXIS];
   
@@ -615,12 +729,11 @@ Slur::get_curve () const
       Real x = enc[i][X_AXIS];
       if (x > x1 && x <x2)
        {
-         Real y = curve.get_other_coordinate (X_AXIS, x);
+         Real y = b.get_other_coordinate (X_AXIS, x);
          off = off >? dir *  (enc[i][Y_AXIS] - y);
        }
     }
-  curve.translate (Offset (0, dir * off));
-  return curve;
+  b.translate (Offset (0, dir * off));
+  return b;
 }
 
-       
index 4393de2def4b7392a23383329a6505d1062d4733..0ee3142afdb8076c6cc1ae18b750fab693c10a6f 100644 (file)
@@ -123,15 +123,15 @@ Span_bar::height_callback (Dimension_cache const *c)
   return s->get_spanned_interval ();
 }
 
-Molecule*
-Span_bar::do_brew_molecule_p () const
+Molecule 
+Span_bar::do_brew_molecule () const
 {
   Interval iv (get_spanned_interval ());
-  Molecule*output = new Molecule;
+  Molecule output;
   SCM s = get_elt_property ("glyph");
   if (gh_string_p (s) && !iv.empty_b())
     {
-      output->add_molecule (lookup_l ()->bar (ly_scm2string (s),
+      output.add_molecule (lookup_l ()->bar (ly_scm2string (s),
                                              iv.length (),
                                              paper_l ()));
     }
index a7f2607c26cbda21ac42a0e52caf42eede5c8d2c..9a93d91e7dfebce9d07ce63bf62824357cd3af1a 100644 (file)
@@ -18,7 +18,6 @@ Staff_margin_engraver::Staff_margin_engraver ()
 {
   axis_ = X_AXIS;
   type_ = "margin";
-  visibility_lambda_ = ly_eval_str ("postbreak-only-visibility");
 }
 
 
index 30ff14f405207739df9218cd9910bd6497c6869d..eb32b20db08c916033bf6fff5ca53f6716fb880d 100644 (file)
@@ -54,6 +54,14 @@ Staff_symbol_engraver::do_creation_processing()
 void
 Staff_symbol_engraver::do_removal_processing()
 {
+  SCM n = get_property ("numberOfStaffLines",0);
+  SCM ss = get_property ("staffSpace", 0);
+
+  if (gh_number_p (ss))
+    span_p_->set_elt_property ("staff-space", ss);
+  if (gh_number_p (n))
+    span_p_->set_elt_property ("line-count", n);
+
   span_p_->set_bounds(RIGHT,get_staff_info().command_pcol_l ());
   typeset_element (span_p_);
   span_p_ =0;
index 10d7927201b4aaffa53b71754734aaf6487e9cb6..21123e75d96de75f9bfe88e3bd1e97fc08f37a2a 100644 (file)
@@ -15,8 +15,8 @@
 
 
 
-Molecule*
-Staff_symbol::do_brew_molecule_p() const
+Molecule 
+Staff_symbol::do_brew_molecule() const
 {
   Score_element * common
     = spanned_drul_[LEFT]->common_refpoint (spanned_drul_[RIGHT], X_AXIS);
@@ -28,18 +28,18 @@ Staff_symbol::do_brew_molecule_p() const
     ;
 
   Real t = paper_l ()->get_var ("stafflinethickness");
-  Molecule rule  = lookup_l ()->filledbox (Box (Interval (0,width),
-                                               Interval (-t/2, t/2)));
-
   int l = line_count ();
   
   Real height = (l-1) * staff_space () /2;
-  Molecule * m = new Molecule;
+  Molecule  m;
   for (int i=0; i < l; i++)
     {
-      Molecule a (rule);
+      Molecule a =
+       lookup_l ()->filledbox (Box (Interval (0,width),
+                                    Interval (-t/2, t/2)));
+
       a.translate_axis (height - i * staff_space (), Y_AXIS);
-      m->add_molecule (a);
+      m.add_molecule (a);
     }
 
   return m;
index 57b35d875e12b6e944b181f016a6bbac47c7403b..d6b2fcfa4ce1c624ea2da244f4ed01c606c49b97 100644 (file)
@@ -42,8 +42,8 @@ Stem_tremolo::dim_callback (Dimension_cache const *c)
 }
 
 
-Molecule*
-Stem_tremolo::do_brew_molecule_p () const
+Molecule 
+Stem_tremolo::do_brew_molecule () const
 {
   Stem * st = stem_l ();
   int mult =0;
@@ -85,20 +85,20 @@ Stem_tremolo::do_brew_molecule_p () const
       abbrev_flags = gh_scm2int (a);
   }
 
-  Molecule *beams= new Molecule
+  Molecule mol
   for (int i = 0; i < abbrev_flags; i++)
     {
       Molecule b (a);
       b.translate_axis (interbeam_f * i, Y_AXIS);
-      beams->add_molecule (b);
+      mol.add_molecule (b);
     }
-  beams->translate_axis (-beams->extent ()[Y_AXIS].center (), Y_AXIS);
+  mol.translate_axis (-mol.extent ()[Y_AXIS].center (), Y_AXIS);
 
   if (st)
     { 
       if (st->beam_l ())
         {
-         beams->translate (Offset(st->hpos_f () - hpos_f (),
+         mol.translate (Offset(st->hpos_f () - hpos_f (),
            st->stem_end_position () * half_staff_space - 
            directional_element (st->beam_l ()).get () * beams_i * interbeam_f));
        }
@@ -107,7 +107,7 @@ Stem_tremolo::do_brew_molecule_p () const
          /*
            Beams should intersect one beamthickness below staff end
           */
-         Real dy = - beams->extent ()[Y_AXIS].length () / 2 * st->get_direction ();
+         Real dy = - mol.extent ()[Y_AXIS].length () / 2 * st->get_direction ();
 
          /*
            uhg.  Should use relative coords and placement
@@ -117,7 +117,7 @@ Stem_tremolo::do_brew_molecule_p () const
            : 0.0;
         
          dy += st->stem_end_position ();
-         beams->translate (Offset(st->hpos_f () - hpos_f ()+
+         mol.translate (Offset(st->hpos_f () - hpos_f ()+
                                   whole_note_correction, dy));
        }
 
@@ -127,7 +127,7 @@ Stem_tremolo::do_brew_molecule_p () const
        */
     }
   
-  return beams;
+  return mol;
 }
 
 
index 2061caf1c2d2e0db5d20984b43b6107c298f8d1f..ce3312a9b11dd405d5eb47898c74e67b342456f9 100644 (file)
@@ -444,10 +444,10 @@ Stem::dim_callback (Dimension_cache const* c)
 
 const Real ANGLE = 20* (2.0*M_PI/360.0); // ugh!
 
-Molecule*
-Stem::do_brew_molecule_p () const
+Molecule 
+Stem::do_brew_molecule () const
 {
-  Molecule *mol_p =new Molecule;
+  Molecule mol;
 
   Staff_symbol_referencer_interface si (first_head ());
   
@@ -468,17 +468,17 @@ Stem::do_brew_molecule_p () const
       Real stem_width = paper_l ()->get_var ("stemthickness");
       Molecule ss =lookup_l ()->filledbox (Box (Interval (-stem_width/2, stem_width/2),
                                                 Interval (stem_y[DOWN]*dy, stem_y[UP]*dy)));
-      mol_p->add_molecule (ss);
+      mol.add_molecule (ss);
     }
 
   if (!beam_l () && abs (flag_i ()) > 2)
     {
       Molecule fl = flag ();
       fl.translate_axis(stem_y[get_direction ()]*dy, Y_AXIS);
-      mol_p->add_molecule (fl);
+      mol.add_molecule (fl);
     }
 
-  return mol_p;
+  return mol;
 }
 
 Real
index 034173e7c5688a18c6fe3d292b99340a9b91f0cd..ea0c6f2475aa8efc99a036004c48c2d6c9f313dd 100644 (file)
 #include "paper-def.hh"
 #include "lookup.hh"
 
-Molecule*
-Text_item::do_brew_molecule_p () const
+Molecule 
+Text_item::do_brew_molecule () const
 {
   SCM style = get_elt_property ("style");
   String st = gh_string_p (style) ?  ly_scm2string (style) : "";
   SCM txt = get_elt_property ("text");
   String t = gh_string_p (txt) ? ly_scm2string (txt) : "";
   
-  Molecule a= paper_l ()->lookup_l(0)->text (st, t, paper_l ());
-
-  return new Molecule (a);
+  return paper_l ()->lookup_l(0)->text (st, t, paper_l ());
 }
 
 
index b96a815dfa3b6a4df8b40d7dcc5f3564d0847976..7f1befbf66a19e613f4062fba48b000167791f00 100644 (file)
@@ -106,8 +106,8 @@ Tie::do_post_processing()
   if (!directional_element (this).get ())
     directional_element (this).set (get_default_dir ());
   
-  Real staff_space = paper_l ()->get_var ("interline");
-  Real half_staff_space = staff_space / 2;
+  Real staff_space = staff_symbol_referencer (this).staff_space ();
+  Real half_space = staff_space / 2;
   Real x_gap_f = paper_l ()->get_var ("tie_x_gap");
   Real y_gap_f = paper_l ()->get_var ("tie_y_gap");
 
@@ -150,7 +150,7 @@ Tie::do_post_processing()
 
   Real ypos = position_f ();
 
-  Real y_f = half_staff_space * ypos; 
+  Real y_f = half_space * ypos; 
   int ypos_i = int (ypos);
  
   Real dx_f = extent (X_AXIS).length () + dx_f_drul_[RIGHT] - dx_f_drul_[LEFT];
@@ -158,14 +158,14 @@ Tie::do_post_processing()
   if (dx_f < paper_l ()->get_var ("tie_staffspace_length"))
     {
       if (abs (ypos_i) % 2)
-       y_f += dir * half_staff_space;
+       y_f += dir * half_space;
       y_f += dir * y_gap_f;
     }
   else
     {
       if (! (abs (ypos_i) % 2))
-       y_f += dir * half_staff_space;
-      y_f += dir * half_staff_space;
+       y_f += dir * half_space;
+      y_f += dir * half_space;
       y_f -= dir * y_gap_f;
     }
   
@@ -188,8 +188,8 @@ Tie::get_rods () const
 
 
 
-Molecule*
-Tie::do_brew_molecule_p () const
+Molecule 
+Tie::do_brew_molecule () const
 {
   Real thick = paper_l ()->get_var ("tie_thickness");
   Bezier one = get_curve ();
@@ -201,7 +201,7 @@ Tie::do_brew_molecule_p () const
   else
     a = lookup_l ()->slur (one, directional_element (this).get () * thick, thick);
   
-  return new Molecule (a)
+  return a
 }
 
 
@@ -212,12 +212,12 @@ Tie::get_curve () const
   Direction d (directional_element (this).get ());
   Bezier_bow b (get_encompass_offset_arr (), d);
 
-  b.ratio_ = paper_l ()->get_var ("slur_ratio");
-  b.height_limit_ = paper_l ()->get_var ("slur_height_limit");
-  b.rc_factor_ = paper_l ()->get_var ("slur_rc_factor");
+  Real staff_space = staff_symbol_referencer (this).staff_space ();
+  Real h_inf = paper_l ()->get_var ("tie_height_limit_factor") * staff_space;
+  Real r_0 = paper_l ()->get_var ("tie_ratio");
 
-  b.calculate ();
-  Bezier c (b.get_curve ());
+  b.set_default_bezier (h_inf, r_0);
+  Bezier c = b.get_bezier ();
 
   /* should do this for slurs as well. */
   Array<Real> horizontal (c.solve_derivative (Offset (1,0)));
@@ -227,15 +227,14 @@ Tie::get_curve () const
       /*
        ugh. Doesnt work for non-horizontal curves.
        */
-      Real space = staff_symbol_referencer (this).staff_space ();
       Real y = c.curve_point (horizontal[0])[Y_AXIS];
 
-      Real ry = rint (y/space) * space;
+      Real ry = rint (y/staff_space) * staff_space;
       Real diff = ry - y;
       Real newy = y;
       if (fabs (diff) < paper_l ()->get_var ("tie_staffline_clearance"))
        {
-         newy = ry - 0.5 * space * sign (diff) ;
+         newy = ry - 0.5 * staff_space * sign (diff) ;
        }
 
       Real y0 = c.control_ [0][Y_AXIS];
index 24f0fa73f0d8cd51a49da566cacad039146bbcd8..0c11decc33c32b5a435813f2bad4e3d33b9d9f1b 100644 (file)
@@ -19,8 +19,8 @@ Time_signature::Time_signature ()
 }
 
 // ugh.!
-Molecule*
-Time_signature::do_brew_molecule_p () const
+Molecule 
+Time_signature::do_brew_molecule () const
 {
   SCM st = get_elt_property ("style");
 
@@ -39,15 +39,15 @@ Time_signature::do_brew_molecule_p () const
       String style (ly_scm2string (st));
       if (style[0]=='1')
        {
-         return new Molecule (time_signature (n, 0));
+         return time_signature (n, 0);
        }
       else
        {
-         return new Molecule (special_time_signature (style, n, d));
+         return special_time_signature (style, n, d);
        }
     }
   else
-    return new Molecule (time_signature (n,d));
+    return     time_signature (n,d);
 }
 
 Molecule
index 766b636fe0d18317df743708365c44173ff33d53..36782cb6fc193f02dc2d538f28c891d76fbd3aed 100644 (file)
@@ -31,10 +31,10 @@ Tuplet_spanner::Tuplet_spanner ()
 /*
   TODO. 
  */
-Molecule*
-Tuplet_spanner::do_brew_molecule_p () const
+Molecule 
+Tuplet_spanner::do_brew_molecule () const
 {
-  Molecule* mol_p = new Molecule;
+  Molecule  mol;
 
   // Default behaviour: number always, bracket when no beam!
   bool par_beam = to_boolean (get_elt_property ("parallel-beam"));
@@ -82,7 +82,7 @@ Tuplet_spanner::do_brew_molecule_p () const
        
          num.translate_axis (dy/2, Y_AXIS);
 
-         mol_p->add_molecule (num);
+         mol.add_molecule (num);
        }
       
       Real thick = paper_l ()->get_var ("tuplet_thick");
@@ -99,12 +99,13 @@ Tuplet_spanner::do_brew_molecule_p () const
                                       gh_int2scm (dir),
                                       SCM_UNDEFINED);
 
-         mol_p->add_atom (at);
+         Box b;
+         mol.add_molecule (Molecule (b, at));
        }
 
-      mol_p->translate_axis (dir * staff_space, Y_AXIS);
+      mol.translate_axis (dir * staff_space, Y_AXIS);
     }
-  return mol_p;
+  return mol;
 }
   
 void
index fba5da483193ee74d88c127e5311fcd35754373b..0fac7a6c2338018cc5974f5bb74e04f9db33364f 100644 (file)
@@ -32,16 +32,16 @@ Volta_spanner::Volta_spanner ()
 /*
   FIXME: too complicated.
  */
-Molecule*
-Volta_spanner::do_brew_molecule_p () const
+Molecule 
+Volta_spanner::do_brew_molecule () const
 {
-  Molecule* mol_p = new Molecule;
+  Molecule  mol;
 
   Link_array<Bar> bar_arr
     = Group_interface__extract_elements (this, (Bar*)0, "bars");
 
   if (!bar_arr.size ())
-    return mol_p;
+    return mol;
 
   Link_array<Score_element> note_column_arr
     = Group_interface__extract_elements (this, (Score_element*)0, "note-columns");
@@ -68,8 +68,6 @@ Volta_spanner::do_brew_molecule_p () const
   Real w = spanner_length() - dx - get_broken_left_end_align ();
   Real h = paper_l()->get_var ("volta_spanner_height");
 
-  Molecule volta; 
-
   SCM at = (gh_list (ly_symbol2scm ("volta"),
                     gh_double2scm (h),
                     gh_double2scm (w),
@@ -77,10 +75,8 @@ Volta_spanner::do_brew_molecule_p () const
                     gh_int2scm (no_vertical_start),
                     gh_int2scm (no_vertical_end),
                     SCM_UNDEFINED));
-
-  volta.dim_[Y_AXIS] = Interval (- h/2, h/2);
-  volta.dim_[X_AXIS] = Interval (0, w);
-  volta.add_atom (at);
+  Box b (Interval (- h/2, h/2),  Interval (0, w));
+  Molecule volta(b,at);
   
   Molecule num (lookup_l ()->text ("volta",
                                   ly_scm2string (get_elt_property("text")),
@@ -103,10 +99,10 @@ Volta_spanner::do_brew_molecule_p () const
   Offset off (num.dim_.x ().length () + gap, 
              h / half_staff_space - gap);
   num.translate (off);
-  mol_p->add_molecule (volta);
-  mol_p->add_molecule (num);
-  mol_p->translate (Offset (0, dy));
-  return mol_p;
+  mol.add_molecule (volta);
+  mol.add_molecule (num);
+  mol.translate (Offset (0, dy));
+  return mol;
 }
   
 void
index 177cbb8d53a72912091703e5e85b4cd10b14c0c1..b30c731e86e386674688d46680f970686b66ffa6 100644 (file)
@@ -61,8 +61,6 @@ StaffContext=\translator {
 %}
        defaultClef = #"treble"
 
-       marginBreakPriority = #-5
-
        \consists "Separating_line_group_engraver";
          
        \accepts "Voice";
@@ -291,8 +289,6 @@ StupidScore = \translator {
 
 BarNumberingStaffContext = \translator {
        \StaffContext
-       barColumnPriority = #0
-       marginBreakPriority = #-4
        \consists "Mark_engraver";
        \consists "Bar_number_engraver";
 };
@@ -306,8 +302,6 @@ HaraKiriStaffContext = \translator {
 
 OrchestralPartStaffContext = \translator {
        \StaffContext
-       barColumnPriority = #0
-       marginBreakPriority = #-4
        \consists "Mark_engraver";
        \consists "Bar_number_engraver";
 };
@@ -345,8 +339,9 @@ ScoreContext = \translator {
        \accepts "PianoStaff";
        \accepts "NoteNames";
 
-       clefBreakPriority = #-2
-       breathingSignBreakPriority = #-4
+       markVisibilityFunction = #end-of-line-invisible
+       barNumberVisibilityFunction = #end-of-line-invisible
+       marginVisibilityFunction = #begin-of-line-visible
 };
 
 \translator { \ScoreContext }
index 2a7838c996903965a8fd75203cb4531f0cabb5df..974dae0b7b9a4359d31b1102d85546edc3bedd0f 100644 (file)
@@ -67,6 +67,27 @@ slur_y_gap = 0.25 * \staffspace;
 slur_y_free = 0.75 * \staffspace;
 slur_x_minimum = 1.5 * \staffspace;
 
+
+% use tangent controls or area asymmetry?
+bezier_area = 1.0;
+bezier_asymmetry = 1.0;
+bezier_beautiful = 2.0;
+
+% The constants that define the valid areas for the middle control points
+% Used in de_uglyfy.  Bit empirical.
+bezier_control1 = 1.5;
+bezier_control2 = 0.8;
+bezier_control3 = -2.0;
+
+% URG: the magic constants for area asymmetry
+bezier_pct_c0 = -0.2;
+bezier_pct_c3 = 0.000006;
+bezier_pct_out_max = 0.8;
+bezier_pct_in_max = 1.2;
+bezier_area_steps = 1.0;
+
+bezier_before_blowfit = 0.5;
+
 %{
 Like beams, slurs often aren't as steep as the notes they encompass.
 This sets the amount of damping.
index 063c8e92cd7cd48ef4d78b2323fa3760276f318d..5c5d505123f5d972f426d62635833e1a075d7ac4 100644 (file)
@@ -41,9 +41,9 @@ arithmetic_multiplier = 0.9 * \quartwidth ;
 
 #'Stem_tremolo::beam-width = 1.5 * \quartwidth ; 
 
-#'Clef_item::visibility-lambda = #postbreak-only-visibility
-#'Key_item::visibility-lambda = #postbreak-only-visibility
-#'Breathing_sign::visibility-lambda = #non-postbreak-visibility
+#'Clef_item::visibility-lambda = #begin-of-line-visible
+#'Key_item::visibility-lambda = #begin-of-line-visible
+#'Breathing_sign::visibility-lambda = #begin-of-line-invisible
 
 % catch suspect beam slopes, set slope to zero if
 % outer stem is lengthened more than
@@ -51,10 +51,22 @@ beam_lengthened = 0.2 * \staffspace;
 % and slope is running away steeper than
 beam_steep_slope = 0.2 / 1.0;
 
+
+
 %{
-dit(code(slur_x_gap)) Horizontal space between note and slur.  Set to
-code(\staffspace / 5) by default.  
+  Slur parameters.
+  
+  See Documentation/programmer/fonts.doc
+%}
+% Height-limit (h_inf) = factor * staff_space
+slur_height_limit_factor = 2.0;
+slur_ratio = 1.0 / 3.0;
+
+slur_thickness = 1.2 * \stafflinethickness;
 
+
+%{
+Horizontal space between centre of notehead and slur.
 %}
 % OSU: suggested gap = ss / 5;
 slur_x_gap = \staffspace / 5.0;
@@ -62,25 +74,34 @@ slur_y_gap = 0.25 * \staffspace;
 slur_y_free = 0.75 * \staffspace;
 slur_x_minimum = 1.5 * \staffspace;
 
+
+bezier_asymmetry = 1.0;
+bezier_beautiful = 2.0;
+
+% The constants that define the valid areas for the middle control points
+% Used in de_uglyfy.  Bit empirical.
+bezier_control1 = 1.5;
+bezier_control2 = 0.8;
+bezier_control3 = -2.0;
+
+% URG: the magic constants for area asymmetry
+bezier_pct_c0 = -0.2;
+bezier_pct_c3 = 0.000006;
+bezier_pct_out_max = 0.8;
+bezier_pct_in_max = 1.2;
+bezier_area_steps = 1.0;
+
+slur_force_blowfit = 0.5;
+slur_beautiful = 0.5;
+
+
 %{
-Like beams, slurs often aren't as steep as the notes they encompass.
-This sets the amount of damping.
+  Tie parameters
 %}
-% slope damping: keep dy/dx < slur_slope_damping
-slur_slope_damping = 0.3;
-slur_interstaff_slope_damping = 0.6;
-% height damping: keep h/dx < slur_height_damping
-slur_height_damping = 0.4;
-slur_interstaff_height_damping = 0.5;
-% snap to stem if slur ends closer to stem than
-slur_snap_to_stem = 1.75 * \staffspace;
-slur_interstaff_snap_to_stem = 2.5 * \staffspace;
-% maximum dy change allowed by snapping
-slur_snap_max_slope_change = 0.5;
-slur_interstaff_snap_max_slope_change = 0.5;
-slur_thickness = 1.2 * \stafflinethickness;
-
 
+tie_height_limit_factor = \slur_height_limit_factor;
+tie_ratio = \slur_ratio;
+tie_thickness = \slur_thickness;
 
 tie_x_minimum = \staffspace + \slur_x_minimum;
 % OSU: tie gap == slur gap
@@ -89,29 +110,10 @@ tie_y_gap = 0.25 * \staffspace;
 % length of a tie that's a staffspace high
 tie_staffspace_length = 4.0 * \staffspace;
 
-% ugh: rename to bow (in bezier.cc and fonts.doc too...)
-
-% used to be 1.4 .
-tie_thickness = 1.2 * \stafflinethickness;
 tie_staffline_clearance = 2.0 *\tie_thickness;
 
-%{
- Specifies the maximum height of slurs.
-%}
-slur_height_limit = \staffheight;
 
 
-%{
-Specifes the ratio of slur hight to slur width
-to aim for.  Default value is 0.3. 
-%}
-% slur_ratio = 0.3;
-% try bit flatter slurs
-slur_ratio = 0.25;
-slur_clip_ratio = 1.2;
-slur_clip_height = 3.0 * \staffheight;
-slur_clip_angle = 100.0;
-slur_rc_factor = 2.4;
 
 % ugh
 notewidth = (\quartwidth + \wholewidth) / 2.0;
index 682abaf587c24698ddf70cd97f062c9f17e82cb6..3c181ed8de73f21df9efc221da673b8e1d55954f 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.3.28
-Entered-date: 01MAR00
+Version: 1.3.29
+Entered-date: 02MAR00
 Description: 
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       1000k lilypond-1.3.28.tar.gz 
+       1000k lilypond-1.3.29.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.3.28.tar.gz 
+       1000k lilypond-1.3.29.tar.gz 
 Copying-policy: GPL
 End
index c51ae7c22eb4a77d0fa188103ff22930f46ed118..055cde99caa0d893d1c6e8e7f93dcb477fb9ecaf 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.3.28
+Version: 1.3.29
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.28.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.29.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 # get Packager from (undocumented?) ~/.rpmmacros!
index ed42272d1a0eea64bc30728c5b325975ed30f5ab..fd457e035f0984619da2d84449d74e0b22c59a5b 100644 (file)
@@ -39,8 +39,7 @@ examples:
        $(PYTHON) $(buildscripts)/mutopia-index.py -o short-examples.html input/
        $(PYTHON) $(buildscripts)/mutopia-index.py -o long-examples.html mutopia/
 
-
-       tar --exclude='*.dvi' --exclude='*.tex' --exclude='*.ps' --exclude='*.ppm' -czf $(outdir)/examples.tar.gz  `find input mutopia -type d -name 'out-www' -print`
+       tar --exclude='*.dvi' --exclude='*.tex' --exclude='*.ps' --exclude='*.ppm' -czf $(outdir)/examples.tar.gz *-examples.html  `find input mutopia -type d -name 'out-www' -print`
 
 localinstall:
        mkdir -p $(datadir)
index 3484e938c41d16d60d8b26e884b9623895561d11..a01958d4591d730f6bad5601347593440a02e89c 100644 (file)
@@ -2,7 +2,7 @@
 
 depth = ..
 
-SUBDIRS = J.S.Bach Coriolan F.Schubert D.Zipoli Hymns L.Mozart E.Satie N.W.Gade
+SUBDIRS = J.S.Bach Coriolan F.Schubert D.Zipoli Hymns L.Mozart E.Satie 
 
 examples= 
 LOCALSTEPMAKE_TEMPLATES=mutopia
diff --git a/mutopia/N.W.Gade/GNUmakefile b/mutopia/N.W.Gade/GNUmakefile
deleted file mode 100644 (file)
index ef093ad..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-# 
-
-depth = ../..
-
-EXTRA_DIST_FILES += README global.tex
-
-examples=
-LOCALSTEPMAKE_TEMPLATES=mutopia
-
-include $(depth)/make/stepmake.make
-
-
diff --git a/mutopia/N.W.Gade/README b/mutopia/N.W.Gade/README
deleted file mode 100644 (file)
index dbd1655..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-This ouverture "Imellem Fjeldene" ("Between the Mountains") by 
-Niels W. Gade (1788-1854) is typeset from handwritten parts 
-available at Statens Musikbibliotek, Stockholm, Sweden. 
-No score was available.
-
-A few obvious misprints and inconsistencies between the parts 
-have been corrected. This is indicated with comments in the
-different source files.
-
-The piece was performed in Ludvika and Ã–stervÃ¥la, Sweden, 
-March 13-14, 1999, by Bergslagens Kammarsymfoniker conducted 
-by Ola Karlsson.
-
-The piece is for a small symphony orchestra with (using standard
-notation for orchestral settings): 1121-2200-10-strings
-
-Christian Mondrup has provided the following background on the
-piece: 
-It was composed 1850 as a ouverture for the comedy "Imellem 
-Fjeldene" by the Danish poet Carsten Hauch. In the Andante 
-introduction, Gade uses a melody from the collection ``Norske 
-Folkesagn og Melodier'' (``Norwegian folksongs and melodies'') 
-by the Danish composer A.P. Bergreen. The song has a Norwegian 
-text ``Heimreise fraa Sæteren'' by Edvard Storm. The second 
-theme of the Allegro part might very well come from the same
-collection, namely the song ``Saag du nokke Kjærringa mi''.
-
-The music was typeset using Lilypond, the GNU Project music
-typesetter. 
-
-The score and parts may be freely copied.
-
-Stockholm 1999. Mats Bengtsson, matsb@s3.kth.se
-
diff --git a/mutopia/N.W.Gade/brass.ly b/mutopia/N.W.Gade/brass.ly
deleted file mode 100644 (file)
index 37e7d28..0000000
+++ /dev/null
@@ -1,876 +0,0 @@
-\version "1.3.4";
-
-corI=\notes\relative c'' {
-\key c;
-
-\property Staff."midiInstrument" = "french horn"
-
-[g8. \f ( a16 ] ) g2 |
-[g8.  ( a16 ] ) g2_"dim." |
-c2. \p ( |
-) g2 g4 ( |
-) c2. ( |
-) g4 [g8. ( a16 ] ) g4 |
-c2. \p ( |
-) g2 g4 |
-\grace g8 c2 \< ( ~ [ \! c8 \> \! ) g ] |
-g2 \p r4 |
-g \mf ( d' c~ |
-c ) b r |
-R2. |
-r4 r c \p ( |
-) g r r |
-g [g8. ( a16 ] ) g4 |
-R2. |
-r4 r [g8^""^"solo" \mf \< () e' ] |
-\grace d8 \! g2 \> ( [ \! e8. c16 ] |
-) g2 r4 |
-R2. |
-r4 r \times 2/3 {[e'8 \f ( g, ) g'] } |
-g4 () e r |
-r r \times 2/3 {[g8 \f ( e ) g] } 
-d4 () g r |
-r r [d16 \f ( g, e' d ] |
-[g, d' e ) d ] g,4 r |
-r \grace g8 d'2 \f \> (|
-[g,8. a16 g8. a16 \! g8. ) a16 ] |
-g4 r r |
-R2. |
-r4 r r8 r |
-R2*8 |
-d'8-. \pp r c-. r |
-d r c g |
-[g-. \< g-. g-. \! g-. ] |
-g4.:8 g8 \f ( |
-) c4. r8 |
-c4. r8 |
-c4. r8 |
-c4 () b8 r |
-e,4. r8 |
-e'4. r8 |
-e,4. r8 |
-e'4. r8 |
-e r e r |
-e r e r |
-c4 \fz r |
-R2*12 |
-r4 r8 g' ( |
-) g,4. \f g8 ( |
-[ ) d' d16-> ( e ] ) d8 r |
-R2 |
-r4 r8 g \f ( |
-) g,4. g8 ( |
-[ ) d' d16 ( e ] [) d8 d ] ~ |
-d4.-> d8 ~ |
-d4.-> r8 |
-r4 r8 e ( |
-) d4. \f d8 ~ |
-d4.-> d8 ~ |
-d4.-> r8 |
-r4 r8 e \f ( |
-[ ) d d16 ( e ] ) d8 r |
-R2*4 |
-d4. \f r8 |
-R2 |
-d4. \fz r8 |
-d4. \fz r8 |
-d4 d-> ~ |
-d4 d-> ~ |
-d g ( |
-[ ) d8 d16 ( e] ) d8 r |
-d4 d ~ |
-d4 d ~ |
-d g ( |
-[ ) d8 d16 ( e] ) d8 r |
-d4 d ~ |
-d4_"dim." d ~ |
-d4 d ~ |
-d4 d ~ |
-d8 r r4 |
-R2*35 |
-c,2 \pp ~ |
-c4. r8 |
-R2*2 |
-d'2 \pp ~ |
-d4. r8 |
-d8 r c r |
-d-. r c-. g |
-g2:8 \< |
-\! g4.:8 g8 \f ( |
-) e'4. r8 |
-c4. r8 |
-c4. c8 |
-c2:8 |
-c4. r8 |
-d4 () c8 r |
-d4 () c8 r |
-f4 () e8 r |
-c4 r |
-e r |
-c r |
-e r |
-c8 r d r |
-es r d r |
-d \fz r r4 |
-R2*2 |
-d4 ( \p \< e |
-\! f g \> ~ |
-g ) \! e8 r |
-R2 |
-d4 ( \p \< e |
-\! ) f2 |
-b,4_"dim." ( c |
-) d r |
-R2*3 |
-[c8 ( \f c16 d ][es8 d16 ) c ] |
-d4. r8 |
-R2*2 |
-[c8 ( c16 d ][es8 d16 ) c ] |
-d4. c8 ( |
-) g'4.-> c,8 ( |
-) g'4.-> r8 |
-R2 |
-r4 r8 g \f ~ |
-g4. g8 ~ |
-g4. r8 |
-r4 r8 d ( |
-[ ) g g16 ( a ] ) g8 r |
-R2 |
-r4 r8 g, \p |
-[g-. \< g-. g-. \! g-.] |
-[g-. \< g-. g-. \! g ( ] |
-) e'4. r8 |
-R2 |
-d4. \f r8 |
-d4. g,8 ( |
-) e' r d4 ( |
-) e8 r d4 ( |
-) e8 r c4 ( |
-[) d8 f-. f-. d-. ] |
-e r d4 ( |
-) e8 r d4 ( |
-) e8 r c4 ( |
-[) d8 f-. f-. d-. ] |
-e r d4 ( |
-) e8 r d4_"dim." ( |
-) c8 r g4 |
-g8 r [g'8.^""^"solo" ( \< \! a16 ] |
-g4. \> \! e8 |
-c4 d |
-e d |
-) c  [g'8. ( \< \! a16 ] |
-g4. \> \! e8 |
-c4 d |
-e d |
-) c  [c8. ( d16 ] |
-) c2 ( |
-) g ~ | 
-g_"dim." ~ | 
-g ~ | 
-g \p ~ | 
-g ~ | 
-g ~ | 
-g | 
-R2*2 |
-d'2 \fz \> ( |
-) \! g, ~ |
-g \p ~ | 
-g | 
-c \< ~ | 
-\! c | 
-c4. \f r8 |
-d4. r8 |
-d4. r8 |
-d4. r8 |
-c2 ~ |
-c4. r8 |
-c2 ~ |
-c4. r8 |
-d4. r8 |
-d4. d8 |
-[e-. d-. e-. d-.] |
-[e-. d-. e-. d-.] |
-e r d r |
-c r d r |
-c r e r |
-g r e r |
-c4 r8 g ( |
-) e'4 r8 g,8 ( |
-) c4 r8 g ( |
-) e'4 r8 g,8 ( |
-) c4 r |
-R2 |
-e4 \fz r
-}
-
-corIcue=\notes\relative c''' {
-\key c;
-\tiny
-
-s2.*32 |
-s2*33 | \stemup
-r4 r8 [g16^"oboe" ( a ] |
-[ ) g8-. fis16 ( g ][ ) fis8-. f16 ( g ] |
-[ ) f8-. e16 ( f ] ) e8-. s | \stemboth
-s2*66 |
-[f,,16^"Vlc." ( g f g][f g f8 ] |
-) e4 r |
-[f16 ( g f_"dim." g][f g f8 ] |
-) e4 r |
-}
-
-corIIcue=\notes\relative c'' {
-\key c;
-\tiny
-
-[c8.^"Oboe" ( d16] ) c2 |
-[c8. ( d16] ) c2 |
-s2.*15 |
-r4 r [g8^"Cor. I" ( ) e'] |
-g2 ( [e8. ) c16 ] |
-g2 s4 |
-s2.*12 |
-s2*35 |
-r4 r8 g'8^"Cor. I" ( |
-) g,4. s8 |
-s2*65 |
-[f,16^"Vlc." ( g f g][f g f8 ] |
-) e4 r |
-[f16 ( g f_"dim." g][f g f8 ] |
-) e4 r |
-s2*35 |
-r4 r8 a''^"Oboe" |
-a-. [ gis-. gis-. \< g-.] |
-[g-. fis-. \! fis-. f-. ] |
-}
-
-corII=\notes\relative c'' {
-\key c;
-
-\property Staff."midiInstrument" = "french horn"
-
-R2.*19 |
-r4 r [g8^"solo" \p (\< ) e'] |
-\grace d8 \! g2 \> ( [e8. ) \! c16 ] |
-g2 r 4 |
-r r \times 2/3 {[e'8 \p ( g, ) g' ]} |
-g4 \> () \! e r |
-r r \times 2/3 {[g8 \p ( e ) g ]} |
-d4 \> () \! g r |
-r r [g,16 ( \p d' e d ] |
-) g,4 r r |
-R2. |
-[g8. ( a16 g8. a16 g8. a16] |
-[g8._"dim." a16 ] g4. a8 |
-[g8. a16] ) g4 \pp r8 r |
-R2*8 |
-g8-. \pp r c,-. r |
-g'-. r c,-. r |
-R2 |
-r4 r8 e \f ~ |
-e4. r8 |
-c4. r8 |
-c4. r8 |
-e4. r8 |
-c4. r8 |
-g'4. r8 |
-c,4. r8 |
-g'4. r8 |
-e r e r |
-e r e r |
-fis4 \fz r |
-R2*13 |
-r4 r8 g \f ( |
-) g,4. r8 |
-R2*2 |
-r4 r8 g' ( |
-) g,4.-> g'8 ( |
-) g,4.-> g'8 ( |
-) g,4.-> r8 |
-R2 |
-r4 r8 g' ( |
-) g,4.-> g'8 ( |
-) g,4.-> r8 |
-R2*6 |
-d''4. \f r8 |
-R2 |
-c4. \fz r8 |
-c4. \fz r8 |
-g4 g,-> ~ |
-g g-> ~ |
-g g ~ |
-g r |
-g4 g-> ~ |
-g g-> ~ |
-g g-> ~ |
-g r |
-g4 g ~ |
-g_"dim." g ~ |
-g g ~ |
-g g ~ |
-g8 r r4 |
-R2*35 |
-c2 \pp ~ |
-c4. r8 |
-R2*4 |
-g'8-. \pp r c,-. r |
-g'-. r c,-. r |
-R2 |
-r4 r8 e \f ( |
-) g4. r8 |
-c,4. r8 |
-c4. c8 |
-c2:8 |
-c'4. r8 |
-d4 () c8 r |
-d4 () c8 r |
-d4 () c8 r |
-c,4 r |
-e r |
-c r |
-e r |
-c'8 r d r |
-es r d r |
-g, \fz r r4 |
-R2*13 |
-c,4. \f c8 ( |
-)c,4. r8 |
-R2*2 |
-c'4. c8 ( |
-)c,4. c''8 |
-c,4. c'8 |
-c,4. r8 |
-R2 |
-r4 r8 c' \f ~ |
-c4. c8 ~ |
-c4. r8 |
-R2*3 |
-r4 r8 c,8 \p |
-c2:8 |
-c4.:8 e8 ( |
-) g4. \f r8 |
-R2 |
-g4. \fz r8 |
-g4. g8 ( |
-) c r g4 ( |
-) c8 r g4 ( |
-) c8 r c,4 ( |
-[ ) g'8 d'-. d-. g,-. ] |
-c r g4 ( |
-) c8 r g4 ( |
-) c8 r c,4 ( |
-[ ) g'8 d'-. d-. g,-. ] |
-c r g4 ( |
-) c8 r g4_"dim." ( |
-) c,8 r c4 ~ |
-c8 r r4 |
-R2*4 |
-c2 \p ~ |
-c ~ |
-c4 r |
-r [c'8. \f ( d16 ] |
-) c2 ( |
-) g ~ |
-g_"dim." ~ |
-g ~ |
-g \pp ~ |
-g ~ |
-g ~ |
-g |
-R2*2 |
-g \fz ~ |
-g ~ |
-g ~ |
-g |
-c, \< |
-c |
-\! c4. r8 |
-d'4. r8 |
-g,4. r8 |
-g4. r8 |
-c2 ( |
-) c,4. r8 |
-c'2 ( |
-) c,4. r8 |
-d'4. r8 |
-g,4. g8 |
-[c-. g-. c-. g-. ] |
-[c-. g-. c-. g-. ] |
-c r g r |
-c, r g' r |
-c r g r |
-e r g r |
-e4 r8 g ( |
-) c,4 r8 g'8 ( |
-) e4 r8 g ( |
-) c,4 r8 g'8 ( |
-) e4 r |
-R2 |
-c'4-. \fz r
-}
-
-trpI=\notes\relative c'' {
-\key c;
-
-\property Staff."midiInstrument" = "trumpet"
-
-[d8. ( \f e16 ] ) d2 |
-R2.*30 |
-r4 r r8  r |
-R2*12 |
-g,2 \f ~ |
-g4 r |
-g r |
-g () fis8 r |
-R2 |
-d'4 r |
-R2 |
-d4 r |
-R2*2 |
-e8 \f r r4 |
-R2*19 |
-c4. \f r8 |
-c4. r8 |
-R2*2 |
-c4. \f r8 |
-c4. r8 |
-R2*8 |
-e4. \f r8 |
-e4. r8 |
-r4 e-> ( |
-) d8 r e4-> ( |
-) d8 r d4 ( |
-) e8 r r4 |
-r e ( |
-) d8 r e4 ( |
-) d8 r d4 ( |
-) e8 r r4 |
-r e_"dim." |
-) d8 r e4 ( |
-) d8 r r4 |
-R2*47 |
-g,2 \f ~ |
-g4 r |
-g r8 g |
-g2:8 |
-c4. r8 |
-c4. r8 |
-c4. r8 |
-e4. r8 |
-e,4. r8 |
-e'4. r8 |
-e,4. r8 |
-e'4. r8 |
-e8 r e r |
-e r e r |
-d \fz r r4 |
-R2*13 |
-r4 g,8 \f r |
-[d'-. d16 ( e ] ) d8 r |
-R2*2 |
-r4 g,8 \f r |
-[d'-. d16 ( e ] ) d8 r |
-g,4. \f r8 |
-g4. r8 |
-R2*2 |
-g4. \f r8 |
-g4. r8 |
-R2*6 |
-d'4. \f r8 |
-R2 |
-c4. \f r8 |
-c4. r8 |
-g4 r |
-g r |
-g8 r g r |
-[d' d16 ( e ] ) d8 r |
-g,4 r |
-g r |
-g8 r g r |
-[d' d16 ( e ] ) d8 r |
-g,4 \p r |
-g_"dim." r |
-g r |
-R2*25 |
-c4 \f r |
-e r |
-d r |
-d r |
-g, r |
-e' () d8 r |
-g,4 r |
-e' () d8 r |
-e4-. r |
-d-. r |
-d8-. r d-. r |
-d-. r d-. r |
-d-. r d-. r |
-d-. r d-. r |
-d r d r |
-d r d r |
-g,4 r |
-d'-. r |
-d-. r |
-d-. r |
-g, r |
-R2 |
-g4 \fz r
-}
-
-trpIcue=\notes\relative c'' {
-\tiny
-
-s2.*32 |
-s2*9 |
-r4^"Clar. I" r8 c-. |
-[bes-. a-. g-. f-. ] |
-[e-. d-. c-. ] r8 |
-s2*23 |
-r4^"Cor. I" r8 g''8 ( |
-) g,4. g8 ( |
-[) d' d16 ( e ] )d8 s |
-s2*75 |
-r4^"Clar. I" r8 c-. |
-[bes-. a-. g-. f-. ] |
-[e-. d-. c-. ] s8 |
-s2*25
-r4^"Oboe" r8 a'' |
-a-. [ gis-. gis-. \< g-.] |
-[g-. fis-. \! fis-. f-. ] |
-s2*53 |
-r4^"Flauto" r8 [c'16 ( d] |
-) c8 [b16 ( c ] ) b8 [bes16 ( c ] |
-)bes8 [a16 ( bes ] ) a8 [c16 ( d] |
-) c8 [b16 ( c ] ) b8 [bes16 ( c ] |
-)bes8 [a16 ( bes ] ) a8 
-}
-
-trpIIcue=\notes\relative c'' {
-\tiny
-
-[c8.^"Oboe" ( d16] ) c2 |
-[c8. ( d16] ) c2 |
-s2.*30 |
-s2*9 |
-r4^"Clar. I" r8 c-. |
-[bes-. a-. g-. f-. ] |
-[e-. d-. c-. ] r8 |
-s2*23 |
-r4^"Cor. I" r8 g''8 ( |
-) g,4. g8 ( |
-[) d' d16 ( e ] )d8 s |
-s2*75 |
-r4^"Clar. I" r8 c-. |
-[bes-. a-. g-. f-. ] |
-[e-. d-. c-. ] s8 |
-s2*28
-r4^"Trp. I" g'8 \f r |
-[d'-. d16 ( e ] ) d8 r |
-s2*51 |
-r4^"Flauto" r8 [c'16 ( d] |
-) c8 [b16 ( c ] ) b8 [bes16 ( c ] |
-)bes8 [a16 ( bes ] ) a8 [c16 ( d] |
-) c8 [b16 ( c ] ) b8 [bes16 ( c ] |
-)bes8 [a16 ( bes ] ) a8 
-}
-
-trpII=\notes\relative c' {
-\key c;
-
-\property Staff."midiInstrument" = "trumpet"
-
-R2.*31 |
-r4 r r8  r |
-R2*12 |
-g2 \f ~ |
-g4 r |
-g r |
-g' () fis8 r |
-R2 |
-d'4 r |
-R2 |
-d4 r |
-R2*2 |
-e,8 r r4 |
-R2*19 |
-c4. \f r8 |
-c4. r8 |
-R2*2 |
-c4. \f r8 |
-c4. r8 |
-R2*8 |
-e4. \f r8 |
-e4. r8 |
-r4 g4-> ( | % added >
-) fis8 r g4-> ( | % added >
-) fis8 r d'4 ( |
-) e8 r r4 |
-r g, ( |
-) fis8  r g4 ( |
-) fis8  r d'4 ( |
-) e8 r r4 |
-r g, ( |
-) fis8_"dim." r g4 ( |
-) fis8 r r4 |
-R2*47 |
-g,2 \f ~ |
-g4. r8 |
-g4 r |
-R2 |
-c4. r8 |
-c4. r8 |
-c4. r8 |
-e4. r8 |
-c4. r8 |
-g'4. r8 |
-c,4. r8 |
-g'4. r8 |
-e r e r |
-e r e r |
-c' r r4 |
-R2*19 |
-g4. \f r8 |
-g4. r8 |
-R2*2 |
-g,4. \f r8 |
-g4. r8 |
-R2*6 |
-d''4. r8 |
-R2 |
-c,4. \f r8 |
-c4. r8 |
-g4. r8 |
-g4 r |
-g8 r r4 |
-R2 |
-g4 r |
-g r |
-g8 r r4 |
-R2 |
-g4 r |
-g_"dim." r |
-g r |
-R2*25 |
-c4 \f r |
-e r |
-d' r |
-d r |
-g,, r |
-c' () g8 r |
-g,4 r |
-c' () g8 r |
-g4 r |
-fis r |
-g8-. r g-. r | % Staccato copied from trp. I
-g-. r g-. r |
-g-. r d'-. r |
-g,-. r d'-. r |
-g, r g r |
-g r g r |
-g4-. r |
-g-. r |
-g-. r |
-g-. r |
-g r |
-R2 |
-g4 \fz r
-}
-
-timpani=\notes\relative c, {
-\clef "bass";
-
-\property Staff."midiInstrument" = "timpani"
-
-r2. | % Ensure that the staff is printed on page 1 of the score.
-R2.*5 |
-f2.:32 \pp ~ |
-f2.:32 ~ |
-f2.:32 ~ |
-f2.:32 ( |
-) c'4 r r |
-R2.*3 |
-c2.:32 \pp |
-c2.:32 |
-c2.:32 |
-c2.:32 |
-c4 r r |
-R2.*7 |
-c2.:32 \pp |
-c2.:32 |
-c2.:32 |
-c2.:32 |
-c4 r r |
-r r r8 r |
-R2*12 |
-f,2:32 \f ~ |
-f4 r |
-f r |
-R2 |
-f8 r r4 |
-R2 |
-f8 r r4 |
-R2*14 |
-\context Staff <{\voiceone \clef "treble";
-  r4^"Trg." r8 e''' |
-  [e e e e ] | 
-  [e e e g,, ] | % In reality: e e e e | e
-  g r r4 |
-  s4. \clef treble; e''8 |
-  e2:8 |
-  [e8 e e g,,] | % In reality: e e e e | e
-  g8 r r4 }
- {\voicetwo r2 | r |
-  r4_" Timp." r8 \clef bass; c, \p |
-  [c-. \< c-. c-. \! c-.] |
-  c4.:8 \f r8 |
-  R2 |
-  r4 r8 \clef bass; c \p |
-  c2:8 \< |
-  \! c4.:8 \f r8 } >|
-c,4:32 ~ c8 r |
-c4:32 ~ c8 r |
-R2*2 |
-f,4:32 \f ~ f8 r |
-f4:32 ~ f8 r |
-\context Staff <{\voiceone \clef "treble";
-  [e''' e e e ] | 
-  e r r e |
-  e2:8 |
-  [e8 e e g,, ] |} % In reality: e e e e 
- {\voicetwo r2 |
-  r2 |
-  r2 |
-  r4 r8 \clef bass; c, \p |}>
-c,2:8 \< |
-\! c4.:8 r8 |
-R2*4 |
-c4 \f r |
-c4 r |
-c2:32 ~ | % Added tie
-c8 r r4 |
-c4 r |
-c4_"dim." r |
-c2:32 ~ |
-c8 r r4 |
-c4_"dim." r |
-c4 r |
-c4 r |
-c4 r |
-c8 r r4 |
-R2*45 |
-f,2:32 \f ~ |
-f4 r |
-f4 r |
-R2 |
-f4 r |
-R2*3 |
-f8 r r4 |
-R2 |
-f8 r r4 |
-R2*3 |
-c'4 \fz r |
-R2*10 |
-\context Staff <{\voiceone \clef "treble";
-  r4^"Trg." r8 e'' |
-  [e e e e ] | 
-  [e e e g,, ] | % In reality: e e e e | e4
-  g4 r4 |
-  s4. \clef treble; e''8 |
-  [e e e e ] | 
-  [e e e g,, ] | % In reality: e e e e | e4
-  g4 r4 |
-  s2 | s2 |
-  s4. \clef treble; e''8 |
-  [e e e e ] | 
-  e r r e |
-  s2 | s | s |
-  r4 r8 \clef treble; e |
-  [e e e e ] | 
-  [e e e g,, ] | % In reality: e e e e 
-}
- {\voicetwo r2 |
-  r |
-  r4 r8 \clef bass; f, \p |
-  [f \< f f \! f ] |
-  f4.:8 \f r8 |
-  r2 |
-  r4 r8 \clef bass; f \p |
-  f2:8 \< |
-  \! f4.:8 \f r8 |
-  f4:32 \f ~ f8 r |
-  f4:32 ~ f8 r |
-  r2 |
-  r | \clef bass; 
-  f4:32 \f ~ f8 r |
-  f4:32 ~ f8 r |
-  r2 | r | r |
-  r4 r8 \clef bass; f \p |
- }>
-f,2:8 |
-f4.:8 r8 |
-R2*2 |
-c'4 \f r |
-c r |
-f, r |
-f r |
-f2:32 ~ |
-f8 r r4 |
-f r |
-f r |
-f2:32 ~ |
-f8 r r4 |
-f r |
-f_"dim." r |
-f r |
-R2*28 |
-r4 r8 c' \f |
-f,2:32^\trill ~ |
-f4 r8 c' |
-f,2:32^\trill ~ |
-f4 r |
-f r |
-c' r8 c-. |
-[f,-. c'-. f,-. c'-.] |
-[f,-. c'-. f,-. c'-.] |
-f, r c' r |
-f, r c' r |
-f, r c' r |
-f, r c' r |
-f,2:32 \ff ~ |
-f2:32 ~ |
-f2:32 ~ |
-f2:32 ~ |
-f8 r r4 |
-r2 |
-f4 \fz r 
-}
-
-timpcue=\notes\relative c' {
-\tiny
-
-[c8.^"Oboe, \\okt" ( d16] ) c2 |
-[c8. ( d16] ) c2 |
-s2.*30 |
-s2*9 |
-r4^"Clar. I" r8 \clef "treble"; c'-. |
-[bes-. a-. g-. f-. ] |
-[e-. d-. c-. ] r8 \clef "bass"; |
-s2*24 |
-%r4 r8 \clef "treble"; [g''16^"oboe" \p ( a ] |
-%[ ) g8-. fis16 ( g ][ ) fis8-. f16 ( g ] |
-%[ ) f8-. e16 ( f ] ) e8-. \clef "bass"; s |
-s2*77 |
-r4^"Clar. I" r8 \clef "treble"; c'-. |
-[bes-. a-. g-. f-. ] |
-[e-. d-. c-. ] r8 \clef "bass"; |
-s2*28
-%r4^"Oboe" r8 \clef "treble"; a'' |
-%a-. [ gis-. gis-. \< g-.] |
-%[g-. fis-. \! fis-. ] \clef "bass"; s8 |
-s2*57 |
-r4^"Vi. I" r8 \clef "treble"; bes' ( |
-) bes'4. d,8 ( |
-) d'4. c,8 ( |
-) c'4. e,8 ( |
-) e'4. \clef "bass"; s8 |
-}
\ No newline at end of file
diff --git a/mutopia/N.W.Gade/global.ly b/mutopia/N.W.Gade/global.ly
deleted file mode 100644 (file)
index 82221cb..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-
-globalNoKey=\notes {
-\time 3/4;
-\tempo 4=100; % My own suggestion, M.B.
-\skip 2.*31;
-s4 s4^\fermata s8^\fermata \bar "||"; \break
-s8 
-\time 2/4;
-\tempo 4=130; % My own suggestion, M.B.
-\skip 2*224;
-s4 s4^\fermata
-\bar "|.";
-}
-
-global=\notes {
-\key f;
-\globalNoKey
-}
-
-marks= \notes {
-\time 3/4;
-%\property Thread.textStyle = "Large"
-s2.^"\\raisebox{4mm}{\\bfseries\Large Andante con moto}"
-\skip 2.*30;
-s2 s8 s^"\\raisebox{4mm}{\\bfseries\Large Allegro molto vivace}"
-\time 2/4;
-\skip 2*12;
-\mark "A";
-\skip 2*12;
-\mark "B";
-\skip 2*26;
-\mark "C";
-\skip 2*24;
-\mark "D";
-\skip 2*32;
-\mark "E";
-\skip 2*10;
-\mark "F";
-\skip 2*26;
-\mark "G";
-\skip 2*16;
-\mark "H";
-\skip 2*20;
-\mark "I";
-\skip 2*12;
-\mark "K";
-\skip 2*16;
-\mark "L";
-\skip 2*8;
-\mark "M";
-\skip 2*11;
-%slut
-}
diff --git a/mutopia/N.W.Gade/global.tex b/mutopia/N.W.Gade/global.tex
deleted file mode 100644 (file)
index 003def8..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-%\def\fetdef#1#2{%
-%  \def#1{\hbox{\fetchar{#2}}}}
-%\font\fetasixteen = feta16
-%\def\fetchar#1{{\fetasixteen\char#1}}
-%\input{feta20}         %%% Add lilypond-xxx/mf/out/ to TEXINPUTS
-
-\newcommand{\okt}{$8^{va}$}
-
-\newcommand{\thecopyright}{
-  \begin{tabular}{l}
-    \copyright{} mats.bengtsson@s3.kth.se, 1999. Free circulation permitted and
-    encouraged.\\ Typeset from handwritten parts at Statens
-    Musikbibliotek, Stockholm, Sweden
-  \end{tabular}
-}
-
-% Modified from lilypond/tex/headers.tex:
-\advance\topmargin-5mm
-\advance\headsep-4mm
-\addtolength{\textheight}{17mm}
-\advance\footskip-5mm
-
-\usepackage{fancyheadings}
-\lhead{\textbf{\large\theinstrument}}
-\chead{}
-\lfoot{}
-\cfoot{\ifnum\thepage=1{\thecopyright\hfill\mudelatagline}\fi}
-\rfoot{\ifnum\thepage>1{\hfill\thepage\hfill}\fi}
-\headrulewidth0mm
-\pagestyle{fancy}
-
-% Modified from lilypond/tex/titledefs.tex:
-\def\makelilytitle{%
-  \vspace*{-10mm}%
-  \begin{center}
-        \bfseries
-        \ifx\mudelanull\thetitle\else{\huge\thetitle}\\ \fi
-        \ifx\mudelanull\thesubtitle\else{\Large\thesubtitle}\\ \fi
-  \end{center}
-  \bigskip
-  % urg
-  \edef\saveparskip{\parskip}\parskip-5mm
-  \begin{minipage}[t]{0.45\textwidth}
-        \ifx\mudelanull\thepoet\else{\thepoet}\\ \fi
-        \ifx\mudelanull\themetre\else{\themetre}\\ \fi
-  \end{minipage}\hspace*{\fill}
-  \begin{minipage}[t]{0.45\textwidth}
-      \begin{flushright}
-          \ifx\mudelanull\thecomposer\else{\large\normalfont\scshape\thecomposer}\\ \fi
-          \ifx\mudelanull\theopus\else{\theopus}\\ \fi
-          \ifx\mudelanull\thearranger\else{\thearranger}\\ \fi
-        \end{flushright}%
-  \end{minipage}\par
-  \parskip\saveparskip
-  {\flushleft{\Large\textbf\thepiece}\\}%
-%  \leavevmode%
-%  \enlargethispage*{7mm}%
-}
diff --git a/mutopia/N.W.Gade/parts.ly b/mutopia/N.W.Gade/parts.ly
deleted file mode 100644 (file)
index 5e4c429..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-\header{
-title =         "Imellem Fjeldene. Ouverture";
-composer =      "Niels W Gade";
-enteredby =     "Mats Bengtsson";
-latexheaders =  "\\input global";
-copyright =    "Mats Bengtsson, 1999. Free circulation permitted and " + 
-               "encouraged.\\\\ Typeset from handwritten parts at " +
-               "Statens Musikbibliotek, Stockholm, Sweden";
-}
-
-% Process with 'ly2dvi -s parts.ly' to get the separate parts.
-
-
-\version "1.3.4";
-
-\include "global.ly"
-\include "wood.ly"
-\include "brass.ly"
-\include "strings.ly"
-
-my_paper = \paper {
-  textheight = 265.0 \mm;
-  \translator {
-    \OrchestralPartStaffContext
-  }
-  \translator { 
-    \ScoreContext
-    skipBars = 1;
-    barNumberScriptPadding = "12.0";
-    markScriptPadding = "20.0";
-    dynamicPadding = 3.0;
-    textScriptPadding = 5.0;
-    textStyle = "italic";
-    textEmptyDimension = 1;
-    noAutoBeaming = "1"; % Beams inserted explicitly as in the original.
-  }
-}
-
-\score{
-  \context Staff <
-    \context Voice <
-      \global
-      \marks
-      \flauto
-    >
-    \context Voice = cue \flautocue
-  >
-  \header{
-    instrument = "Flauto";
-  }
-  \paper{
-    \my_paper
-    output = "flauto";
-  }
-  \midi {
-    \tempo 4=120;
-  }
-}
-
-\score{
-  \context Staff <
-    \context Voice <
-      \global
-      \marks
-      \oboe
-    >
-    \context Voice = cue \oboecue
-  >
-  \header{
-    instrument = "Oboe";
-  }
-  \paper{
-    \my_paper
-    output = "oboe";
-  }
-  \midi {
-    \tempo 4=120;
-  }
-}
-
-\score{
-  \context Voice <
-    \globalNoKey
-    \marks
-    \clarI
-  >
-  \header{
-    instrument = "Clarinetto I in B\\textflat";
-  }
-  \paper{
-    \my_paper
-    output = "clarI";
-  }
-  \midi {
-    \tempo 4=120;
-  }
-}
-
-\score{
-  \context Voice <
-    \globalNoKey
-    \marks
-    \clarII
-  >
-  \header{
-    instrument = "Clarinetto II in B\\textflat";
-  }
-  \paper{
-    \my_paper
-    output = "clarII";
-  }
-  \midi {
-    \tempo 4=120;
-  }
-}
-
-\score{
-  \context Voice <
-    \global
-    \marks
-    \fagotto
-  >
-  \header{
-    instrument = "Fagotto";
-  }
-  \paper{
-    \my_paper
-    output = "fagotto";
-  }
-  \midi {
-    \tempo 4=120;
-  }
-}
-
-\score{
-  \context Staff <
-    \context Voice <
-      \globalNoKey
-      \marks
-      \corI
-    >
-    \context Voice = cue \corIcue
-  >
-  \header{
-    instrument = "Corno I in F";
-  }
-  \paper{
-    \my_paper
-    output = "corI";
-  }
-  \midi {
-    \tempo 4=120;
-  }
-}
-
-\score{
-  \context Staff <
-    \context Voice <
-      \globalNoKey
-      \marks
-      \corII
-    >
-    \context Voice = cue \corIIcue
-  >
-  \header{
-    instrument = "Corno II in F";
-  }
-  \paper{
-    \my_paper
-    output = "corII";
-  }
-  \midi {
-    \tempo 4=120;
-  }
-}
-
-\score{
-  \context Staff <
-    \context Voice <
-      \globalNoKey
-      \marks
-      \trpI
-      >
-    \context Voice = cue \trpIcue
-  >
-  \header{
-    instrument = "Tromba I in B\\textflat";
-  }
-  \paper{
-    \my_paper
-    output = "trpI";
-  }
-  \midi {
-    \tempo 4=120;
-  }
-}
-
-\score{
-  \context Staff <
-    \context Voice <
-      \globalNoKey
-      \marks
-      \trpII
-    >
-    \context Voice = cue \trpIIcue
-  >
-  \header{
-    instrument = "Tromba II in B\\textflat";
-  }
-  \paper{
-    \my_paper
-    output = "trpII";
-  }
-  \midi {
-    \tempo 4=120;
-  }
-}
-
-\score{
-  \context Staff <
-    \context Voice <
-      \globalNoKey
-      \marks
-      \timpani
-    >
-    \context Voice = cue \timpcue
-  >
-  \header{
-    instrument = "Timpani \& Triangolo";
-  }
-  \paper{
-    \my_paper
-    output = "timpani";
-  }
-  \midi {
-    \tempo 4=120;
-  }
-}
-
-\score{
-  \context Voice <
-    \global
-    \marks
-    \viI
-  >
-  \header{
-    instrument = "Violino I";
-  }
-  \paper{
-    \my_paper
-    output = "viI";
-  }
-  \midi {
-    \tempo 4=120;
-  }
-}
-
-\score{
-  \context Voice <
-    \global
-    \marks
-    \viII
-  >
-  \header{
-    instrument = "Violino II";
-  }
-  \paper{
-    \my_paper
-    output = "viII";
-  }
-  \midi {
-    \tempo 4=120;
-  }
-}
-
-\score{
-  \context Voice <
-    \global
-    \marks
-    \notes{s2.*32 s2*142 \break}
-    \vla
-  >
-  \header{
-    instrument = "Viola";
-  }
-  \paper{
-    \my_paper
-    output = "viola";
-  }
-  \midi {
-    \tempo 4=120;
-  }
-}
-
-\score{
-  \context Voice <
-    \global
-    \marks
-    \vlc
-  >
-  \header{
-    instrument = "Violoncello";
-  }
-  \paper{
-    \my_paper
-    output = "violoncello";
-  }
-  \midi {
-    \tempo 4=120;
-  }
-}
-
-\score{
-  \context Voice <
-    \global
-    \marks
-    \cb
-  >
-  \header{
-    instrument = "Contrabasso";
-  }
-  \paper{
-    \my_paper
-    output = "cb";
-  }
-  \midi {
-    \tempo 4=120;
-  }
-}
diff --git a/mutopia/N.W.Gade/score.ly b/mutopia/N.W.Gade/score.ly
deleted file mode 100644 (file)
index a672ff8..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-\header{
-title =         "Imellem Fjeldene. Ouverture";
-composer =      "Niels W Gade";
-enteredby =     "Mats Bengtsson";
-latexheaders = "\\input global";
-copyright =    "Mats Bengtsson, 1999. Free circulation permitted and " + 
-               "encouraged.\\\\ Typeset from handwritten parts at " +
-               "Statens Musikbibliotek, Stockholm, Sweden";
-}
-
-\version "1.3.4";
-
-\include "global.ly"
-\include "wood.ly"
-\include "brass.ly"
-\include "strings.ly"
-\include "paper16.ly"
-
-\score{ <
-  \context StaffGroup = wood <
-    \context Voice = flauto <
-      \property Staff.instrument = "Flauto"
-      \property Staff.instr = "Fl."
-      \global
-      \marks
-      \flauto
-    >
-    \context Voice = oboe <
-      \property Staff.instrument = "Oboe"
-      \property Staff.instr = "Ob."
-      \global
-      \oboe
-    >
-    \context Voice = clarI <
-      \property Staff.instrument = "Clar. I in B\\textflat  "
-      \property Staff.instr = "Cl. I"
-      \globalNoKey
-      \clarI
-    >
-    \context Voice = clarII <
-      \property Staff.instrument = "Clar. II  in B\\textflat  "
-      \property Staff.instr = "Cl. II"
-      \globalNoKey
-      \clarII
-    >
-    \context Voice = fagotto <
-      \property Staff.instrument = "Fagotto"
-      \property Staff.instr = "Fg."
-      \global
-      \fagotto
-    >
-  >
-  \context StaffGroup = brass <
-    \context Staff = cor <
-      \property Staff.instrument = "2 Corni in F"
-      \property Staff.instr = "Cor."
-      \context Voice = corI <
-       \globalNoKey
-       \stemup \property Voice.dynamicDirection = \up 
-        \property Voice.articulationScriptVerticalDirection = \up 
-       \corI 
-      >
-      \context Voice = corII { 
-       \stemdown \property Voice.dynamicDirection = \down 
-        \property Voice.articulationScriptVerticalDirection = \down
-       \corII 
-      }
-    >
-    \context Staff = trp <
-      \property Staff.instrument = "2 Trp. in B\\textflat  "
-      \property Staff.instr = "Trp."
-      \context Voice = trpI <
-       \globalNoKey
-       \stemup \property Voice.dynamicDirection = \up 
-        \property Voice.articulationScriptVerticalDirection = \up 
-       \trpI
-      >
-      \context Voice = trpII { 
-       \stemdown \property Voice.dynamicDirection = \down 
-        \property Voice.articulationScriptVerticalDirection = \down
-       \trpII
-      }
-    >
-  >
-    \context StaffGroup = percussion <\context Voice = timpani <
-      \property Staff.instrument = "Timp. \& Triang."
-      \property Staff.instr = "\qquad Tmp\& Trg"
-      \global
-      \timpani
-    >
-  >
-  \context StaffGroup = strings <
-    \context GrandStaff = violins <
-      \context Voice = viI <
-        \property Staff.instrument = "Violin I"
-        \property Staff.instr = "Vi. I"
-        \global
-        \viI
-      >
-      \context Voice = viII <
-        \property Staff.instrument = "Violin II"
-        \property Staff.instr = "Vi. II"
-        \global
-        \viII
-      >
-    >
-    \context Voice = vla <
-      \property Staff.instrument = "Viola"
-      \property Staff.instr = "Vla."
-      \global
-      \vla
-    >
-    \context Voice = vlc <
-      \property Staff.instrument = "Violoncello"
-      \property Staff.instr = "Vlc"
-      \global
-      \vlc
-    >
-    \context Voice = cb <
-      \property Staff.instrument = "Contrabasso"
-      \property Staff.instr = "C.B."
-      \global
-      \cb
-    >
-  >
->
- \paper {
-%    \paper_sixteen;
-    linewidth = 18.0\cm;
-    \translator {
-       \OrchestralScoreContext
-        minVerticalAlign = 2.5*\staffheight;
-        barNumberScriptPadding = "12.0";
-        markScriptPadding = "20.0";
-    }
-    \translator { 
-        \HaraKiriStaffContext 
-       \consists "Staff_margin_engraver";
-        marginScriptPadding = "15.0";
-        dynamicPadding = 3.0;
-       textStyle = "italic";
-       textScriptPadding = 5.0;
-        textEmptyDimension = 1;
-       noAutoBeaming = "1"; % Beams inserted explicitly as in the original.
-    }
-  }
-}
-
-\score{
-  \context StaffGroup < \global
-    \context Staff = oboe \oboe
-    \context Staff = flauto \flauto
-    \context Staff = clarinetsInBes {\notes \transpose bes <\clarI \clarII >}
-    \context Staff = fagotto \fagotto
-    \context Staff = corniInF {\notes \transpose f <\corI \corII >}
-    \context Staff = trumpetsInBes {\notes \transpose bes <\trpI \trpII >}
-    \context Staff = timpani \timpani
-    \context Staff = violinoi \viI
-    \context Staff = violinoii \viII
-    \context Staff = viola \vla
-    \context Staff = violoncello \vlc
-    \context Staff = contrabass \cb
-  >
-  \midi {
-  }
-}
diff --git a/mutopia/N.W.Gade/strings.ly b/mutopia/N.W.Gade/strings.ly
deleted file mode 100644 (file)
index d8adf83..0000000
+++ /dev/null
@@ -1,1334 +0,0 @@
-\version "1.3.4";
-
-viI=\notes\relative c'' {
-
-\property Staff."midiInstrument" = "violin"
-
-r4 r [g8.-> \mf ( a16 ] |
-) g4 r c, \p |
-[c'8. ( d16 ] c4. a8 |
-[f8. e16 ] f4. ) a8 |
-[c8. ( d16 ] c4. ) a8 |
-[a8. ( g16 ] ) f4 r |
-[c'8. ( d16 ] c4. a8 |
-[f8. e16 ] f4. ) a8 |
-[c8. ( d16 ] c4. ) a8 |
-[a8. ( g16 ] ) f4 r |
-[c'8. \mf ( \< d16 ] [b8 c] \! ) f4 |
-[ e8. \> ( d16 ] c4 \! ) g \pp |
-[c8. ( \< d16 ] [b8 c] \! ) f4 |
-[ e8. \> ( d16 ] ) \! c2 \p |
-[c8. ( d16 ] c4. a8 |
-[g8. a16 ] f4. ) a8 |
-[c8. ( d16 ] c4. ) a8 |
-[a8. ( g16 ] ) f4 r |
-g2 \< ( \! f4 |
-e \> \! ) f r |
-r8 [ c ( g' c, f c ] |
-[ bes c a8 c a ) c ] |
-[a ( c a c a c ] |
-[a \pp c a c a ) c ] |
-[bes ( c ] bes4 [a8 c ] |
-[ bes c ] ) bes2 ~ |
-bes r4 |
-R2.*4 |
-r4 r r8 [c'16 \pp ( d] | \time 2/4;
-) c8 r r [c16 ( d] |
-) c8 r r [c16 ( d] |
-[c d c a][f a c d] |
-[f8 d ) c d ( ] |
-[ ) a bes () g d' ( ] |
-[ ) a bes () g ] [d'16 ( es ] |
-[ d es d bes][g bes d es] |
-[ g8 es ) d bes ( ] |
-[) g a () f c' ( ] |
-[) g a () f ][ c'16 ( d ] |
-[ ) c8 c16 ( d ][ ) c8 c16 ( d ] |
-[ ) c8 c16 ( d ][ ) c8 c16 \f ( d ] |
-[c d c a][f a c d] |
-[f8 d ) c f, ( ] |
-[f' d ) c a ( ] |
-[a' f ) e ] [a,,16 ( b ] |
-[c-> d c b ][ ) a8 a'16 ( b ] |
-[c d c b ][ ) a8 a,16 ( b ] |
-[c \> d c \! b ][ ) a8 a'16 ( b ] |
-[c d c b ][ ) a8 a,16 ( b ] |
-[) c8-. b16 ( c][ ) d8-. c16 ( d ] |
-[ es f es ) d ][c8-. d'16 ( e ] |
-[f! \fz g f e][d \> e d c ] |
-[ b c b \! a][g a g ) fis ] |
-f!4 ( \p \< g |
-\! a2 |
-a4 \> [g8 \! f'] |
-[e c a ) g ] |
-f4 ( \< g |
-\! a2~ |
-a4 \> ) g |
-\! a2 ( |
-[a8_"dim." g f d] |
-[b g ] \grace b8 [a ) g ] |
-R2 |
-r4 r8 a'-. \mf |
-[a-. \< a-. a-. \! a-. ] |
-b4. \fz r8 |
-R2 |
-r4 r8 a-. \mf |
-[a-. \< a-. a-. \! a-. ] |
-b4. \f bes8 ( |
-) bes'4.-> bes,8 ( |
-) bes'4.-> a8 \p | % added \p
-[g-. \< f-. e-. \! d-. ] |
-[cis16 ( e d b][ ) g8 \f bes8 (] |
-) bes'4.-> bes,8 ( |
-) bes'4.-> a8 \p |
-[g-. \< f-. e-. \! d-. ] |
-[g, g'16 \f ( a ][ ) g8 g,, \p ] |
-g4^\trill ( a^\trill | % added longer slur and trills
-b^\trill \grace{[a16 b]} [c8 ) g ] |
-g4^\trill ( a^\trill |
-b^\trill \grace{[a16 b]} [) c8 bes' \f ( ] | 
-) bes'4.-> a8 |
-[f-. e-. d-. f, ( ] |
-< ) d'4. \fz a'> g,8 ( |
-< ) d'4. \fz g> g,8 ( |
-) e' r g4-> ( |
-) e8 r g4-> ( |
-) e8 r es4 ( |
-[) d8 g16 ( a ] [ ) g8 g, ( ] |
-) e'! r g4-> ( |
-) e8 r g4-> ( |
-) e8 r es4 ( |
-[) d8 g16 ( a ] [ ) g8 g, ( ] |
-) e' r g4_"dim." ( |
-) e8 r d4 ( |
-) e8 r g4 ( |
-) e8 r d4 ( |
-[ ) e8 \p g,-. a-. b-.] |
-c r r4 |
-R2 |
-r4 e,-. \p |
-a ( \< ) e' |
-e-. () \! e-. |
-e \fz \> [ d8 \! c ] |
-b2 \p | % \p added
-\grace e8 g4 ( \> dis | 
-\! e ) b |
-\grace e8 g4 ( \> dis | 
-\! e ) b |
-\grace d8 f2 \fz ( |
-b,4 [c8 ) b] |
-a2-> ( |
-) gis4 e |
-a ( ) e' |
-e-.  \< () \! e-. |
-e ( \fz \> [ d8 \! c ] |
-) b2 \p |
-\grace e8 g4 ( \> dis |
-\! e ) b |
-\grace e8 g4 ( \> dis |
-\! e ) b |
-\grace d8 f2 \fz ( |
-b,4 [c8 ) b] |
-a2 \p ( |
-) gis |
-\grace a8 d2 ( \> |
-b4 [ c8 \! b ] |
-a2 \p |
-) gis |
-R2*4 |
-[c16 ( \pp d c a][f a c d] |
-[f8 d ) c d ( ] |
-[ ) a bes () g d' ( ] |
-[ ) a bes () g ] [d'16 ( es ] |
-[ d es d bes][g bes d es] |
-[ g8 es ) d bes ( ] |
-[) g a () f c' ( ] |
-[) g a () f ][ c'16 ( d ] |
-[ ) c8 c16 ( d ][ ) c8 c16 ( d ] |
-[ ) c8 c16 ( d ][ ) c8 c16 \ff ( d ] |
-[c d c a][f a c d] |
-[f8 d ) c f, ( ] |
-[f' d ) c ][f,16 ( g] |
-[ ) f8 f16 ( g][ ) f8 f'16 ( g] |
-[f g f d][bes d f g] |
-[bes8 g ) f bes, ( ] |
-[bes'8 g ) f d ( ] |
-[d' bes ) a d,,16 ( e ] |
-[f g f e ][ ) d8 d'16 ( e ] |
-[f-> g f e][ ) d8 d,16 ( e ] |
-[f g f e ][ ) d8 d'16 ( e ] |
-[f g f e][ ) d8 d,16 ( e ] |
-[ ) f8 e16 ( f][ ) g8 f16 ( g ] |
-[as bes as g][ ) f8 g'16 ( a! ] |
-[bes! \fz c bes a][g a g ) f ] |
-[e ( f e d][c d c ) b ] |
-bes!4 \p ( \< c | % \p added
-\! d2 ~ |
-d4 [c8 bes' \> ] |
-[a f d ) \! c ] |
-bes4 ( \< c |
-\! d2 ~ |
-d4 \> c |
-\! d2 |
-[d8_"dim." c][bes g] |
-[e c] \grace e8 [d ) c ] |
-R2 |
-r4 r8 d' \mf |
-d2:8 \< |
-\! e4 \f r |
-R2 |
-r4 r8 d |
-d2:8 \< |
-\! e4 \f r8 es ( |
-) es'4.-> es,8 ( |
-) es'4.-> d8 \p |
-[c-. \< bes-. a-. \! g-. ] |
-[fis16 ( a g ) e!] [c8 es8 ( \f ] |
-) es'4.-> es,8 ( |
-) es'4.-> d8 \p |
-[c-. \< bes-. a-. \! g-. ] |
-[c, c'16 ( \f d] [) c8 c,, \p ] |
-c4^\trill ( d^\trill |
-e^\trill \grace{[d16 e]} [f8 ) c ] |
-c4^\trill ( d^\trill |
-e^\trill \grace{[d16 e]} [f8 ) es' \f ( ] |
-) es'4. d8 |
-[bes-. a-. g-. bes, ( ] |
-) d'4. \fz c,8 ( |
-) c'4. \fz c,8 ( |
-) a' r c4-> ( |
-) a8 r c4-> ( |
-) a8 r as4 ( |
-[) g8 c16 ( d][) c8 c, ( ] |
-) a' r c4 ( |
-) a8 r c4 ( |
-) a8 r as4 ( |
-[) g8 c16 ( d][) c8 c, ( ] |
-) a' r c4_"dim." ( |
-) a8 r g4 ( |
-) f8 r c4 ( |
-) a8 r g4 \p ( |
-) f2 \< ~ |
-\! f2 ( ~ |
-f4 g |
-f ) e |
-es2 ( |
-) d4 r |
-\grace f'8 a4 \fz ( e |
-f b, |
-) c r |
-R2 |
-f,8 \p r r4 | % \p added
-e8 r r [c'16 ( \pp d] |
-[ ) c8-. b16 ( c ][ ) b8-. bes16 ( c ] |
-[ ) bes8-. a16 ( bes ][ ) a8-. c16 ( d ] |
-[ ) c8-. b16 ( c ][ ) b8-. bes16 ( c ] |
-[ ) bes8-. a16 ( bes ][ ) a8-. e'16 ( f ] |
-[ ) e8-. d16 ( e ][ ) d8-. c16 \< ( d ] |
-[ ) c8-. b16 ( \! c ][ ) b8-. bes ] |
-bes'4. \fz \> a8 |
-[g-. \! f-. ] [e-. c16 ( d ] | 
-[ ) c8-. b16 ( c ][ ) b8-. bes16 ( c ] |
-[ ) bes8-. a16 ( bes ][ ) a8-. c16 ( d ] |
-[ ) c8-. b16 ( c ][ ) b8-. bes16 ( c ] |
-[ ) bes8-. a16 \< ( bes ][ ) a8-. \! bes ( ] |
-) bes'4. \f d,8 ( |
-) d'4.-> c,8 ( |
-) c'4.-> e,8 ( |
-) e'4.-> [c16 ( d] |
-[c d c a][f a c d] |
-[f8 d ) c ][ c16 ( d ] |
-[c d c a][f a c d] |
-[f8 d ) c ][f,16 ( g ] |
-[f g f d ][ ) b8 bes'!16 ( c ] |
-[bes c bes g][ ) e8 c'16 ( d ] |
-[) c8 c16 ( d ][) c8-. c16 ( d ] |
-[) c8-. c16 ( d ][) c8-. c16 ( d ] |
-) c8-. r c r |
-a r <e bes> r |
-<a, f'> r a' r |
-c r a r |
-<f4 a,> r8 c ( |
-<a4 ) a'> r8 c ( |
-<a4 ) f'> r8 c ( |
-<a4 ) a'> r8 c, |
-f2 ~ |
-f ( |
-<f4 \fz c' ) a'> r
-
-}
-
-viII=\notes\relative c' {
-
-\property Staff."midiInstrument" = "violin"
-
-r4 r e->  \mf ~ |
-e r e ( \p |
-) f2 f4 ( |
-) c r r |
-f2 f4 ( |
-) e f r |
-f2 f4 ( |
-) c r r |
-f2 f4 ( |
-e \< [f8. d16][c8. \! ) d16] |
-[e8. \mf ( f16][d8 ) e] f4 ~ |
-f ( e [c8 ) e] |
-a2. \pp ( |
-gis4 e ) f |
-g! \p [f8. ( g16] ) f8 r |
-c4 ( ~ [c8. d16] ) c8 r |
-g'4 [f8. ( g16] ) f8 r |
-c4 r r |
-<c2. { s4. \< \! s4. \>}> ~ |
-\! c2._"dim." ~ |
-c \pp ~ |
-c \< ~ |
-\! c \> ~ |
-\! c \pp \< ~ |
-\! c \> ~ |
-\! c \pp ~ |
-c2 r4 |
-R2.*4 |
-r4 r r8 [c'16 \pp ( d] | \time 2/4;
-) c8 r r [c16 ( d] |
-) c8 r r [c16 ( d] |
-[c d c a][f a c d] |
-[f8 d ) c ] r |
-fis,-. r g-. r |
-fis r [g d'16 ( es ] |
-[ d es d bes][g bes d es] |
-[ g8 es ) d ] r |
-e,! r f r |
-e r f r |
-R2 |
-r4 r8 [ c'16 \f ( d ] |
-[c d c a][f a c d] |
-[f8 d ) c f, ( ] |
-[f' d ) c f, ( ] |
-[f' d ) c ] [a,16 ( b ] |
-[c d c b ][ ) a8 a'16 ( b ] |
-[c-> d c b ][ ) a8 a,16 ( b ] |
-[c d c b ][ ) a8 a'16 ( b ] |
-[c-> d c b ][ ) a8 a,16 ( b ] |
-[) c8-. b16 ( c][ ) d8-. c16 ( d ] |
-[ es f es ) d ][c8-. d'16 ( e! ] |
-[f! g f e][d e d c ] |
-) b r r8 r4 |
-<{d,2 ( \p ~ |
-  d4 e |
-  f2 |
-  ) e |
-  d ( \p ~ |
-  d4 e |
-  f2 |
-  f |
-  ) f4 }
- {b,2 ( ~ |
-  b4 c |
-  b2 |
-  ) c |
-  b ( ~ |
-  b4 c |
-  b2 |
-  b4 c |
-  ) d \p } > r |
-R2*2 |
-r4 r8  fis-. \mf |
-[fis-. \< fis-. fis-. \! fis-. ] |
-f!4. \f r8 |
-R2 |
-r4 r8  fis-. |
-fis2:8 |
-f!4. \f e8 ( |
-) e'4.-> e,8 ( |
-) e'4.-> c,8 \p |
-[cis-. \< d-. e-. \! f-. ] |
-f4. \f e8 ( |
-) e'4.-> e,8 ( |
-) e'4.-> c,8 \p |
-[cis-. \< d-. e-. \! f-. ] |
-[f \f g16 ( a][ ) g8 g, \p ] |
-g4^\trill ( \< \! a^\trill |
-b^\trill \> \grace{[a16 b]} [ ) c8 \! g] |
-g4^\trill ( \< \! a^\trill |
-b^\trill \> \grace{[a16 b]} [ ) \! c8 g' \f ( ] |
-< ) g4.-> bes> a8 |
-[a a a f ( ] |
-<d'4. \fz ) a'> g,8 ( |
-<d'4. \fz ) g> g,8 ( |
-<{ ) e r f4_> ( |
-  ) e8 r f4_> ( |
-  ) e8 }
- {c'8 s d4 ( |
-  ) c8 s d4 ( |
-  ) c8 }> r fis4 ( |
-[ ) f!8 g16 ( a][ ) g8 f ( ] |
-<{ ) e! r f4_> ( |
-  ) e8 r f4_> ( |
-  ) e8 }
- {c'8 s d4 ( |
-  ) c8 s d4 ( |
-  ) c8 }> r fis4 ( |
-[ ) f!8 g16 ( a][ ) g8 f ( ] |
-<{ ) e r f4 ( |
-  ) e8 r f4_"dim." ( |
-  ) e8 r f4 ( |
-  ) e8 r f4 ( |
-  [ ) e8 \p }
- {c'8 s d4 ( |
-  ) c8 s b4 ( |
-  ) c8 s d4 ( |
-  ) c8 s b4 ( |
-  [ ) c8 }> g,-. a-. b-. ] |
-c r r4 |
-R2*2 |
-a4:16 \p \< \! b4:16 \> |
-\! c2:16 \< |
-\! b2:16 \> |
-\! b2:16 |
-b4:16 \p \< \! c4:16 \> |
-\! b2:16 |
-b4:16 \p \< \! c4:16 \> |
-b2:16 |
-\grace d8 \! f2 ( \> | % grace note c8 corrected to d8
-\! ) e |
-b-> ( |
-) e4 r |
-a,4:16 \p b4:16 |
-c2:16 \< |
-\! b2:16 \fz \> |
-\! b2:16 |
-b4:16 \p \< \! c4:16 \> |
-\! b2:16 |
-b4:16 \p \< \! c4:16 \> |
-\! b2:16 |
-\grace d8 f2 ( \fz |
-) e |
-[ a,16 ( \p d a d ][a d a d] |
-[ b16 d b d ][b d b ) d] |
-f2 ( \> |
-) \! e | 
-[ a,16 ( d a d ][a d a d] |
-[ b16 d b d ][b d b ) d] |
-R2 |
-r8 [e16^"solo" ( f] ) e4 ( |
-) d2_"dim." ~ |
-d ( |
-) c4 r |
-r r8 d' ( |
-[ ) a bes () g d' ( ] |
-[ ) a bes () g ] r |
-R2 |
-r4 r8 bes ( |
-[) g a () f c' ( ] |
-[) g a () f ] r |
-R2 |
-r4 r8 [c'16 \fz ( d ] |
-[c d c a][f a c d] |
-[f8 d ) c f, ( ] |
-[f' d ) c ][f,16 ( g] |
-[ ) f8 f16 ( g][ ) f8 f'16 ( g] |
-[f g f d][bes d f g] |
-[bes8 g ) f bes, ( ] |
-[bes' g ) f bes, ( ] |
-[bes' g ) f d,16 ( e! ] |
-[f-> g f e ][ ) d8 d'16 ( e ] |
-[f g f e][ ) d8 d,16 ( e ] |
-[f g f e ][ ) d8 d'16 ( e ] |
-[f g f e][ ) d8 d,16 ( e ] |
-[ ) f8 e16 ( f][ ) g8 f16 ( g ] |
-[as bes as g][ ) f8 g'16 ( a! ] | % misprint fz to early
-[bes! \fz c bes a][g a g f ] |
-) e r r8 r4 |
-<{e,2 \p ~ |
-  e4 \< \! f |
-  e2 \> |
-  \! f |
-  e \< |
-  e4 \! f |
-  e2 ( |
-  ) e4 ( f |
-  ) g4 \p }
- {g2 ( ~ |
-  g4 a |
-  bes2 |
-  ) a |
-  g2 |
-  g4 a |
-  bes2 ( 
-  ) bes2 (
-  ) bes4}> r |
-R2*2 |
-r4 r8 b \p |
-b2:8 \< |
-< \! g4 bes! \fz > r |
-R2 |
-r4 r8 b \p |
-b2:8 \< |
-< \! g4 bes! \f > r8 a ( |
-<c4._> ) a'> a8 ( |
-<c4._> ) a'> f,8 \p |
-[fis-. \< g-. a-. \! bes-.] | % cresc. added
-bes4. a8 ( \f |
-<c4._> ) a'> a8 ( |
-<c4._> ) a'> f,8 \p |
-[fis-. \< g-. a-. \! bes-.] |
-[bes \f c16 ( d][)c8 c, \p ] |
-c4^\trill ( \< \! d^\trill |
-e^\trill \> \grace{[d16 e]} [ \! f8 ) c ] |
-c4^\trill ( d^\trill |
-e^\trill \grace{[d16 e]} [ ) f8 a ( \f ] |
-<a4. ) c4.> d8 |
-[d d d bes \f (] |
-<bes4. ) g'4.> bes8 (|
-<bes4. \f ) g'4.> bes8 (|
-<{a r bes4 ( |
-  ) a8 r bes4 ( |
-  ) a8}
- { ) f' r g4^> ( |
-  ) f8 r g4^> ( |
-  ) f8}> r b4 ( |
-[ ) bes!8 c16 ( d][ ) c8 bes ( ] |
-<{a r bes4 ( |
-  ) a8 r bes4 ( |
-  ) a8}
- {) f' r g4 ( |
-  ) f8 r g4 ( |
-  ) f8}> r b4 ( |
-[ ) bes!8 c16 ( d][ ) c8 bes ( ] |
-<{a r bes4_"dim." ( |
-  ) a8 r bes4 ( |
-  ) a8}
- {) f' r g4 ( |
-  ) f8 r e4 ( |
-  ) f8}> r g4 ( |
-) c,8 r e4 \p |
-es2 ( |
-) d4 \< \! des |
-c2 \> ~ |
-\! c |
-a4 ( \< c |
-d \! des |
-c \f \> ) bes |
-a ( g |
-\! ) a r |
-R2 |
-c8 \p r r4 |
-c8 r r4 |
-R2 |
-r4 r8 c \p ~ |
-c d4 e8 ~ |
-e f4 c8 ~ |
-c d4 e8 ~ |
-e \< e4 \! e8 ( |
-) bes'!4. \fz \> a8 |
-[ \! g-. f-. e-.] r |
-R2 |
-r4 r8 es \p ~ |
-es es4 es8 ~ |
-es \< es4 \! d8 \f |
-  d'4.-> <{bes8 ( |
-  ) g'4. bes,8 ( |
-  ) g'4. bes,8 ( |
-  ) g'4. }
- {d,8 |
-  bes'4. g8 |
-  bes4._> g8 |
-  bes4._> }> [c,16 ( d] |
-[c d c a][f a c d] |
-[f8 d ) c ][ c16 ( d ] |
-[c d c a][f a c ) d] |
-[f8 ( d ) c ][f16 ( g ] |
-[f g f d ][ ) b8 bes!16 ( c ] |
-[bes c bes g][ ) e8 < bes' g'^. > ] |
-<{[a bes a bes] |
-  [a bes a bes] |
-  [a}
- {[f'-. g-. f-. g-.] |
-  [f-. g-. f-. g-.] |
-  [ f}> c16 ( d ][ ) c8-. c16 ( d ] |
-[ ) c8-. c16 ( d ][ ) c8-. c16 ( d ] |
-) c8-. r <c f,> r |
- <c f,> r <c f,> r |
-<a4 f> r8 c ( |
-<a4 ) a'> r8 c ( |
-<a4 ) f'> r8 c ( |
-<a4 ) a'> r8 c, |
-[a16 ( gis a gis][a gis a gis] |
-[a gis a gis][a gis a gis] |
-<) a4 f' \fz > r 
-}
-
-vla=\notes\relative c' {
-\clef "alto";
-
-\property Staff."midiInstrument" = "viola"
-
-[c8. \f ( d16 ] ) c2_"dim." |
-\context Staff <{\voiceone [c8. d16 ] c2 |
-  c2. ~ |
-  c2. ~ |
-  c2. ~ |
-  c2. ~ |
-  c2. ~ |
-  c2. ~ |
-  c2. ~ | } 
- { \voicetwo [c8. ( d16 ] c4 ) bes |
-  [a8 \p ( bes ] a4. ) c8 | % added \p 
-  [a8 ( bes ] a4. ) c8 |
-  [a8 ( bes ] a4. ) c8 |
-  [c8 ( bes ] ) a2 |
-  [a8 ( bes ] a4. ) c8 |
-  [a8 ( bes ] a4. ) c8 |
-  [a8 ( bes ] a4. ) c8 |} >
-[c8. ( \< bes16 ] ) \! a2 |
-g2 \mf [a8 \< ( \! d ] |
-[ c \> b \! c g e ) c] |
-[e'8. \pp ( f16 d8 e f d ] |
-b4 [c8 \< a f \! ) a ] |
-c,2 \p () c'4 |
-c,2 () c'4 |
-c,2 () c'4 |
-c, () c' r |
-[c,8 ( g' ][ c g c a ] |
-[bes c ] ) a4 r |
-R2. |
-r4 r dis, \< ( |
-) \! e r dis' \pp ( |
-) e r r |
-R2. |
-r4 r c, \pp ~ |
-c2. ~ |
-c4 r r |
-R2.*3 |
-r4 r r8 r8 |
-R2*4 |
-c'8-. \pp r bes-. r |
-c-. r bes-. r |
-R2*2 |
-bes8-. r a-. r |
-bes-. r [a-. c16 ( d ] |
-[ ) c8 c16 ( d ] [ ) c8 c16 ( d ] |
-[ ) c8 c16 ( d ] [ ) c8 c16 () f ] |
-[c ( \f f c f][ c f c ) f ] |
-[d ( f d f][ c f c ) f ] |
-[d ( f d f][ c f c ) f ] |
-[d ( f d f] ) a8 r |
-f,4.-> [a16 ( b] |
-[c d c b] ) a8 r |
-f4. [a16 ( b] |
-[c d c b] ) a8 r |
-<f8 a> r <f a> r |
-<fis a> r <fis a> r |
-[<g \fz d'> d'16 ( e][f g f e ] |
-[d e d c] ) b8 r |
-[as16 ( \p g as g] [fis g fis ) g ] |
-[f! ( g f g][e g e ) g] |
-d4 \> \! g |
-[c,16 ( g' a g ] [a g a ) g ] |
-[as16 ( \p g as g] [fis g fis ) g ] |
-[f! ( g f g][e g e ) g] |
-[d ( g d g ][d g d g ] |
-[d g d g ] [c, g' c, g' ]
-) d4 \p r |
-r r8 <c \p g'> |
-<c2:8 g'2:8 > |
-<c2:8 g'2:8 \< > |
-< \! c2:8 \f g'2:8 > |
-<{[c8 c c c \p ]}{[g' g g g]}> |
-<c2:8 g'2:8 > |
-<c2:8 g'2:8 > |
-<c2:8 \f g'2:8 > |
-<{[c8 c c c ] |
-  c'4.-> c,8 |
-  c'4. }
- {[g8 g g g (] |
-  ) g'4. g,8 ( |
-  ) g'4. }
-     > a'8-. \p |
-[g-. \< f-. e-. \! d-. ] |
-b4. <{c,8 \f |
-  c'4.-> c,8 |
-  c'4. }
- { g8 ( |
-  ) g'4. g,8 ( |
-  ) g'4. }> a'8-. \p |
-[g-. \< f-. e-. \! d-. ] |
-b4 r8 <c, \p g'> |
-<c2:8 g'2:8 > |
-<c2:8 g'2:8 \< > |
-< c2:8 g'2:8 > |
-<{[ \! c8 c c cis \f (]}{[g' g g s ]}> |
-) cis'4.-> cis8 |
-[d a d <d ( g,> ] |
-<f4. ) d' \fz > <d8 ( g,> |
-<f4. ) d' \fz > g,8 ( |
-[c,16 g' fis ) g] [c, (g' fis ) g ] |
-[c, ( g' fis ) g] [c, (g' fis ) g ] |
-[c, ( g' fis ) g] [c, (a' gis ) a ] |
-[b ( c d ) b ][g ( a f ) d ] |
-[c ( g' fis ) g] [c, (g' fis ) g ] |
-[c, ( g' fis ) g] [c, (g' fis ) g ] |
-[c, ( g' fis ) g] [c, (a' gis ) a ] |
-[b ( c d ) b ][g ( a f ) d ] |
-[c ( g' fis ) g] [c, (g' fis ) g ] |
-[c,_"dim." ( g' fis ) g] [c, (g' fis ) g ] |
-[c, ( g' fis ) g] [c, (g' fis ) g ] |
-[c, ( g' fis ) g] [c, (g' fis ) g ] |
-c,8 \p r r4 |
-r8 [g'-. a-. b-.] |
-c r r4 |
-r8 <{[b c d] | c }{gis-. a-. b!-. | a}>
-  r r4 |
-R2*2 |
-g'4 \p ( [fis8 \< dis ] |
-\! e4 fis |
-g \> [fis8 ) \! dis ] |
-e4 \< ( \! fis |
-g \> [fis8 ) \! dis ] |
-<d!2 \fz e, > ~ |
-<d2 e, > |
-<d b > ~ |
-<d b > |
-c4 r |
-R2*2 |
-g'4 \p ( [fis8 \< dis ] |
-\! e4 fis |
-g \> [fis8 ) \! dis ] |
-e4 \< ( \! fis |
-g \> [fis8 ) \! dis ] |
-<d!2 \f e, > ~ |
-<d e, > |
-d \p ~ |
-d |
-<d a \> > ~ |
-<d \! gis, > |
-d \p ~ |
-d ~ |
-d ~ |
-d_"dim." ~ |
-d4 r |
-r8 [e16 ( f ] e4 |
-) es \pp r |
-R2*3 |
-g,2 ~ |
-g4. r8 |
-R2 |
-r4 r8 [c16 \p ( d ] |
-[ ) c8 c16 ( d ] [ ) c8 c16 ( d ] |
-[ ) c8 c16 ( d ] [ ) c8 c16 ( f ] |
-[c \fz f c f][ c f c ) f ] |
-[d ( f d f][ c f c ) f ] |
-[d ( f d f] ) c8 r |
-r4 r8 [ f16 () g ] |
-<d2:16 f2:16> |
-<es4:16 g4:16> <d4:16 f4:16> |
-<es4:16 g4:16> <d4:16 f4:16> |
-<g4:16 bes4:16> <f!8 a> r |
-bes,4.-> [d16 ( e ] |
-[f g f e ] ) d8 r |
-bes4.-> [d16 ( e ] |
-[f g f e ] ) d8 r |
-<bes d> r <bes d> r |
-<b d> r <b d> r |
-[<c \fz e^. > g'16 ( a ] [bes! \> c \! bes a ] |
-[g a g f ] ) e r r8 |
-[des16 ( \p c des c ] [ b c b c ] |
-[bes! \< c bes c ] [ \! a c a ) c ] |
-g4 \> \! c, ( |
-[f16 c' d c][d c d ) c] |
-[des16 ( \p c des c ] [ b c b c ] |
-[bes! \< c bes c ] [ \! a c a ) c ] |
-[g \> ( c g c][g c g \! c ] |
-[g c g c][f, c' f, ) c'] |
-e,4 \p r |
-r r8 <f \p c'> |
-<f2:8 c'2:8> |
-<f2:8 \< c'2:8> |
-<f2:8 \! c'2:8> |
-<{[f8 \f f f f \p ]}{[c'8 c c c]}> |
-<f2:8 \< c'2:8> |
-<f2:8 \! c'2:8> |
-<f2:8 \f c'2:8> |
-<{[f8 f f f] |
-  f'4._> f,8 |
-  f'4._> }
- {[c8 c c c ( ] |
-  ) c'4. c,8 ( |
-  ) c'4. }> d'8 \p |
-[c-. \< bes-. a-. \! g-. ] |
-<{c,4. f,8 \f |
-  f'4._> f,8 |
-  f'4._> } % added >
- {e4. c8 ( |
-  ) c'4. c,8 ( |
-  ) c'4. }> d'8 \p | % \p added
-[c-. \< bes-. a-. \! g-. ] |
-<e4 c> r8 <f, \p c'> |
-<f2:8 c'2:8> |
-<f2:8 \< c'2:8> |
-<f2:8 \! c'2:8> |
-<{[f8 f f fis \f (( ]}{[c'8 c c s]}> |
-< ) a4. ) fis'4.> fis'8 |
-[g d g <g, ( c,> ] |
-<c4. \fz ) g'> <g8 ( c,> |
-<c4. \fz ) g'> c,8 ( |
-[f16 c' b ) c ][ f, ( c' b ) c ] |
-[ f, ( c' b ) c ] [ f, ( c' b ) c ] |
-[ f, ( c' b ) c ] [ f, ( d' cis ) d ] |
-[e ( f g ) e ][c ( d bes ) g] |
-[ f ( c' b ) c ] [ f, ( c' b ) c ] |
-[ f, ( c' b ) c ] [ f, ( c' b ) c ] |
-[ f, ( c' b ) c ] [ f, ( d' cis ) d ] |
-[e ( f g ) e ][c ( d bes ) g] |
-[ f ( c' b ) c ] [ f, ( c' b ) c ] |
-[ f,_"dim." ( c' b ) c ] [ f, ( c' b ) c ] |
-[ f, ( c' b ) c ] [ f, ( c' b ) c ] |
-[ f, ( c' b ) c ] [ f, ( c' b ) c ] |
-f,2 \p ~ |
-f4 r |
-R2*2 |
-f'2 ( ~ |
-f |
-f4 \f g |
-) f [f8. ( \> g16 ] |
-\! f2 |
-) c |
-a8 \p r r4 |
-g8 r r a \pp ~ |
-a as4 g8 ~ |
-g f4 a!8 ~ |
-a as4 g8 ~ |
-g f4 e8 ~ |
-e \< f4 e8 ~ |
-\! e d4 c8 ( |
-<g'4. \fz ) e'> f8 |
-[g-. a-. bes-. a ~ ] |
-a as4 g8 ~ |
-g f4 a!8 ~ |
-a \< as4 \! g8 ~ |
-g f4 \f f8 ( |
-<bes4._> ) f' > g8 ( |
-<d'4._> ) bes' > e,!8 ( |
-<c'4._> ) g' > <g8 ( c, > |
-<c4._> ) g' > c,8 ( |
-) f4. a8 ( |
-[d f ) a ] c,,8 ( |
-) f4. a8 ( |
-[d f ) a ] [f16 ( g ] |
-[f g f d ][ ) b8 bes'!16 ( c ] |
-[bes c bes g][ ) e8 c'16 ( d ] |
-[) c8-. c16 ( d ][) c8-. c16 ( d ] |
-[) c8-. c16 ( d ][) c8-. c16 ( d ] |
-[) c8-. c,16 ( d ][) c8-. c16 ( d ] |
-[) c8-. c16 ( d ][) c8-. c16 ( d ] |
-) c8-. r c-. r |
-a r c-. r |
-<c4 a'> r8 c ( |
-<f4 ) c'> r8 c, ( |
-<c'4 ) a'> r8 c ( |
-<f4 ) c'> r8 c, |
-[c'16 ( b c b][c b c b] |
-[c b c b][c b c b] |
-<c4 \fz ) a'> r 
-}
-
-vlc=\notes\relative c' {
-\clef "bass";
-
-\property Staff."midiInstrument" = "cello"
-
-r4 r [bes8. \mf ( c16] |
-) bes4 r bes \p ( |
-[ a8 bes ) a f, ( c' f] |
-[ a8 bes ) a f, ( c' f] |
-[ a8 bes ) a f, ( c' f] |
-[c' bes ) a f, ( c' f] |
-[ a8 bes ) a f, ( c' f] |
-[ a8 bes ) a f, ( c' f] |
-[ a8 bes ) a f, \< ( c' f] |
-[c' bes a f \! c ) f, ] |
-<{g2. ( | ) g2 }
- {c,2. \mf ( | ) c2 \> ( ) \! c'4 |}
- {s2. \< \! s8}>
-a2  \pp d4 \< ( |
-e ) \! a2 |
-[bes8 \p ( c] [a c a c] |
-[bes8 c] [a c a c] |
-[bes8 c] [a c a ) c] |
-[c ( bes a f c ) f, ] |
-e2 (\< \! f4 |
-g \> ) \! f r |
-e'2 ( f4 |
-g ) f f, ( \< | % added slur
-) \! e2 f'4 \pp ( |
-) e2 dis4 ( \< |
-\! ) e2 dis4 ( \pp |
-) e2. ~ |
-e2 r4 |
-R2.*4 |
-r4 r4 r8 [c'16 \pp ( d] | \time 2/4; % \pp added
-) c8 r r [c16 ( d] | 
-) c8 r r [c16 ( d] |
-[c d c a][f a c d] |
-[f8 d ) c] r |
-d,-. \pp r g-. r |
-d-. r [g-. d'16 ( es] |
-[d es d bes][g bes d es] |
-[g8 es ) d] r |
-c,-. r f-. r |
-c-. r [f-. c'-. ] |
-[bes-. a-. g-. f-.] |
-[e d][c a'16 \f ( f] |
-[a f a f][a f a ) f] | % Misprint trem 8
-[bes ( f bes f][a f a ) f] |
-[bes ( f bes f][a f a ) f] |
-[a ( d, a' d,][)a8 a'16 ( b] |
-[c d c b ][) a8 f ( ] |
-) e4. [a16 ( b] |
-[c d c b ][) a8 f ( ] |
-) e4. [a,16 ( b ] |
-[)c8 b16 ( c][)d8 c16 ( d] |
-[es f es d] ) c8 r |
-[g \fz d''16 ( e] [f g f e] |
-[d e d c][b c b ) a] |
-[as \p ( g as g][fis g fis g ] |
-[f! \< g f g][e g e ) \! g] |
-[d \> ( g d g] [d g d ) \! g] |
-c,2 |
-[as'16 ( g as g][fis g fis g ] |
-[f! g f g][e g e ) g] |
-[d ( g d g] [d g d g] |
-d4 c \p |
-) b r |
-R2*2 |
-r4 r8 c'8 \f ( |  % Misprint, missing slur
-) c,4. c8 ( |
-) c,4. r8 |
-R2 |
-r4 r8 c''8 \f (|
-) c,4. c8 ( |
-) c,4. c''8 ( |
-< ) g4. c,_> > c8 ( |
-< ) g4. c,> c,8 \p |
-[cis-. \< d-. e-. \! f-. ] |
-g,4.  c8 \f ( |
-< ) c4. f,_> > c8 ( | % slur added
-< ) c4.-> f,> c8 \p | % > and \p moved one quaver backwards
-[cis-. \< d-. e-. \! f-. ] |
-g,4 r8 <{ c8 \p |
-  c2:8 |
-  c2:8 \< |
-  \! c2:8 |
-  [c8 c s s] |
-  a4.}
- {g'8 |
-  g2:8 |
-  g2:8 |
-  g2:8 |
-  [g8 g c cis (] | % added slur
-  ) e,4.-> }> a8 |
-[d-. e-. f-. b ( ] |
-) b,4. \f b'8 ( |
-< ) d,4.  \f g,> g8 ( |
-[)c,16 g' (fis) g][c,( g' fis ) g] |
-[c, ( g' fis ) g][c, ( g' fis ) g] |
-[c, ( g' fis ) g][c, ( a' gis ) a] |
-[b ( c d ) b][g ( a f )d ] |
-[c ( g' fis ) g][c, ( g' fis ) g] |
-[c, ( g' fis ) g][c, ( g' fis ) g] |
-[e ( g fis ) g][c, ( a' gis ) a] |
-[b ( c d ) b][g ( a f )d ] |
-[c ( g' fis ) g][c, ( g' fis ) g] |
-[c,_"dim." ( g' fis ) g][c, ( g' fis ) g] |
-c,4 r |
-c4 r |
-c8 \p r8 r4 |
-R2 |
-r8 [c-.^"solo" \p d-. dis-. ] |
-e r e, r |
-c'4:16 \p d4:16 |
-e4:16 \< \! fis4:16 |
-g2:16 \> |
-g4:16 \! a4:16 |
-g4:16 \< \! a4:16 |
-g4:16 \> \! a4:16 |
-g4:16 \< \! a4:16 |
-g4:16 \> \! a4:16 |
-gis2 \fz ~ |
-gis |
-f! ( |
-[e8 d c ) b ] |
-c4:16 \p d4:16 |
-e4:16 \< \! fis4:16 |
-g2:16 \fz \> | 
-\! g4:16 \p \< a4:16 |
-\! g4:16 \> \! a4:16 |
-g4:16 \< \! a4:16 |
-g4:16 \> a4:16 |
-g4:16 \! a4:16 |
-gis2 \fz ~ |
-gis ( |
-) f \p \> |
-\! e_"dim." |
-d |
-e |
-f |
-e |
-[f16 ( g f g][f g f8 ] |
-) e4 r |
-[f16 ( g f_"dim." g][f g f8 ] |
-) e4 r |
-[c'16 \pp ( d c a][f a c ) d] |
-[f8 ( d ) c] r |
-fis,8-. r g-. r |
-d r [g d'16 ( es] |
-[d es d bes][g bes d es] |
-[g8 es ) d] r |
-c, r f-. r |
-c r [f-. c'-. ] |
-[bes-. \< a-. g-. \! f-.] |
-[e-. d-.][c-. a'16 \f ( f] |
-[a f a f][a f a ) f] | % Misprint trem 8
-[bes ( f bes f][a f a ) f] |
-[bes ( f bes f][) a8 f-.] |
-[e-. es-. d-. c-. ] |
-[bes16 ( f' bes f][bes f bes ) f] |
-[bes, ( a bes a][bes d f ) bes ] |
-[bes, ( a bes a][bes d f ) bes ] |
-g4 ( [ ) d8 d'16 ( e] |
-[f g f ) e] [d8 bes^._> ] |
-a4. [d16 ( e] |
-[f g f ) e] [d8 bes ( ] |
-) a4. [d,16 ( e ] |
-[) f8-. e16 ( f] [) g8-. f16 ( g] |
-[)as ( bes as g ] ) f8 r |
-c \fz r r [e'16 ( f ] |
-[g a_"dim." g f][e f e ) d] |
-[des \p \< ( c des c][b c b \! ) c ] |
-[bes! ( c bes c][a c a ) c ] |
-[g ( c g c][g c g ) c] | % misprint a c a c a c a c, comp. bar 59
-f,2 |
-[des'16 \p ( c des c][b c b ) c ] |
-[bes! ( c bes c][a c a ) c ] |
-[g ( c g c][g c g c] | % misprint a c a c a c a c, comp. bar 64
-g4 f |
-) e r |
-R2*2 |
-r4 r8 f' \f (|
-) f,4.-> f8 ( |
-) f,4.-> r8 |
-R2 |
-r4 r8 f'' (|
-) f,4.-> f8 ( |
-) f,4. f'8 (|
-<) c4. f, > f8 ( |
-<) c4. f,> f8 \p |
-[fis-. \< g-. a-. \! bes-. ] |
-c,4.  f8 \f ( |
-<) f4. bes,_> > f8 (|
-<) f4. bes,_> > f8 \p | % \p added
-[fis-. \< g-. a-. \! bes-. ] |
-c,4 r8 <{ f8 \p |
- f2:8 \< |
- f2:8 |
- \! f2:8 | }
- {c'8 |
- c2:8 |
- c2:8 |
- c2:8 |}>
- [c'8 c f fis ( \f ] |
- < ) a,4. d,_> > d,8 |
-[g-. a-. bes-. e! ( ] |
-) e,4.-> e'8 |
-< g,4.  c,_> > c8 |
-[f,16 ( c' b c][f,16 c' b ) c] |
-[f,16 ( c' b c][f,16 c' b ) c] |
-[f,16 ( c' b ) c][f, ( d' cis ) d] |
-[e ( f g ) e][c ( d bes ) g] |
-[f16 ( c' b ) c][f,16 ( c' b ) c] |
-[f,16 ( c' b ) c][f,16 ( c' b ) c] |
-[f,16 ( c' b ) c][f, ( d' cis ) d] |
-[e ( f g ) e][c ( d bes ) g] |
-[f16 ( c' b ) c][f,16 ( c' b ) c] |
-[f,16 ( c' b ) c][f,16 ( c' b ) c] |
-f,8 r e'4 ( |
-) f8 r bes,4 \p ( |
-) a2 ( |
-) bes |
-a4 \< ( \! bes |
-a \> ) \! g |
-a2 ( \< |
-) \! bes |
-f4 \f \> ( cis |
-d \! g, |
-) c!8 r r4 |
-R2 |
-c8 r r4 |
-c8 r r4 |
-<c8 \pp f,> r <c f,> r |
-<c f,> r <c f,> r |
-<c f,> r <c f,> r |
-<c f,> r <c f,> r |
-e, r e r |
-e r [e () c] |
-c'4. \f \> d8 |
-[\! e-._"dim." f-. g-.] r |
-<c,8 \p f,> r <c f,> r |
-<c f,> r <c f,> r |
-<c f,> r <c f,> r |
-<c f,> r <c f,> bes' \f |
-bes,4.-> g'8 ( |
-) g,4.-> e'!8 ( |
-) e,!4.-> c'8 ( |
-) c,4.-> [c''16 ( d ] |
-[c d c a][f a c d] |
-[f8 d ][) c c16 ( d] 
-[c d c a][f a c d] |
-[f8 d ][) c d, ( ] |
-) g,4.-> g'8 ( |
-) c,4.-> c'8 ( |
-[ ) f, c-. f-. c-. ] |
-[f-. c-. f-. c-. ] |
-f r c r |
-f r c' r |
-f, r c r |
-a r c r |
-f4 r8 c8 ( |
-) f4 r8 c8 ( |
-) f,4 r8 c'8 ( |
-) f4 r8 c8 ( |
-) f,2 ~ |
-f ( |
-) f'4 \fz r
-}
-
-cb=\notes\relative c {
-\clef "bass";
-
-\property Staff."midiInstrument" = "contrabass"
-
-r4 r c-> \mf ~ |
-c r c \p ( |
-) f,2. ~ |
-f ~ |
-f2 f'4 ( |
-c ) f r |
-f,2. ~ |
-f ~ |
-f ~ |
-f2 r4 |
-c'2. ~ |
-c |
-a2 d4 ( |
-e a ) f |
-c2. \p ~ |
-c ~ |
-c ~ |
-c4 () f r |
-e2 f4 ( |
-g ) f r |
-R2. |
-r4 r f ( \< |
-\! ) e2 r4 |
-r r dis ( \< |
-\! ) e2 r4 |
-R2.*6 |
-r4 r r8 r |
-R2*4 |
-d8-. \pp r g-. r |
-d-. r g-. r |
-R2*2 |
-c,8-. r f-. r |
-c-. r f-. r |
-R2 |
-r4 r8 f8 \f ~ |
-f2 |
-f |
-f |
-d4 () a8 r |
-f4.-> f'8 ( |
-) e4. r8 |
-f,4.-> f'8 ( |
-) e4. r8 |
-f,8 r f' r |
-fis r fis r |
-g \fz r r4 |
-R2*3 |
-r4 g, ( |
-) c r |
-R2*8 |
-c'4_"pizz." \f r |
-c, r |
-R2*2 |
-c'4_"pizz." r |
-c, r8 c'8_"arco?" ( |
-) c,4.-> c'8 ( |
-) c,4. f8-. \p |
-[f-. \< f-. f-. \! f-.] |
-g4. c,8 ( |
-) f,4.-> c'8 ( |
-) f,4.-> f'8 |
-[f-. \p \< f-. f-. \! f-.] |
-g4 r8 c, \p |
-c2:8 \< |
-c2:8 |
-c'2:8 |
-\! c4.:8 cis8 \f ( |
-) a,4. a8 |
-[d e f b ( ] |
-) b,4. \f b'8 ( |
-) g,4. \f g'8-> |
-c,4 c-> ~ |
-c c-> ~ |
-c c-> ~ |
-c r |
-c c ~ |
-c c ~ |
-c c ~ |
-c r |
-c r |
-c r |
-c_"dim." r | % dim. added
-c r |
-c8 r r4 |
-R2 |
-r8 [c-.^"solo" \p d-. dis-.] |
-e r e, r |
-a2 \p |
-a \< ( |
-\! e' \> |
-\! ) e4 r |
-e2 \< ~ |
-\! e4 \> \! r |
-e2 \< ~ |
-\! e4 \> \! r |
-e2 \fz ~ |
-e |
-f! ( |
-[e8 d c ) b]
-a2 \p ~ |
-a |
-e' \fz \> ~ |
-\! e4 r |
-e2 \> ~ |
-\! e4 r |
-e2 \> ~ |
-\! e4 r |
-e2 \fz ~ |
-e ( |
-) f \p ( |
-) e |
-d \> ( |
-e |
-\! f \p |
-) e4 r |
-R2*6 |
-fis8-. r g-. r |
-d-. r g-. r |
-R2*2 |
-c,8-. r f-. r |
-c-. r f-. r |
-R2 |
-r4 r8 f \f ~ |
-f2 |
-f |
-f,4. f'8 |
-[e8-. es-. d-. c-. ] |
-bes2 |
-bes |
-bes |
-g'4 () d8 r |
-bes4. bes'8 ( |
-) a4. r8 |
-bes,4. bes'8 ( |
-) a4. r8 |
-bes, r bes' r |
-b r b, r |
-c \fz r r4 |
-R2*3 |
-r4 c ( |
-) f r |
-R2*8 |
-f4_"pizz." r  |
-f, r |
-R2*2 |
-f'4 r |
-f, r |
-f'4._"arco" r8 |
-f4. bes,8 \p |
-bes2:8 \< |
-\! c4. f8 \f ( |
-) bes,4.-> <f'8 \p bes ( > |
-) bes,4. bes'8 \p | % \p added
-c2:8 \< |
-\! c4 r8 f, \p |
-f2:8 \< |
-f2:8 |
-\! f2:8 |
-f4.:8 fis8 \f ( |
-) d4.-> d8 |
-[g-. a-. bes-. e ( ] |
-) e,4.-> e'8 |
-c,4.-> c'8 ( |
-) f,4 f~ |
-f f~ |
-f f~ |
-f r |
-f, f ~ |
-f f ~ |
-f f' ~ |
-f r |
-f r |
-f_"dim." r |
-f r |
-f r |
-f2 \p \< ~ |
-f ~ |
-\! f \> ~ |
-\! f |
-f, \< ~ |
-\! f | 
-f'4 ( \f \> cis |
-\! d g, |
-) c! r |
-R2 |
-c8 \p r r4 |
-c8 r r4 |
-f8 \pp r f r |
-f r f r |
-f r f r |
-f r f r |
-e r e r |
-e r e r |
-c4. \f \> d8 |
-[e-. f-. \! g-.] r |
-f \p r f r |
-f r f r |
-f r f r |
-f r f r |
-bes4.-> r8 |
-g4.-> r8 |
-e!4.-> r8 |
-c4. c8 ( |
-) f2 ( |
-) f,4. c'8 |
-f2 ( |
-) f,4. d'8 ( |
-) g,4.-> g'8 ( |
-) c,4.-> c'8 ( |
-[ ) f, c-. f-. c-. ] |
-[ f-. c-. f-. c-. ] |
-f r c r |
-f r c' r |
-f, r c r |
-a r c r |
-f4 r8 c8 ( |
-) f4 r8 c8 ( |
-) f,4 r8 c'8 ( |
-) f4 r8 c8 ( |
-) f,2 ~ |
-f ( |
-) f'4 \fz r
-}
diff --git a/mutopia/N.W.Gade/wood.ly b/mutopia/N.W.Gade/wood.ly
deleted file mode 100644 (file)
index 8291299..0000000
+++ /dev/null
@@ -1,1064 +0,0 @@
-\version "1.3.4";
-
-flauto=\notes\relative c''' {
-\clef "treble";
-\property Staff."midiInstrument" = "flute"
-
-[c8. \f ( d16] c2 |
-)c,8 r r4 r |
-R2.*4 |
-[c8. \p ( d16] c4. ) a8 |
-[f8. ( e16 ] f4. ) a8 |
-[c8. ( d16] c4. ) a8 |
-[a8. ( g16 ] ) f4 r |
-R2.*4 |
-[c'8. ( d16] c4. ) a8 |
-[g8. ( a16 ] f4. ) a8 |
-[c8. ( d16] c4. ) a8 |
-[a8. ( g16 ] ) f4 r |
-R2.*13 |
-r4 r4 r8 r8 \time 2/4;
-R2*4 |
-a'8-. \pp r g-. r |
-a8-. r g-. r |
-R2*2 |
-g8-. r f-. r |
-g8-. r f-. r |
-R2 |
-r4 r8 [c'16 \f ( d] |
-[c d c a][f a c d] |
-[f8 d ) c] f, ( |
-[f'8 d ) c] a ( |
-[a'8 f ) e] a ( |
-dis,2 |
-) e4 r8 a8 ( |
-dis,2 |
-) e4 r8 a ( |
-) es r d r |
-c r d r |
-g, r r4 |
-R2*10 |
-r4 r8 e' \p |
-e [es-. es-.] d-. |
-d-. [cis-. cis-.] c-. |
-c \f [c16 ( d] [es8 d16 c] | % slur and \f added
-) d4 r8 e!-. \p |
-e-. [es-. es-.] d-. |
-d-. [cis-. cis-.] c |
-c-. \f [c16 ( d][es8 d16 c] | % \f added
-) d4 r8 e,! ( |
-)e'4.-> e,8 ( |
-)e'4.-> a8 \p |
-[g-. f-. e-. d-.] |
-[cis16 ( \< e d \! b ] ) g8 e \f ( |
-)e'4.-> e,8 ( |
-)e'4.-> a8 \p |
-[g-. \< f-. e-. \! d-.] |
-g r r e-. \p |
-e-. [es-. \< es-.] d-. |
-d-. [c-. \! c-.] g-. |
-g-. [fis-. \< fis-.] f-. |
-f-. [e-. \! e-.] bes \f ( |
-) bes'4.-> a8-. |
-[f'-. e-. d-.] f, ( |
-) f'4. \fz g,8 ( |
-) g'4. \fz g,8 ( |
-) e' r g4-> ( |
-) e8 r g4-> ( |
-) e8 r es4-> ( |
-) d8 r r g, ( |
-) e'! r g4 ( |
-) e8 r g4 ( |
-) e8 r es4-> ( |
-) d8 r r g, ( |
-) e'! r g4 ( |
-) e8 r d4 ( |
-) e8 r r4 |
-R2*27 |
-d2 ( \p |
-) gis, |
-R2*2 |
-d'2 ( \p |
-) gis, |
-a ( |
-) gis |
-a_"dim." ( |
-) gis ( |
-) a ( |
-bes!4 ) a8 r |
-a r bes r |
-fis r g r |
-bes2 ( |
-c4 ) bes8 r |
-bes r a r |
-e! r f r |
-R2 |
-r4 r8 [c'16 \f ( d] | % \f added
-[c d c a][f a c d] |
-[f8 d ) c] f, ( |
-[f'8 d ) c] f,-. |
-[g-. a-. bes-. a-. ] |
-bes4 r8 bes,8 ( |
-[bes' g ) f] bes,8 ( |
-[bes' g ) f] bes,8 ( |
-[d' g ) f! ] d ( |
-gis,2 |
-) a4. d8 ( |
-gis,2 |
-) a4. d,8 ( |
-) d' r d-. r |
-d-. r d-. r |
-c r r4 |
-R2*10 |
-r4 r8 [c16^""^"solo" \p ( d] |
-) c8-. [b16 ( c ] ) b8-. [bes16 \< ( c ] |
-)bes8-. [a16 ( \! bes ] ) a8-. [as16 ( bes ] |
-) as8-. \f [f16 ( g][as8 g16  f ] |
-) g4 r8 [c16 ( d] |
-) c8-. [b16 ( c ] ) b8-. [bes16 \< ( c ] |
-)bes8-. [a16 ( \! bes ] ) a8-. [as16 bes ] |
-as8 \f [f16 ( g][as8 g16  f ] |
-) g4 r8 es ( | 
-)es'4.-> es,8 ( | 
-)es'4.-> d8 \p |
-[c8-. \< bes-. a \! g ] |
-[fis16 ( a g e! ] ) c8 es ( \f |
-) es'4.-> es,8 ( | 
-) es'4.-> d8 \p |
-[c8-. \< bes-. a \! g ] |
-c r r a'-. \p |
-a-. [gis-. \< gis-.] \! g-. |
-g-. [f-. f-.] c-. |
-c-. [b-. \<  b-.] bes-. |
-bes-. [a-. \! a-.] a( \f |
-) es'4.-> d8 |
-[bes-. a-. g-.] bes, ( |
-) d'4. \fz c,8 ( |
-) c'4. \fz c,8 ( |
-) a' r c4-> ( |
-) a8 r c4-> ( |
-) a8 r as4-> ( |
-) g8 r r c ( |
-) a! r c4 ( |
-) a8 r c4 ( |
-) a8 r as4-> ( |
-) g8 r r c, ( |
-) a'! r c4_"dim." ( |
-) a8 r g4 ( |
-) f8 r c4 ( |
-) a8 r r4 |
-R2*19 |
-r4 r8 [c'16 \p ( d] |
-) c8-. [b16 ( c ] ) b8-. [bes16 ( c ] |
-)bes8-. [a16 ( bes ] ) a8-. [c16 ( d] |
-) c8-. [b16 ( c ] ) b8-. [bes16 \< ( c ] |
-)bes8-. [a16 ( \! bes ] ) a8-. bes ( \f |
-) bes,4. d8 ( |
-) d'4. c8 ( |
-) c,4. e8 ( |
-) e'4. c8 ( |
-) a'4 r |
-[f8 ( d ) c ] c ( |
-) a'4 r |
-[f8 ( d ) c ] f, ( |
-) f'4. e,8 ( |
-) e'4. e8 |
-[f-. e-. f-. e-.] |
-[f-. e-. f-. e-.] |
-f r e r |
-f r e r |
-f r a, r |
-c r a r |
-f4 r8 c' ( |
-) a4 r8 c ( |
-) f4 r8 c ( |
-) a4 r8 c ( |
-) f4 r |
-R2 |
-f4 \fz r
-
-}
-
-oboe=\notes\relative c'' {
-\clef "treble";
-\property Staff."midiInstrument" = "oboe"
-
-[c8. \f ( d16] ) c2_"dim." |
-[c8. ( d16] ) c2 |
-[c8. \p ( d16] c4. a8 |
-[f8. e16 ] f4. ) a8 |
-[c8. ( d16] c4. ) a8 |
-[a8. ( g16 ] ) f4 r |
-[c'8. \p ( d16] c4. a8 |
-[f8. e16 ] f4. ) a8 |
-[c8. ( d16] c4. ) a8 |
-[a8. ( g16 ] ) f4 r |
-R2.*4 |
-[c'8. ( d16] c4. a8 |
-[g8. a16 ] f4. ) a8 |
-[c8. ( d16] c4. ) a8 |
-[a8. ( g16 ] ) f4 r |
-R2.*13 |
-r4 r4 r8 r8 \time 2/4;
-R2*4 |
-d'8-. \pp r d-. r |
-d-. r d-. r |
-R2*2 |
-c8-. r c-. r |
-c8-. r c-. \p [c16 ( d]|
-) c8 r \< r [c16 ( \! d]|
-) c8 r r [c16 \f ( d]|
-) c8 r r f, ( |
-) f'4. f,8 ( |
-) f'4. a,8 ( |
-) a'4. r8 |
-dis,2 ( |
-) e4. r8 |
-dis2 ( |
-) e4. r8 |
-a r a r |
-a r d, r |
-g r r4 |
-R2*10 |
-r4 r8 [g16 \p ( a ] |
-[ ) g8-. fis16 ( g ][ ) fis8-. f16 ( g ] |
-[ ) f8-. e16 ( f ][ ) e8-. es16 ( f ] |
-[ ) es8 \f c16 ( d][es8 d16 c ] |
-) d4 r8 [g16 \p ( a ] |
-[ ) g8-. fis16 ( g ][ ) fis8-. f16 ( g ] |
-[ ) f8-. \< e16 ( f ][ ) e8-. \! es16 ( f ] |
-[ ) es8 \f c16 ( d][es8 d16 c ] |
-) d4 r8 bes! ( |
-) bes'4.-> bes,8 ( |
-) bes'4.-> a8 \p |
-[g-. \< f-. e-. \! d-. ] |
-[cis16 ( e d ) b] g8 bes! \f ( |
-) bes'4.-> bes,8 ( |
-) bes'4.-> a8 \p | % \p added
-[g-. \< f-. e-. \! d-. ] |
-g-. r r [g16 \p ( a] |
-[ ) g8-. fis16 ( g ][ ) fis8-. f16 ( g ] |
-[ ) f8-. e16 ( f ][ ) e8-. e16 ( f ] |
-[ ) e8-. es16 ( f ][  ) es8-. d16 ( e ] |
-[ ) d8-. c16 ( d ] ) c8 bes! \f ( |
-) bes'4. r8 |
-R2 |
-d,4. \fz r8 |
-d4. \fz r8 |
-e8 r g4-> ( |
-) e8 r g4-> ( |
-) e8 r es4 ( |
-) d8 r r g ( |
-) e!8 r g4-> ( |
-) e8 r g4-> ( |
-) e8 r es4 ( |
-) d8 r r g ( |
-) e!8_"dim." r g4 ( |
-) e8 r r4 |
-R2*2 |
-r8 [g,-.^""^"solo" \p a-. b-. ] |
-c r r4 |
-R2*10 |
-\grace d8 f2 \fz \> ( |
-\! b,4 [c8 b] |
-a2-> |
-) gis |
-a4 ( \p \< ) e' |
-e-. () \! e-. |
-e ( \> [ d8 \! c ] |
-) b2 \p |
-\grace e8 g4 ( \> dis |
-\! e ) b |
-\grace e8 g4 ( \> dis |
-\! e_"dim." ) b |
-\grace d!8 f2 \fz ( \> |
-b,4 [ \! c8 b] |
-a2 \p |
-) gis |
-\grace a8 d2( \> |
-\! b4 [ c8 b ] |
-a2 \p |
-) gis |
-R2*11 |
-r4 r8 [c16 \p ( d ] |
-) c8 r r [c16_"cresc." ( d ] |
-) c8 r r [c16 \f ( d ] |
-) c8 r r f, ( |
-) f'4. f,8 ( |
-) f'4. a,8 |
-[bes-. c-. d-. es-. ] |
-d4 r8 bes ( |
-) bes'4 r8 bes, ( | % slur added
-) bes'4 r8 d, ( |
-[ d' bes ) a ] d ( |
-) gis,2 ( |
-) a4 r8 d ( |
-) gis,2 ( |
-) a4 r8 d ( |
-) as r g r |
-f r f r |
-e r r4 |
-R2*10 |
-r4 r8 a |
-a-. [ gis-. gis-. \< g-.] |
-[g-. fis-. \! fis-. f-. ] |
-[f f16 ( \f g][as8 g16 f ] |
-) g8 [c16 ( d] ) c8 a \p | 
-[a-. gis-. gis-. \< g-.] |
-[g-. fis-. \! fis-. f-. ] |
-[f f16 ( \f g][as8 g16 f ] |
-) g8 [c16 ( d] ) c8 r |
-es,4.-> r8 |
-es4.-> r8 |
-r4 r8 d ( |
-) c4. r8 |
-es4.-> r8 |
-es4.-> r8 |
-r4 r8 d8 ( |
-) bes4 r8 a' \p |
-[a-. gis-. gis-. \< g-.] |
-[ \! g-. f-. f-. ] c |
-[c-. \< b-. b-. bes-. ] |
-[bes-. a-. \! a-. es' ( ] |
-) a4. \f r8 |
-r4 r8 bes, ( |
-) g'4. \fz c,8 ( |
-) g'4. \fz c,8 ( |
-) a' r c4-> ( |
-) a8 r c4-> ( |
-) a8 r as4 ( |
-) g8 r r c ( |
-) a! r c4 ( |
-) a8 r c4 ( |
-) a8 r as4 ( |
-) g8 r r c ( |
-) a! r c4_"dim." ( |
-) a8 r g4 ( |
-) f8 r r4 |
-R2*7 |
-\grace f8 a4 \f \> ( e |
-f \! b, |
-) c r |
-R2*7 |
-e8-. \p r d-. \< r |
-c-. r b-. \! r |
-bes!4. \f r8 |
-R2 |
-c8-. \p r b-. r |
-bes!-. r a-. r |
-c-. r b-. r |
-bes!-. r a-. bes \f ( |
-) bes'4. bes,8 ( |
-) bes'4. bes,8 ( |
-) bes'4. bes,8 ( |
-) bes'4. c,8 ( |
-) a'4 r8 f ( |
-bes4 ) a8 c, ( |
-) a'4 r8 f ( |
-bes4 ) a8 f ( |
-) b4. e,8 ( |
-) bes'!4. bes8 |
-[a-. bes-. a-. bes-. ] |
-[a-. bes-. a-. bes-. ] |
-a-. r c-. r |
-a-. r e-. r |
-f-. r a-. r |
-c r a r |
-f4 r8 c ( |
-) a'4 r8 c, ( |
-) f4 r8 c ( |
-) a'4 r8 c, ( |
-) f4 r |
-R2 |
-f4-. \fz r
-}
-
-clarI=\notes\relative c'' {
-\key G;
-\clef "treble";
-\property Staff."midiInstrument" = "clarinet"
-
-[d8. \fp ( e16 ] ) d2 |
-[d8._"dim." ( e16 ] ) d2 |
-R2.*8 |
-[d8. \mf ( \< e16 ][ cis8 d ] \! g4 |
-[fis8. \> e16 ] \! d4 ) a |
-b2. \pp \< ( |
-\! ais4 ) b2 |
-a!4 \p ( [g8. a16 ] g4 |
-fis ) g8 r r4 |
-a4 ( [g8. a16 ] g4 |
-fis ) g8 r [d^""^"solo" \mf \< () b' ] |
-\grace a8 \! d2 ( \> [b8. \! g16] |
-) d2 r4 |
-R2. |
-r4 r \times 2/3 { [b'8^""^"solo" ( \ff d, ) d' ] } |
-d4-> () b r |
-r r \times 2/3 { [d8 ( b ) d ] } |
-a4 () d r |
-R2.*6 |
-r4 r4 r8 r8 |
-R2*4 |
-gis,8-. \pp r a-. r |
-gis-. r a-. r |
-R2*2 |
-fis!8 r g r |
-fis r g d'-. \p |
-[c-. b-. \< a-. g-. ] | % crescendo added
-[ \! fis-. e-. d-. ] [d'16 \f ( e ] | % \f added
-[d e d b][g b d e] |
-[g8 e ) d ] g, ( |
-[g' e ) d ] b ( |
-[b' g ) fis] b ( | % slur added
-) f2 ( |
-) fis!4 r8 b ( |
-) f2 ( |
-) fis!4 r8 b |
-f r e r |
-d r d r |
-cis r r4 |
-R2 |
-g4 \p ( a |
-b2 \< ~ |
-b4 [a8 \! g'] |
-[fis \> d b \! ) a] |
-g4 \p ( a |
-b2 ~ |
-b4 a |
-b2 ~ |
-[b8_"dim." a g ) e ] |
-[cis ( a  \grace cis ) b a-. ] | 
-[fis''-. f-. f-. e-. ] |
-[e-. \< dis-. dis-. \! d-. ] |
-d r b4 \f ( |
-) cis8 [a'16-> ( b] ) a8 fis-. \p | % \p added
-[fis-. f-. f-. e-. ] |
-[e-. dis-. dis-. d-. ] |
-d r b4 \f ( |
-) cis8 [a'16-> ( b] ) a8 r |
-d,4.-> r8 | % added > 
-d4.-> r8 |
-R2*2 |
-d4. \f r8 |
-d4. r8 |
-R2 |
-cis4.-> fis8-. \p | % \p added
-[fis-. \< f-. f-. e-. ] |
-[\! e-. d-. d-. ] [fis16 \mf ( g ] |
-) fis8 [f16 ( g] ) f8-. [e16 \< ( fis ] |
-) e8 [\! d16 ( e ] ) d8-. c! \f ( |
-) c'4.-> b8 |
-[g-. fis-. e-.] g,8 ( |
-) b'4. \fz a,8 ( |
-) a'4. \fz a,8 ( |
-) fis' r a4-> ( | % -> added
-) fis8 r a4-> ( |
-) fis8 r f4 ( |
-) e8 [a,16 ( b ] ) a8 a ( |
-) fis' r a4-> ( |
-) fis8 r a4-> ( |
-) fis8 r f4 ( |
-) e8 [a,16 ( b ] ) a8 a ( |
-) fis' r a4_"dim." ( |
-) fis8 r e4 ( |
-) fis8 r a4 ( |
-) fis8 r e4 \p ( |
-) fis8 r r4 |
-R2*3 |
-fis,2 \pp \< ~ |
-\! fis ~ |
-fis \> ~ | % cresc. added
-\! fis4 r | % dim. added
-R2*4 |
-e'2 \fz \> ( |
-) fis,4 \! r |
-b2 \> ( |
-) \! ais4 r |
-fis2 \pp \< ~ |
-\! fis ~ |
-fis \> ~ |
-\! fis4 r |
-R2*4 |
-e'2 \fz \> ( |
-) fis,4 \! r |
-e'2 \p ( |
-) ais, |
-R2*2 |
-e'2 \p ( |
-) ais, |
-b ( |
-) ais |
-b_"dim." ( |
-) ais ( |
-) b ( |
-c4 ) b8 r |
-e-. r e-. r |
-e-. r e-. r |
-c2 ( ( |
-) d4 ) c8 r |
-d-. r d-. r |
-d-. r [d-. d-. ] |
-[c-. \< b-. a-. g-. ] |
-[fis-. \! e-. d-. ] [d'16 \f ( e ] |
-[d e d b][g b d e] |
-[g8 e ) d] g, ( |
-[g' e ) d ] b-. |
-[c-. d-. e-. ] [g16 ( a] |
-[g a g e][c e g a] |
-[c8 a ) g ] c, ( |
-[c' a ) g] r |
-[e ( c ) b ] e ( |
-) ais,2 ( |
-) b4 r8 e ( |
-) ais,2 ( |
-) b4 r8 e |
-bes r a r |
-g r e' r |
-d [a16 ( b ][c! d c b] |
-[a b a g] ) fis8 r |
-c'4 ( \p \< d | 
-\! e2 ~ |
-e4 \> [d8 c' ] |
-[b g e \! ) d ] |
-c4 \p ( \< d |
-e2 ~ |
-\! e4 d \> |
-e2 ~ |
-[\! e8 d_"dim." c a ] |
-) fis r r [d'16 \p ( e] |
-) d8-. [cis16 ( d] ) cis8-. [c16 ( d] |
-) c8-. [ b16 ( c] ) b8-. [bes16 ( c ] |
-) bes8-. r e4 \f ( |
-[ ) fis8 d16 ( e] ) d8 [d16 \p ( e] |
-) d8-. \< [cis16 ( d] ) cis8-. [c16 ( d] |
-) c8-. [ b16 ( c] ) b8-. [bes16 ( \! c ] |
-) bes8-. r e4 \f ( |
-[ ) fis8 d16 ( e] ) d8 f ( |
-) b4.-> f8 ( |
-) b4.-> r8 |
-R2 |
-r4 r8 f \f ( |
-) b4.-> f8 ( |
-) b4.-> r8 |
-R2 |
-r4 r8 [d,16 \p ( e] |
-) d8-. [cis16 ( d] ) cis8-. [c16 ( d] |
-) c8-. \< [ b16 ( c] ) \! b8-. [b'16 ( c ] |
-) b8-. [bes16 ( c ] ) bes8-. [a16 ( b ] |
-) a8-. [g16 ( as ] ) g8 b, \f ( |
-) f'4.-> r8 |
-r4 r8 c ( |
-) e'4. \fz d,8 ( |
-) d'4. d,8 ( |
-) b' r a4-> ( |
-) g8 r a4-> ( |
-) g8 r g4 ( |
-) fis8 [d16 ( e] ) d8 d ( |
-) g r a4 ( |
-) g8 r a4 ( |
-) g8 r g4 ( |
-) fis8 [d16 ( e] ) d8 c ( |
-) b r c4 ( |
-) b8 r c4_"dim." ( |
-) b8 r c4 ( |
-) b8 r a4 \p ( |
-) g8 r r4 |
-R2 |
-b'4^"solo" \p ( fis \> |
-g [d8. \! e16 ] |
-d4. b8 |
-g4 \< ) \! a |
-b \> ( \! a |
-) g [g8. \f (a16 ] |
-) g2 |
-d2 ~ |
-d2_"dim." ~ |
-d4. r8 |
-R2*2 |
-d'8-. \p r cis-. r |
-c! r b r |
-R2*2 |
-d4. \fz d8 \> |
-[d d \! d] r |
-R2*3 |
-r4 r8 c \f ( |
-) c'4. e,8 ( |
-) e'4. d,8 ( |
-) d'4. d,8 ( |
-) a'4. fis8 ( |
-) g4 r8 g ( |
-) c4 () b8 fis ( |
-) g4 r8 g ( |
-) c4 () b8 cis, ( |
-) g'4. c,!8 ( |
-) fis4. fis8 |
-[g-. fis-. g-. fis-. ] |
-[g-. fis-. g-. fis-. ] |
-g-. r fis-. r |
-g r d r |
-[d16 ( e d e][d e d e] |
-[d e d e] [d e d e] |
-) d4 r8 d ( |
-) b'4 r8 d, ( |
-) g4 r8 d ( |
-) b'4 r8 d, ( |
-) g,2 ~ |
-g ( |
-) g'4-. \fz r
-}
-
-
-clarII=\notes\relative c'' {
-\key G;
-\clef "treble";
-\property Staff."midiInstrument" = "clarinet"
-
-[d8. \fp ( e16 ] ) d2 |
-[d8._"dim." ( e16 ] ) d2 |
-R2.*8 |
-[fis,8. \mf ( \< g16 ][ e8 fis ] \! ) g4 |
-[a8. ( \> g16 ] \! ) fis4 r |
-b2. \pp \< ( |
-\! ais4 ) b2 |
-a!4 \p ( [g8. a16 ] g4 |
-fis ) g8 r r4 |
-a4 ( [g8. a16 ] g4 |
-fis ) g8 r [d^""^"solo" \mf \< () b' ] |
-\grace a8 \! d2 ( \> [b8. \! g16] |
-) d2 r4 |
-R2. |
-r4 r \times 2/3 { [b'8 ( \f d, ) d' ] } |
-d4 () b r |
-r r \times 2/3 { [d8 \f ( b ) d ] } |
-a4 () d r |
-R2.*6 |
-r4 r4 r8 r8 |
-R2*9 |
-r4 r8 d-. \p |
-[c-. b-. \< a-. g-. ] |
-[\! fis-. e-. d-. ] [d'16 \f ( e ] |
-[d e d b][g b d e] |
-[g8 e ) d ] g, ( |
-[g' e ) d ] g, ( |
-[g' e ) d ] b' ( |
-) f2 ( |
-) fis!4 r8 b ( |
-) f2 ( |
-) fis!4 r8 b, ~ |
-b r b r |
-b r b r |
-a r r4 |
-R2 |
-g4 \p \< ( a |
-\! b2 ~ |
-b4 \> a ~ |
-a \! ) fis8 r |
-g4 \p \< ( a |
-\! b2 ~ |
-b4 \> a |
-g2 ~ |
-\! ) g4 r |
-R2*3 |
-r4 gis \f ( | 
-[ ) g!8 a16-> ( b ] ) a8 r |
-R2*2 |
-r4 gis \f ( | 
-[ ) g!8 a16 ( b ] ) a8 r |
-fis4. r8 |
-fis4. r8 |
-R2*2 |
-fis4. \f r8 |
-fis4. r8 |
-R2 |
-g4. -> r8 |
-R2 |
-r4 r8 a-. \mf |
-[a-. gis-. gis-. g-. ] |
-g [ fis-. fis-. ] fis \f ( | % \f added
-) dis'4.-> r8 |
-r4 r8 g,8 ( |
-) e'4. \fz g,8 ( |
-) e'4. \fz g,8 ( |
-) fis r a4-> ~ |
-a8 r a4-> ~ |
-a8 r gis4 ( |
-[ ) g!8 g-. g-. g ( ] |
-) fis! r a4-> ~ | % added >
-a8 r a4-> ~ |
-a8 r gis4 ( |
-) g!8 [g-. g-.] g ( |
-) fis! r a4_"dim." ~ | % dim. added
-a8 r a4 ~ |
-a8 r a4 ~ |
-a8 r a4 \p ~ |
-a8 r r4 |
-R2*3 |
-fis2 \pp \< ~ |
-\! fis ~ |
-fis \>~ |
-\! fis4 r |
-R2*4 |
-g2 \f \> ( |
-) \! fis4 r |
-b2 \> ( |
-) \! ais4 r |
-fis2 \pp \< ~ |
-\! fis ~ |
-fis \>~ |
-\! fis4 r |
-R2*16 |
-f2 \pp ( |
-) g4. r8 |
-b-. r a-. r |
-b-. r a-. r |
-a2 ~ |
-a4. r8 |
-c r b r |
-a r [g-. \p d'-. ] |
-[c-. b-. a-. g-. ] |
-[fis-. e-. d-. ] [d'16 \f ( e ] |
-[d e d b][g b d e] |
-[g8 e ) d] g, ( |
-[g' e ) d ] g,-. |
-[a-. b-. c-. ] [g'16 ( a] |
-[g a g e][c e g a] |
-[c8 a ) g ] c, ( |
-[c' a ) g] r |
-[c, ( a ) g ] e' ( |
-) ais,2 ( |
-) b4 r8 e ( |
-) ais,2 ( |
-) b4 r8 e ( |
-) bes r a r |
-g r g r |
-[fis ( a16 b ][c! d c b] |
-[a b a g] ) fis8 r |
-R2 |
-a4 \p \< ( b |
-\! c \> fis, |
-) \! g r |
-R2 |
-fis4 \< g ( |
-) \! a r |
-fis4  \> g_"dim." ( |
-) \! a r |
-r r8 b-. \p |
-b [ais-. \< ais-. a-. ] |
-[a-. gis-. \! gis-. g-. ] |
-g r cis4 \f ( |
-) c! r8 b!-. \p |
-b [ais-. \< ais-. a-. ] |
-[a-. gis-. \! gis-. g-. ] |
-g r cis4 \f ( |
-) c! r8 b ( |
-) f'4.-> b,8 ( |
-) f'4.-> r8 |
-R2 |
-r4 r8 b,8 \f ( |
-) f'4.-> b,8 ( |
-) f'4.-> r8 |
-R2 |
-r4 r8 b,8-. \p |
-b-. [ais-. ais-. a-. ] |
-[a-. g-. g-. ]  [b16 ( c ] |
-) b8-. \< [bes16 ( c ] ) bes8-. [a16 ( b ] |
-) \! a8-. [g16 ( as ] ) g8 f \f ( |
-) b4.-> r8 |
-r4 r8 c ( |
-) a'4. \fz c,8 ( |
-) a'4. \fz c,8 ( |
-) b r c4-> ( |
-) b8 r c4-> ( |
-) b8 r bes4 ( |
-[ ) a8 d16 ( e ] [) d8 c ( ] |
-) b! r c4 ( |
-) b8 r c4 ( |
-) b8 r bes4-> ( |
-[ ) a8 d16 ( e ] ) d8 a ( |
-) g r a4 ( |
-) g8_"dim." r a4 ( |
-) g8 r a4 ( |
-) g8 r fis4 ( |
-) g8 \p r r4 |
-R2*6 |
-r4 [g8. ( \f a16 ] |
-) g2 ( |
-) d_"dim." ~ |
-d ~ |
-d4. r8 |
-R2*6 |
-fis4. \fz \> g8 |
-[ \! a-. b-. c-. ] r |
-R2*3 |
-r4 r8 e, \f ( |
-) e'4. a,8 ( |
-) a'4. a,8 ( |
-) a'4. fis,8 ( |
-) d'4. c8 ( |
-) b4 r8 g ( |
-e'4 [ ) d8 c ( ] |
-) b4 r8 g ( |
-e'4 () ) d8 g, ( | % ending slur added
-) cis4. fis,8 ( |
-) c'!4. c8 |
-[b-. c-. b-. c-. ] |
-[b-. c-. b-. c-. ] |
-b r a r |
-b r c r |
-[b d16 ( e ] [d e d e] |
-[d e d e] [d e d ) e] |
-d4 r |
-d4 r |
-b4 r |
-d4 r8 d, ( |
-) g2 ~ |
-g ( |
-) b4-. \fz r 
-}
-
-fagotto=\notes\relative c' {
-\clef "bass";
-\property Staff."midiInstrument" = "bassoon"
-
-[c8. \f ( d16 ] ) c2_"dim." |
-[c8. ( d16 ] ) c4 r |
-R2.*29 |
-r4 r4 r8 r8 |
-R2*4 |
-c8-. \pp r bes-. r |
-c8-. r bes-. r |
-R2*2 |
-bes8-. r a-. r |
-bes8-. r [a-. c-.] |
-[bes-. \< a-. g-. f-. ] |
-[e-. \! d-. c-. ] c \f ( |
-) c'4. r8 |
-d4 () c8 r |
-d4 () c8 r |
-d4 ( [ ) c8 a16 ( b ] |
-[c d c b] ) a8 f-> ( |
-) e4 r8 [ a16 ( b ] |
-[c d c b] ) a8 f-> ( |
-) e4 r8 a ( |
-) c r d r |
-es r d r |
-d4 \fz r |
-R2*2 |
-d4 \p ( \< e |
-\! f b, \> |
-) \! c r |
-R2 |
-d4 \p ( \< e |
-\! ) f2 \> |
-\! b,4 \p ( c |
-) d r |
-r r8 g, \p |
-[g \< g g g] |
-[g g g \! g] |
-g \f [c16 ( d] [es8 d16 c ] |
-) d4 r8 g, \p |
-[g g g g] |
-[g g g g] |
-g [c16 ( d] [es8 d16 c ] |
-) d4 r8 c ( |
-) g4.-> c8 ( |
-) g4.-> r8 |
-r4 r8 a ( |
-) b4. g8 \f ( |
-) c4.-> g8 ( |
-) c4.-> r8 |
-r4 r8 a \f ( |
-) d4. \clef "tenor"; [g16 \p ( a] |
-) g8 [fis16 ( g] ) fis8-. \< [f16 ( g ] |
-) f8-. [e16 ( \! f ] ) e8 g-. \mf |
-[g-. fis-. \< fis-. f-. ] |
-[f-. e-. \! e-. ] \clef "bass"; cis \f ( |
-) e4. a,8 |
-[d,-. e-. f-. ] f' ( |
-) d4. d8 |
-b4.  b8 ( |
-) c r f4-> ( |
-) e8 r f4-> ( |
-) e8 r c4 ( |
-[ ) d8-. f-. d-. b ( ] |
-) c r f4-> ( |
-) e8 r f4-> ( |
-) e8 r c4 ( |
-[ ) d8-. f-. d-. b ( ] |
-) c r f4 ( |
-) e8 r f4_"dim." ( |
-) e8 r f4 ( |
-) e8 r f4 \p ( |
-) e8 r r4 |
-r8 [g,-.^"solo" \p a-. b-. ] |
-c r r4 |
-R2 |
-a,2 \pp \< ~ |
-\! a |
-e' \> ~ |
-\! e4 r |
-e2 \p \< ~ |
-\! e \> ~ |
-\! e \< ~ |
-\! e \> |
-\grace d'8 ( )  \! f2 \fz \> ( |
-) e4. \! r8 |
-f,2 \> ( ( |
-[ ) \! e8 d c ) b ] | 
-a2 \pp \< ~ |
-\! a |
-e' \> ~ |
-\! e4 r |
-e2 \p ~
-e ~ |
-e ~ |
-e |
-\grace d'8 ( ) f2 \fz \> ( |
-) e4. \! r8 |
-f,2 \p ( |
-) e4 r |
-f'2-> ( |
-) e4. r8 |
-f,2 ( |
-) e |
-d' \p ~ |
-d ~ |
-d_"dim." ~ |
-d ( |
-) c \pp ( |
-) d4 () c8 r |
-c r bes r |
-c r bes r |
-d2 ( |
-) es4 () d8 r |
-e! r f-. r |
-bes,-.  r [a-. c-.] |
-[bes-. a-. g-. f-. ] |
-[e-. d-. c-. ] c ( |
-) c'4. \f r8 |
-d4 () c8 r |
-d4 () c8 a-. |
-[bes-. c-. d-. es-. ] |
-d4.-> r8 |
-es4 () d8 r |
-es4 () d8 r |
-d4 ~ d8 [d16 ( e! ] |
-[f g f e] ) d8 bes ( |
-) a4 r8 [d16 ( e ] |
-[f g f e] ) d8 bes ( |
-) a4 r8 d ( |
-) f r g r |
-as r g r |
-c,4 \fz r |
-R2*6 |
-bes4 ( \p \< a |
-) \! g r |
-g_"dim." ( f |
-) e r |
-r r8 c' |
-[c c c c] |
-[c \< c c \! c] | % crescendo added
-[c c c c] |
-[c c c ] c \p |
-[c \< c c c] |
-[c c c c] |
-[\! c \f c c c] |
-[c c c ] f ( |
-) c4.-> f8 ( |
-) c4.-> r8 |
-r4 r8 d8 ( |
-) e!4. c8 \f ( |
-) f4.-> c8 ( | % slur added
-) f4.-> r8 |
-r4 r8 d ( |
-) e4. r8 |
-R2 |
-r4 r8 c \p |
-[c-. \< d-. d-. e-. ] |
-[ \! e-. f-. f-. ] r |
-fis4. \f d,8-. |
-[g-. a-. bes-. ] e! ( |
-) g4. \f g8 ( |
-) e4. e8 ( |
-) f r c4-> ~ |
-c c-> ~ |
-c d ( |
-) e r8 c ( |
-) f4 c~ |
-c c~ |
-c d ( |
-) e r8 c ( |
-) f4 c~ |
-c c~ |
-c r |
-R2*5 |
-es2 \p \> ( ( |
-) \! d4 \< \! ) des |
-c \f ( bes |
-a b |
-) c r |
-R2 |
-a8-. \p r r4 |
-g8-. r r4 |
-R2*4 |
-a2 \p \< ~ |
-a4 () \! gis8 g ( |
-) c4. \fz c8 \> |
-[c c \! c ] r8 |
-R2*2 |
-es2 \p \< ~ |
-\! es4. d8 \f ( |
-) f,4. bes8 ( |
-) d,4. c'8 ( |
-) c,4. c'8 ( |
-) c,4. bes'8 ( |
-) a4 r8 c( |
-) d4 () c8 bes ( |
-) a4 r8 c( |
-) d4 () c8 d ( |
-) g,4. g'8 ( |
-) c,4.  c,8 |
-[f-. c-. f-. c-. ] |
-[f-. c-. f-. c-. ] |
-f-. r c'-. r |
-c-. r c-. r |
-[c16 ( d c d][c d c d] |
-[c16 d c d][c d c d] |
-) c4 r8 c ( |
-) f4 r8 c ( |
-) f,4 r8 c' ( |
-) f4 r8 c ( |
-) f,2 ~ |
-f ( |
-) c'4 \fz r
-}
-
-oboecue=\notes\relative c'' {
-\tiny
-
-s2.*32 |
-s2*32 | \stemdown
-[a8^"Vi. I" ( g f d] |
-[b g ) a ] s8 |
-s2*106 |
-[d'8^"Vi. I" ( c bes g] |
-[e c ) d] s |
-}
-
-flautocue=\notes\relative c'' {
-\tiny
-
-s2.*32 |
-s2*32 | \stemdown
-[a8^"Vi. I" ( g f d] |
-[b g ) a ] s8 | \stemboth
-s2*60 |
-f''2^"Oboe" ( |
-b,4 [c8 ) b] |
-s2*44 | \stemdown
-[d8^"Vi. I" ( c bes g] |
-[e c ) d] s |
-s2*54 | \stemup
-bes''4.^"Vi. I"  a8 |
-[g-. f-. e-. ] s8 | 
-}
index a13394ae094921f93b94a048639f6293523ac239..619e0591aa55aec73308222d786507f3ce234821 100644 (file)
        )
   )    
 
+; don't do this yet. Depends on whennn the staff is really announced
 (define generic-staff-symbol-properties
   (cons "Staff_symbol" (list
-                       (list 'numberOfStaffLines number? 'line-count)
-                       (list 'staffSpace number? 'staff-space)
                        )
        )
   )
    generic-timesig-properties
    generic-clef-properties
    generic-collision-properties
-   generic-staff-symbol-properties
+;   generic-staff-symbol-properties
    generic-All-properties      
    )
   )
index 582c55e24be4b06338f12212a772ebdde8450925..f2b009aa9e7ebc6e86e51cf85f39069e0db07552 100644 (file)
 
 
 ;; See documentation of Item::visibility_lambda_
-(define (postbreak-only-visibility d) (if (= d 1) '(#f . #f) '(#t . #t)))
-(define (spanbar-non-postbreak-visibility d) (if (= d -1) '(#t . #t) '(#f . #f)))
-(define (all-visibility d) '(#f . #f))
-(define (non-postbreak-visibility d) (if (= d 1) '(#t . #t) '(#f . #f)))
-(define (non-prebreak-visibility d) (if (= d -1) '(#t . #t) '(#f . #f)))
+(define (begin-of-line-visible d) (if (= d 1) '(#f . #f) '(#t . #t)))
+(define (spanbar-begin-of-line-invisible d) (if (= d -1) '(#t . #t) '(#f . #f)))
+(define (all-visible d) '(#f . #f))
+(define (begin-of-line-invisible d) (if (= d 1) '(#t . #t) '(#f . #f)))
+(define (end-of-line-invisible d) (if (= d -1) '(#t . #t) '(#f . #f)))
 
 
 ;; Score_span_bars are only visible at start of line
 ;; i.e. if break_dir == RIGHT == 1
-(define Span_bar_engraver-visibility non-postbreak-visibility)
-(define Base_span_bar_engraver-visibility non-postbreak-visibility)
-(define mark-visibility non-prebreak-visibility)
-(define Span_score_bar_engraver-visibility postbreak-only-visibility)
-(define Piano_bar_engraver-visibility postbreak-only-visibility)
-(define Staff_group_bar_engraver-visibility postbreak-only-visibility)
+(define Span_bar_engraver-visibility begin-of-line-invisible)
+(define Base_span_bar_engraver-visibility begin-of-line-invisible)
+(define mark-visibility end-of-line-invisible)
+(define Span_score_bar_engraver-visibility begin-of-line-visible)
+(define Piano_bar_engraver-visibility begin-of-line-visible)
+(define Staff_group_bar_engraver-visibility begin-of-line-visible)
 
 ;; Spacing constants for prefatory matter.
 ;;
 
 ;;;;;;;;;;;;;;;;;;; generic output
 
-(define (translate-atom offset exp)
-  exp)
+(define (translate-molecule offset)
+  "")
 
 
 ;;;;;;;;;;;;;;;;;;; TeX output
index 36ccac9622234ae7f5f7dd0b48a674de0bcfe6b3..9a6b05a8c02f2a700f22a096158ee5ebd3a13e9f 100644 (file)
@@ -2,7 +2,7 @@
 ;;;
 ;;;  source file of the GNU LilyPond music typesetter
 ;;; 
-;;; (c) 1999 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; (c) 1999--2000 Jan Nieuwenhuizen <janneke@gnu.org>
 
 ;;; All dimensions are measured in staff-spaces
 
 
 (define stem-shorten '(0.5))
 (define grace-stem-shorten '(0.0))
+
+;; urg
+(define pi (* 2 (acos 0)))
+
+(define (slur-default-height h-inf r-0 b)
+  (let ((alpha (/ (* 2.0 h-inf) pi))
+       (beta (/ (* pi r-0) (* 2.0 h-inf))))
+    (* alpha (atan (* beta b)))))