---- ../lilypond-1.5.41.jcn3/ChangeLog Sun Mar 17 16:14:23 2002
-++ b/ChangeLog Sun Mar 17 19:34:16 2002
-@@ -1,5 +1,7 @@
- 2002-03-17 Jan Nieuwenhuizen <janneke@gnu.org>
+2002-03-15 Mats Bengtsson <mats.bengtsson@s3.kth.se>
- * scm/ps.scm (bezier-sandwich): Draw circles at slur ends.
-
- * lily/beam.cc (score_stem_lengths): new quanting stuff
- (score_forbidden_quants): Second and third beam quant stuff.
- --- ../lilypond-1.5.41.jcn2/ChangeLog Sun Mar 17 01:40:33 2002
-++ b/ChangeLog Sun Mar 17 16:14:23 2002
-@@ -1,6 +1,7 @@
- 2002-03-17 Jan Nieuwenhuizen <janneke@gnu.org>
+ * buildscripts/lilypond-profile.sh:
- * lily/beam.cc (score_stem_lengths): new quanting stuff
- (score_forbidden_quants): Second and third beam quant stuff.
+ * mf/GNUmakefile (INSTALLATION_OUT_DIR*),
+ buildscripts/lilypond-login.sh, buildscripts/lilypond-profile.sh:
+ Implement new font installation strategy
+
+ * Documentation/misc/fontinstallation (TEXMF): Documentation of
+ the new font installation strategy.
+
+ * lilypond-mode.el (LilyPond-mode-map): Add shortcut "CTRL-c ;"
+ for comment-region.
+
+ * input/test/staff-size.ly: Simplified using StaffContainer
- 2002-03-16 Jan Nieuwenhuizen <janneke@gnu.org>
- --- ../lilypond-1.5.41.jcn1/ChangeLog Sat Mar 16 16:04:22 2002
-++ b/ChangeLog Sun Mar 17 01:40:33 2002
-@@ -1,3 +1,7 @@
+ * mf/GNUmakefile (ALL_GEN_FILES): Actually generate the
+ lilypond.map file
+
+2002-03-17 Han-Wen <hanwen@cs.uu.nl>
+
+ * mf/feta-schrift.mf: endless twiddling of Tr.
+
+ * mf/feta-eindelijk.mf: 8th rest: make darker, top of brush lower, and
+ endless twiddling with the bulb shape.
+
+ * lily/note-head.cc (internal_brew_molecule): make ledger lines a
+ little smaller if there is an accidental.
+
2002-03-17 Jan Nieuwenhuizen <janneke@gnu.org>
+ * scm/ps.scm (bezier-sandwich): Draw circles at slur ends.
+
* lily/beam.cc (score_stem_lengths): new quanting stuff
+ (score_forbidden_quants): Second and third beam quant stuff.
- 2002-03-16 Jan Nieuwenhuizen <janneke@gnu.org>
-
- * lily/beam.cc (least_squares): Remember least-squares-dy for--- ../lilypond-1.5.41/ChangeLog Fri Mar 15 15:44:50 2002
-++ b/ChangeLog Sat Mar 16 16:04:22 2002
-@@ -1,3 +1,16 @@
2002-03-16 Jan Nieuwenhuizen <janneke@gnu.org>
* lily/beam.cc (least_squares): Remember least-squares-dy for
* scm/interface-description.scm (beam-interface): Update.
- 2002-03-15 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
- * VERSION: 1.5.41 released2002-03-15 Mats Bengtsson <mats.bengtsson@s3.kth.se>
-
- * buildscripts/lilypond-profile.sh:
-
- * mf/GNUmakefile (INSTALLATION_OUT_DIR*),
- buildscripts/lilypond-login.sh, buildscripts/lilypond-profile.sh:
- Implement new font installation strategy
-
- * Documentation/misc/fontinstallation (TEXMF): Documentation of
- the new font installation strategy.
-
- * lilypond-mode.el (LilyPond-mode-map): Add shortcut "CTRL-c ;"
- for comment-region.
-
- * input/test/staff-size.ly: Simplified using StaffContainer
-
- * mf/GNUmakefile (ALL_GEN_FILES): Actually generate the
- lilypond.map file
-
2002-03-15 Han-Wen Nienhuys <hanwen@cs.uu.nl>
* VERSION: 1.5.41 released
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=5
-PATCH_LEVEL=41
-MY_PATCH_LEVEL=jcn4
+PATCH_LEVEL=42
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
--- /dev/null
+
+\header {
+ texidoc = "Ledger lines are shortened when there are accidentals"
+}
+
+\score { \notes
+{
+ cis'4 cis'! cis' cis'
+}
+ \paper { linewidth = -1. }
+}
gh_cons (gh_double2scm (qscores[best_idx].yl),
gh_double2scm (qscores[best_idx].yr))
);
- me->set_grob_property ("quant-score",
- gh_double2scm (qscores[best_idx].demerits));
- me->set_grob_property ("best-idx", gh_int2scm (best_idx));
+
+ if (0)
+ {
+ // debug quanting
+ me->set_grob_property ("quant-score",
+ gh_double2scm (qscores[best_idx].demerits));
+ me->set_grob_property ("best-idx", gh_int2scm (best_idx));
+ }
return SCM_UNSPECIFIED;
}
DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM ));
static Interval head_extent (Grob*,Axis);
static Molecule ledger_lines (Grob*, bool, int,Direction,Interval);
- static Molecule ledger_line (Interval, Grob*) ;
+ static Molecule ledger_line ( Grob*, Interval);
DECLARE_SCHEME_CALLBACK (brew_ez_molecule, (SCM ));
static bool has_interface (Grob*);
static Real stem_attachment_coordinate (Grob *, Axis a);
build a ledger line for small pieces.
*/
Molecule
-Note_head::ledger_line (Interval xwid, Grob *me)
+Note_head::ledger_line (Grob *me, Interval xwid)
{
Drul_array<Molecule> endings;
endings[LEFT] = Font_interface::get_default_font (me)->find_by_name ("noteheads-ledgerending");
--hwn
*/
- Molecule ledger (ledger_line (idw, me));
+ Molecule ledger (ledger_line (me, idw));
if (!take_space)
ledger.set_empty (true);
{
Direction dir = (Direction)sign (p);
Interval hd = out.extent (X_AXIS);
- Real hw = hd.length ()/4;
- out.add_molecule (Note_head::ledger_lines (me, ledger_take_space, streepjes_i, dir,
- Interval (hd[LEFT] - hw,
- hd[RIGHT] + hw)));
+ Real left_ledger_protusion = hd.length ()/4;
+ Real right_ledger_protusion = left_ledger_protusion;
+
+ if (unsmob_grob(me->get_grob_property ("accidentals-grob")))
+ {
+ /*
+ make a little room for accidentals.
+
+ TODO: this will look silly if a chord has ledger lines,
+ and only the bottom note has an accidental.
+ */
+
+ left_ledger_protusion *= 0.66;
+ right_ledger_protusion *= 0.8;
+ }
+
+ Interval l_extents = Interval (hd[LEFT] - left_ledger_protusion,
+ hd[RIGHT] + right_ledger_protusion);
+ out.add_molecule (Note_head::ledger_lines (me, ledger_take_space,
+ streepjes_i, dir, l_extents));
}
return out;
}
shorten[LEFT] = 0;
shorten[RIGHT] = 0;
- SCM s = me->get_grob_property ("shorten");
+ SCM s = me->get_grob_property ("shorten-pair");
if (gh_pair_p (s))
{
shorten[LEFT] = gh_scm2double (ly_car (s));
gh_double2scm ( height[RIGHT]) ) );
s->set_grob_property ("edge-width", gh_cons ( gh_double2scm ( width[LEFT] ),
gh_double2scm ( width[RIGHT] ) ));
- s->set_grob_property ("shorten", gh_cons ( gh_double2scm ( shorten[LEFT] ),
+ s->set_grob_property ("shorten-pair", gh_cons ( gh_double2scm ( shorten[LEFT] ),
gh_double2scm ( shorten[RIGHT] ) ));
}
Begin3
Title: LilyPond
-Version: 1.5.41
-Entered-date: 15MRT02
+Version: 1.5.42
+Entered-date: 17MRT02
Description: @BLURB@
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.5.41.tar.gz
+ 1000k lilypond-1.5.42.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 1000k lilypond-1.5.41.tar.gz
+ 1000k lilypond-1.5.42.tar.gz
Copying-policy: GPL
End
%define name lilypond
-%define version 1.5.41
+%define version 1.5.42
%define release 1mdk
Name: %{name}
%define info yes
Name: lilypond
-Version: 1.5.41
+Version: 1.5.42
Release: 1
License: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.41.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.42.tar.gz
Summary: Create and print music notation
URL: http://www.lilypond.org/
BuildRoot: /tmp/lilypond-install
Distribution: SuSE Linux 7.0 (i386)
Name: lilypond
-Version: 1.5.41
+Version: 1.5.42
Release: 2
Copyright: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.41.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.42.tar.gz
# music notation software for.. ?
Summary: A program for printing sheet music.
URL: http://www.lilypond.org/
enddef;
%
+% Notes about 8th rest:
+%
+% * 8th rest should be no wider than the black note head
+%
+% * The inside corner of the horizontal portion is usually a little blotted.
+%
+% * The top of the crook chops off the vertical brush
+%
+% * The crook widens a little
+%
+% * The bottom of the brush is slightly flat, as it has to align with
+% stafflines if it is inside the staff.
%
-% todo: document rest.
+% * The top of the brush usually is a little lower than the top of bulb.
%
+% * The bulb can vary. Sometimes it is open (like in the clefs). Sometimes
+% it is closed, or even a flare.
+%
def normalize (expr p) =
(p / length (p))
width# := 1.0 staff_space#;
- bulb_diam# := 0.6 staff_space#;
+ bulb_diam# := 0.64 staff_space#;
thin# := 1.1 stafflinethickness#;
thick# := 2.2 stafflinethickness#;
crook_thick# := 1.8 stafflinethickness#;
crook_thin := 1.3 stafflinethickness;
- lower_brush = 1.0 stafflinethickness;
+ lower_brush = 1.5 stafflinethickness;
ycenter := 0.5 staff_space;
define_pixels (width, bulb_diam, thin, thick, crook_thick);
y1 = ycenter + - 1.5 staff_space ;
% y9 = y5 - lower_brush;
- y2 = y5 - 0.7 stafflinethickness;
+ y2 = y5 - lower_brush;
x2r = width;
x4 = 1.02 bulb_diam ;
- y4 = ycenter - 2 stafflinethickness + crook_thin;
+ y4 := ceiling (ycenter - 2 stafflinethickness + crook_thin);
- x5 = 0.5 bulb_diam;
+ x5 = 0.5 bulb_diam - 0.25 stafflinethickness;
y5 = ycenter +bulb_diam/2;
z9 = z2 + 0.46 stafflinethickness * dir (angle(z2 - z1)- 10);
- z7 = (bulb_diam/2,ycenter) + 0.26 staff_space * dir ( 35);
- z8 = (0, ycenter);
+% z7 = %(bulb_diam/2,ycenter) + 0.23 staff_space * dir ( 35);
+ z7 = 0.5 [z4, z5] + (0.45 stafflinethickness,0.4 stafflinethickness);
+ z8 = (0, ycenter + 0.5 stafflinethickness);
z6 = whatever [z1l, z2l];
z6 = whatever [z2l, z4] + crook_thick * (crook_dir rotated -90);
fill z2r -- z2l -- simple_serif (z1l, z1r, 40) -- cycle;
fill z2r{z2r-z1r} .. z9 .. z2l{dir(232)} .. tension 2
- .. z4{left} .. z7{dir(90 + 25)}
+ .. z4{left} .. tension 0.9 .. z7 %{dir(90 + 25)}
.. z5{left} .. z8 .. z3{right}
.. {curl 0.2}z6 -- cycle;
input feta-solfa;
else:
- input feta-bolletjes;
- input feta-banier;
- input feta-eindelijk;
+% input feta-bolletjes;
+% input feta-banier;
+% input feta-eindelijk;
% input feta-klef;
% input feta-toevallig;
-% input feta-schrift;
+ input feta-schrift;
% input feta-haak;
% input feta-timesig;
% input feta-pendaal;
ascender_extra# = 1/2 ex#;
ascender# = ascender_extra# + ex#;
ex# = 1.4 staff_space#;
- kerning# = .60 ex#;
+ kerning# = .550 ex#;
start_nib_angle = 20;
- bulb_size = 0.47;
+ bulb_size = 0.55;
define_pixels(ex, ascender_extra, ascender, kerning);
t_overshoot = 0.03 ex;
fatness = 12/40 ex;
- t_fatness = 8/10 fatness;
- r_fatness = .75 fatness;
- uitschieter = 21/40 ex;
+ t_fatness = 0.780 fatness;
+ t_width = 1.8 t_fatness;
+ r_fatness = 0.75 fatness;
+ uitschieter = 0.43 ex;
hair_thick = blot_diameter;
slant = .2;
+% slant = .0;
local_copy(transform)(currenttransform);
currenttransform := currenttransform slanted slant shifted (- staff_space, 0) ;
z2 = (x1, 7/18 ex);
penpos2(start_nib_wid, start_nib_angle);
- z3l = (11/10 t_fatness, - t_overshoot);
+ z3l = (0.5 t_width, - t_overshoot);
- z4l = (13/6 t_fatness, 5/16 ex);
- penpos4(hair_thick, 180);
+ z4l = (t_width, 0.23 ex);
+ penpos4(whatever, 200);
+ x4l - x4r = hair_thick;
+
+ x3r = 0.5 [x4r, x2r];
+% 1.7 [x3l, x3r] = x4r;
+ y3r - y3l = 0.6 t_fatness;
- 1.9 [z3l, z3r] = z4r;
- z3 = .5 [z3l, z3r];
save t_p, krul_p;
path t_p, krul_p, r_p;
+ z5 = (t_fatness/2, 2/3 ex);
+% penpos5(hair_thick, );
- t_p := simple_serif (z1r, z1l, -30) -- z2l {down} .. tension (1 + .5 slant)
+ t_p := simple_serif (z1r, z1l, -40) -- z2l {down}
+ .. tension (1 + .5 slant)
.. z3l{right}
.. z4l{up} -- z4r{down}
- .. z3r{left} .. z2r{up} .. z1r -- cycle;
+ .. z3r{left}
+ .. tension (1.5 + .7 slant)
+ .. z2r{up} .. z1r -- cycle;
fill t_p ;
krul_ang = 32;
pickup pencircle scaled hair_thick;
-
- z5 = (t_fatness/2, 2/3 ex);
lft x6 = - uitschieter;
y6 = y5 ; % - 1/20 ex;
penpos7(hair_thick, up_angle + 90);
- x8l = .7 [x9r, x7r];
- y8l = y7l;
- penpos8(2 hair_thick, (up_angle +90)/2);
-
y9 = 3/4 ex;
x9 = x1 + kerning;
penpos9(r_fatness, 0);
y10 = -0.3 stafflinethickness;
penpos10(r_fatness, 0);
- krul_p := z4{up} .. tension 1.1 .. z5
- .. tension 1 and .75 .. z6
- .. tension .85 and 1.1 .. z5 --- z7;
+ krul_p := z4{up}
+ .. tension 0.98
+ .. z5
+ .. z6
+ .. z5 --- z7;
draw krul_p;
r_p := z7l{z7-z5} .. z9l{down} --- simple_serif (z10l, z10r, -30)
--- z9r{up}
- .. z8r{left} .. z7r{z5-z7} -- cycle;
+ .. z7r{z5-z7} -- cycle;
fill r_p;
- set_char_box(staff_space# , staff_space#, 0,ascender#);
+
+ set_char_box(.85 staff_space# , .85 staff_space#, 0,ascender#);
penpos11(1/4 r_fatness, -20);
z11r = z9r;
- z13 = (x9 + 2 r_fatness, y11 );
- penpos13(r_fatness, 180);
- fill z11r{dir 70} .. z13r{down} -- z13l{up} .. z11l{dir 250} -- cycle;
- penlabels(range 1 thru 15);
+ z13 = (x9 + 1.9 r_fatness, y11 - stafflinethickness );
+ penpos13(0.45 r_fatness, 170);
+ z15 = z13r - (bulb_size * r_fatness,0);
+ z14 = 0.5 [z13l, z15] - (0,bulb_size* r_fatness);
+ z16 = 0.5 [z13l, z15] + (0,bulb_size* r_fatness);
+
+
+ fill z11r{dir 70} .. tension 0.94 .. z13r{down} -- z15{down}
+ .. tension 0.97 .. z13l{up}
+ .. z11l{dir 250} -- cycle;
+
+ fill z15{up} .. tension 1.1 .. z13l{down} .. z14 .. cycle;
+
+
+
+ penlabels(range 1 thru 15);
- draw_bulb(-1, z13r, z13l, bulb_size * r_fatness, 1.5);
fet_endchar;
(grob-property-description 'chord-tremolo boolean? "if set, this beam is a tremolo. TODO: use interface for this!")
(grob-property-description 'chord pair? "?")
(grob-property-description 'begin-of-line-visible boolean? "?")
+
+(grob-property-description 'quant-score number? "Beam quanting score")
+
+(grob-property-description 'least-squares-dy number?
+ "ideal beam slope, without damping.")
+(grob-property-description 'stem-info pair? "caching of stem parameters")