-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
======
@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
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
@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
.* 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
. * 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.
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.
--- /dev/null
+
+\score {
+\notes { c1 c1 \break c1 c1 }
+\paper {
+
+\translator{
+ \StaffContext
+ \consists Bar_number_engraver;
+ barNumberVisibilityFunction = #end-of-line-invisible
+}
+}
+}
+
\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";
}
\score{
- \notes{
+ \context Staff \notes{
% \property Voice.pletvisibility = 0;
% use blend for fast check
\blend
+++ /dev/null
-\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
--- /dev/null
+\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;
+}
+}
}
-
-#include "ly-smobs.icc"
-IMPLEMENT_SMOBS(Font_metric);
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);
}
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);
}
{
axis_ = Y_AXIS;
type_ = "barNumber";
- visibility_lambda_
- = ly_eval_str ("postbreak-only-visibility");
}
+
+
void
Bar_number_engraver::do_process_requests ()
{
{
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.
->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));
}
}
-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 ());
}
{
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",
}
-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 ())
{
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
#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)
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
+}
+
#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
*/
Bezier::Bezier ()
+ : control_ (CONTROL_COUNT)
{
}
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
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 ())
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);
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
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);
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;
}
{
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;
-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 ();
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);
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),
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;
}
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 ();
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;
}
-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 ();
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;
}
}
IMPLEMENT_UNSMOB(Font_metric, metrics);
+IMPLEMENT_SMOBS(Font_metric);
+
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 ();
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;
}
#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
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
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:
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;
};
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;
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
Breathing_sign ();
protected:
virtual void do_post_processing ();
- virtual Molecule* do_brew_molecule_p () const;
+ virtual Molecule do_brew_molecule () const;
};
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
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;
public Item
{
protected:
- virtual Molecule * do_brew_molecule_p () const;
+ virtual Molecule do_brew_molecule () const;
virtual void do_post_processing ();
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);
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 ();
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
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);
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.
*/
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
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)\
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() ! */ \
#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);
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;
};
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 ();
protected:
virtual void do_pre_processing();
- virtual Molecule* do_brew_molecule_p() const;
+ virtual Molecule do_brew_molecule() const;
};
#endif // NOTEHEAD_HH
#include "lily-guile.hh"
#include "protected-scm.hh"
+// huh?
#ifdef __powerpc__
#include "protected-scm.hh"
#endif
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);
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);
{
protected:
virtual void do_post_processing ();
- virtual Molecule * do_brew_molecule_p () const;
+ virtual Molecule do_brew_molecule () const;
};
#endif // REST_HH
int status_i_;
Paper_score *pscore_l_;
- Molecule * output_p_;
+
Score_element ();
Score_element (Score_element const&);
virtual void print () const;
/// 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
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 */
*/
class Slur : public Spanner
{
- int cross_staff_count () const;
- Offset encompass_offset (Note_column const* )const;
public:
Slur ();
VIRTUAL_COPY_CONS(Score_element);
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_;
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
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
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
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:
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 () ;
};
public:
VIRTUAL_COPY_CONS (Score_element);
protected:
- virtual Molecule *do_brew_molecule_p () const;
+ virtual Molecule do_brew_molecule () const;
};
#endif /* Text_ITEM_HH */
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;
Molecule time_signature (int, int)const;
protected:
- virtual Molecule*do_brew_molecule_p() const;
+ virtual Molecule do_brew_molecule() const;
public:
Time_signature () ;
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 ();
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 ();
if (!def)
{
item_p_->set_elt_property ("visibility-lambda",
- ly_eval_str ("all-visibility"));
+ ly_eval_str ("all-visible"));
}
}
- 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;
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);
}
}
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;
}
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)));
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++)
// 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_;
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())
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;
}
}
}
AFM_CharMetricInfo const *cm = afm_l_->find_char_metric (s, warn);
- Molecule m;
+
if (!cm)
{
+ Molecule m;
m.set_empty (false);
return m;
}
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
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);
}
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"),
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);
}
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]),
gh_double2scm (b[Y_AXIS][UP]),
SCM_UNDEFINED));
- m.dim_ = b;
- m.add_atom (at);
- return m;
+ return Molecule ( b,at);
}
Molecule
Molecule
Lookup::text (String style, String text, Paper_def *paper_l)
{
- Molecule m;
if (style.empty_b ())
style = "roman";
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);
}
Molecule
Lookup::staff_brace (Real y, int staff_size)
{
- Molecule m;
-
// URG
Real step = 1.0;
int minht = 2 * 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);
}
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
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")),
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;
mark_req_l_ = 0;
axis_ = Y_AXIS;
type_ = "mark";
- visibility_lambda_ = ly_eval_str ("mark-visibility");
}
void
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"
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)
{
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);
}
bool
Molecule::empty_b () const
{
- return gh_cdr (atom_list_) == SCM_EOL;
+ return expr_ == SCM_EOL;
}
#include "ly-smobs.icc"
+IMPLEMENT_UNSMOB(Moment,moment);
IMPLEMENT_SMOBS(Moment);
void
[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 ();
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);
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;
}
/*
{
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();
-Molecule*
-Note_head::do_brew_molecule_p() const
+Molecule
+Note_head::do_brew_molecule() const
{
Staff_symbol_referencer_interface si (this);
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,
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;
}
}
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);
}
}
}
-Molecule *
-Rest::do_brew_molecule_p () const
+Molecule
+Rest::do_brew_molecule () const
{
bool ledger_b =false;
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);
}
{
}
-#include "ly-smobs.icc"
-IMPLEMENT_SMOBS(Scheme_hash_table);
SCM
Scheme_hash_table::mark_smob (SCM s)
return l;
}
+
+#include "ly-smobs.icc"
+IMPLEMENT_UNSMOB(Scheme_hash_table,scheme_hash);
+IMPLEMENT_SMOBS(Scheme_hash_table);
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;
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_;
Score_element::~Score_element()
{
- assert (!output_p_);
assert (status_i_ >=0);
status_i_ = -1;
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 ()];
}
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");
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));
}
/*
-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));
}
}
#include "ly-smobs.icc"
-IMPLEMENT_SMOBS(Score_element);
IMPLEMENT_UNSMOB(Score_element, element);
+IMPLEMENT_SMOBS(Score_element);
SCM
Score_element::mark_smob (SCM ses)
{
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);
}
#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
}
}
+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
{
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;
}
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");
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);
}
/*
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 ();
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];
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;
}
-
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 ()));
}
{
axis_ = X_AXIS;
type_ = "margin";
- visibility_lambda_ = ly_eval_str ("postbreak-only-visibility");
}
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;
-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);
;
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;
}
-Molecule*
-Stem_tremolo::do_brew_molecule_p () const
+Molecule
+Stem_tremolo::do_brew_molecule () const
{
Stem * st = stem_l ();
int mult =0;
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));
}
/*
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
: 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));
}
*/
}
- return beams;
+ return mol;
}
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 ());
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
#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 ());
}
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");
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];
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;
}
-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 ();
else
a = lookup_l ()->slur (one, directional_element (this).get () * thick, thick);
- return new Molecule (a);
+ return a;
}
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)));
/*
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];
}
// ugh.!
-Molecule*
-Time_signature::do_brew_molecule_p () const
+Molecule
+Time_signature::do_brew_molecule () const
{
SCM st = get_elt_property ("style");
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
/*
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"));
num.translate_axis (dy/2, Y_AXIS);
- mol_p->add_molecule (num);
+ mol.add_molecule (num);
}
Real thick = paper_l ()->get_var ("tuplet_thick");
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
/*
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");
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),
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")),
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
%}
defaultClef = #"treble"
- marginBreakPriority = #-5
-
\consists "Separating_line_group_engraver";
\accepts "Voice";
BarNumberingStaffContext = \translator {
\StaffContext
- barColumnPriority = #0
- marginBreakPriority = #-4
\consists "Mark_engraver";
\consists "Bar_number_engraver";
};
OrchestralPartStaffContext = \translator {
\StaffContext
- barColumnPriority = #0
- marginBreakPriority = #-4
\consists "Mark_engraver";
\consists "Bar_number_engraver";
};
\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 }
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.
#'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
% 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;
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
% 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;
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
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!
$(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)
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
+++ /dev/null
-#
-
-depth = ../..
-
-EXTRA_DIST_FILES += README global.tex
-
-examples=
-LOCALSTEPMAKE_TEMPLATES=mutopia
-
-include $(depth)/make/stepmake.make
-
-
+++ /dev/null
-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
-
+++ /dev/null
-\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
+++ /dev/null
-
-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
-}
+++ /dev/null
-%\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}%
-}
+++ /dev/null
-\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;
- }
-}
+++ /dev/null
-\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 {
- }
-}
+++ /dev/null
-\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
-}
+++ /dev/null
-\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 |
-}
)
)
+; 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
)
)
;; 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
;;;
;;; 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)))))
+