From: Han-Wen Nienhuys Date: Sun, 17 Mar 2002 19:55:40 +0000 (+0100) Subject: release: 1.5.42 X-Git-Tag: release/1.5.42 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=8ffcdb619fc5c9093648dd6a23c7f39097476849;p=lilypond.git release: 1.5.42 --- diff --git a/ChangeLog b/ChangeLog index 2af4fc24a7..cdc811d3ab 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,33 +1,39 @@ ---- ../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 +2002-03-15 Mats Bengtsson - * 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 + * 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 - --- ../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 + + * 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 + * 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 - - * 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 * lily/beam.cc (least_squares): Remember least-squares-dy for @@ -41,27 +47,6 @@ * scm/interface-description.scm (beam-interface): Update. - 2002-03-15 Han-Wen Nienhuys - - * VERSION: 1.5.41 released2002-03-15 Mats Bengtsson - - * 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 * VERSION: 1.5.41 released diff --git a/VERSION b/VERSION index 9a1d0c5cbf..655452a893 100644 --- a/VERSION +++ b/VERSION @@ -1,8 +1,8 @@ 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. diff --git a/input/regression/accidental-ledger.ly b/input/regression/accidental-ledger.ly new file mode 100644 index 0000000000..f035e33bcd --- /dev/null +++ b/input/regression/accidental-ledger.ly @@ -0,0 +1,11 @@ + +\header { + texidoc = "Ledger lines are shortened when there are accidentals" +} + +\score { \notes +{ + cis'4 cis'! cis' cis' +} + \paper { linewidth = -1. } +} diff --git a/lily/beam.cc b/lily/beam.cc index 246c64d313..35a09d2f37 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -408,9 +408,14 @@ Beam::new_quanting (SCM smob) 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; } diff --git a/lily/include/note-head.hh b/lily/include/note-head.hh index bbf747842e..e60679d67b 100644 --- a/lily/include/note-head.hh +++ b/lily/include/note-head.hh @@ -23,7 +23,7 @@ public: 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); diff --git a/lily/note-head.cc b/lily/note-head.cc index 01276185eb..a1764e8796 100644 --- a/lily/note-head.cc +++ b/lily/note-head.cc @@ -60,7 +60,7 @@ 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 endings; endings[LEFT] = Font_interface::get_default_font (me)->find_by_name ("noteheads-ledgerending"); @@ -105,7 +105,7 @@ Note_head::ledger_lines (Grob*me, --hwn */ - Molecule ledger (ledger_line (idw, me)); + Molecule ledger (ledger_line (me, idw)); if (!take_space) ledger.set_empty (true); @@ -157,10 +157,26 @@ internal_brew_molecule (Grob *me, bool ledger_take_space) { 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; } diff --git a/lily/text-spanner.cc b/lily/text-spanner.cc index d86f4c99c3..127de061a3 100644 --- a/lily/text-spanner.cc +++ b/lily/text-spanner.cc @@ -111,7 +111,7 @@ Text_spanner::brew_molecule (SCM smob) 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)); @@ -275,6 +275,6 @@ Text_spanner::setup_pedal_bracket(Spanner *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] ) )); } diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index e4ab0ee2cc..1d09a22d18 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,15 +1,15 @@ 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 diff --git a/make/out/lilypond.mandrake.spec b/make/out/lilypond.mandrake.spec index 227a2264fd..577bafad07 100644 --- a/make/out/lilypond.mandrake.spec +++ b/make/out/lilypond.mandrake.spec @@ -1,5 +1,5 @@ %define name lilypond -%define version 1.5.41 +%define version 1.5.42 %define release 1mdk Name: %{name} diff --git a/make/out/lilypond.redhat.spec b/make/out/lilypond.redhat.spec index 7a5c645ac8..d276007fb3 100644 --- a/make/out/lilypond.redhat.spec +++ b/make/out/lilypond.redhat.spec @@ -3,11 +3,11 @@ %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 diff --git a/make/out/lilypond.suse.spec b/make/out/lilypond.suse.spec index 0ff09a6c34..e5ece3c4e3 100644 --- a/make/out/lilypond.suse.spec +++ b/make/out/lilypond.suse.spec @@ -14,11 +14,11 @@ 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/ diff --git a/mf/feta-eindelijk.mf b/mf/feta-eindelijk.mf index 96e88698f1..648d26dd94 100644 --- a/mf/feta-eindelijk.mf +++ b/mf/feta-eindelijk.mf @@ -180,9 +180,24 @@ def rest_crook(expr a, w) = 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)) @@ -196,13 +211,13 @@ def draw_eighth_rest = 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); @@ -214,7 +229,7 @@ def draw_eighth_rest = y1 = ycenter + - 1.5 staff_space ; % y9 = y5 - lower_brush; - y2 = y5 - 0.7 stafflinethickness; + y2 = y5 - lower_brush; x2r = width; @@ -225,15 +240,16 @@ def draw_eighth_rest = 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); @@ -247,7 +263,7 @@ def draw_eighth_rest = 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; diff --git a/mf/feta-generic.mf b/mf/feta-generic.mf index 2466feba47..b00d089e27 100644 --- a/mf/feta-generic.mf +++ b/mf/feta-generic.mf @@ -39,12 +39,12 @@ if test = 0: 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; diff --git a/mf/feta-schrift.mf b/mf/feta-schrift.mf index 557096892d..49f18ee262 100644 --- a/mf/feta-schrift.mf +++ b/mf/feta-schrift.mf @@ -410,19 +410,21 @@ fet_beginchar("Trill (`tr')","trill","trill") 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) ; @@ -435,30 +437,36 @@ fet_beginchar("Trill (`tr')","trill","trill") 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; @@ -471,10 +479,6 @@ fet_beginchar("Trill (`tr')","trill","trill") 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); @@ -483,27 +487,41 @@ fet_beginchar("Trill (`tr')","trill","trill") 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; diff --git a/scm/grob-property-description.scm b/scm/grob-property-description.scm index b8580bad21..aac832b584 100644 --- a/scm/grob-property-description.scm +++ b/scm/grob-property-description.scm @@ -462,3 +462,9 @@ columns. (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")