diff -Naur lilypond-1.5.45/ChangeLog lilypond-1.5.45.NEW/ChangeLog --- lilypond-1.5.45/ChangeLog Thu Mar 21 01:55:13 2002 +++ lilypond-1.5.45.NEW/ChangeLog Fri Mar 22 03:12:47 2002 @@ -1,3 +1,16 @@ +2002-03-22 Juergen Reuter + + * mf/feta-eindelijk.mf, mf/parmesan-rests.mf: added maxima rests; + made mensural longa and (semi-)brevis leaner + + * mf/parmesan-clefs.mf, scm/clef.scm: enhanced petrucci c clef + + * lily/{{lookup,porrectus}.cc,include/{lookup,porrectus}.hh}: code + clean-up: moved bezier shape and slope from porrectus to lookup + + * buildscripts/clean-fonts.sh: added search paths /var/cache/fonts + and /usr/share/texmf/fonts + 2002-03-21 Han-Wen * VERSION: 1.5.45 released diff -Naur lilypond-1.5.45/buildscripts/clean-fonts.sh lilypond-1.5.45.NEW/buildscripts/clean-fonts.sh --- lilypond-1.5.45/buildscripts/clean-fonts.sh Mon Feb 11 15:10:05 2002 +++ lilypond-1.5.45.NEW/buildscripts/clean-fonts.sh Fri Mar 22 00:03:23 2002 @@ -18,6 +18,8 @@ /var/spool/texmf /var/tmp/texfonts /var/texfonts +/var/cache/fonts +/usr/share/texmf/fonts " for i in $dirs; do diff -Naur lilypond-1.5.45/lily/include/lookup.hh lilypond-1.5.45.NEW/lily/include/lookup.hh --- lilypond-1.5.45/lily/include/lookup.hh Thu Feb 28 20:53:11 2002 +++ lilypond-1.5.45.NEW/lily/include/lookup.hh Fri Mar 22 02:24:59 2002 @@ -22,6 +22,8 @@ static Molecule accordion (SCM arg, Real interline_f, Font_metric*fm); static Molecule frame (Box b, Real thick); static Molecule slur (Bezier controls, Real cthick, Real thick) ; + static Molecule bezier_sandwich (Bezier, Bezier); + static Molecule horizontal_slope (Real, Real, Real); static Molecule beam (Real, Real, Real) ; static Molecule dashed_slur (Bezier, Real thick, Real dash) ; static Molecule blank (Box b) ; diff -Naur lilypond-1.5.45/lily/include/porrectus.hh lilypond-1.5.45.NEW/lily/include/porrectus.hh --- lilypond-1.5.45/lily/include/porrectus.hh Fri Feb 1 19:16:23 2002 +++ lilypond-1.5.45.NEW/lily/include/porrectus.hh Fri Mar 22 02:24:37 2002 @@ -30,8 +30,6 @@ static Molecule brew_mensural_molecule (Item *, Real, bool, Real, Real, bool, Direction); - static Molecule brew_bezier_sandwich (Bezier, Bezier); - static Molecule brew_horizontal_slope (Real, Real, Real); static Molecule create_ledger_line (Interval, Grob *); static Molecule create_streepjes (Grob *, int, int, Interval); }; diff -Naur lilypond-1.5.45/lily/lookup.cc lilypond-1.5.45.NEW/lily/lookup.cc --- lilypond-1.5.45/lily/lookup.cc Sat Mar 2 02:53:32 2002 +++ lilypond-1.5.45.NEW/lily/lookup.cc Fri Mar 22 02:27:11 2002 @@ -161,6 +161,90 @@ } /* + * Bezier Sandwich: + * + * .| + * . | + * top . | + * . curve | + * . | + * . | + * . | + * | | + * | .| + * | . + * | bottom . + * | . curve + * | . + * | . + * | . + * | . + * |. + * | + * + */ +Molecule +Lookup::bezier_sandwich (Bezier top_curve, Bezier bottom_curve) +{ + /* + Need the weird order b.o. the way PS want its arguments + */ + SCM list = SCM_EOL; + list = gh_cons (ly_offset2scm (bottom_curve.control_[3]), list); + list = gh_cons (ly_offset2scm (bottom_curve.control_[0]), list); + list = gh_cons (ly_offset2scm (bottom_curve.control_[1]), list); + list = gh_cons (ly_offset2scm (bottom_curve.control_[2]), list); + list = gh_cons (ly_offset2scm (top_curve.control_[0]), list); + list = gh_cons (ly_offset2scm (top_curve.control_[3]), list); + list = gh_cons (ly_offset2scm (top_curve.control_[2]), list); + list = gh_cons (ly_offset2scm (top_curve.control_[1]), list); + + SCM horizontal_bend = scm_list_n (ly_symbol2scm ("bezier-sandwich"), + ly_quote_scm (list), + gh_double2scm (0.0), + SCM_UNDEFINED); + + Interval x_extent = top_curve.extent (X_AXIS); + x_extent.unite (bottom_curve.extent (X_AXIS)); + Interval y_extent = top_curve.extent (Y_AXIS); + y_extent.unite (bottom_curve.extent (Y_AXIS)); + Box b (x_extent, y_extent); + + return Molecule (b, horizontal_bend); +} + +/* + * Horizontal Slope: + * + * /| ^ + * / | | + * / | | height + * / | | + * / | v + * | / + * | / + * (0,0) x /slope=dy/dx + * | / + * |/ + * + * <-----> + * width + */ +Molecule +Lookup::horizontal_slope (Real width, Real slope, Real height) +{ + SCM width_scm = gh_double2scm (width); + SCM slope_scm = gh_double2scm (slope); + SCM height_scm = gh_double2scm (height); + SCM horizontal_slope = scm_list_n (ly_symbol2scm ("beam"), + width_scm, slope_scm, + height_scm, SCM_UNDEFINED); + Box b (Interval (0, width), + Interval (-height/2, height/2 + width*slope)); + return Molecule (b, horizontal_slope); +} + +/* TODO: junk me. */ Molecule diff -Naur lilypond-1.5.45/lily/porrectus.cc lilypond-1.5.45.NEW/lily/porrectus.cc --- lilypond-1.5.45/lily/porrectus.cc Mon Mar 11 01:49:51 2002 +++ lilypond-1.5.45.NEW/lily/porrectus.cc Fri Mar 22 02:26:52 2002 @@ -362,7 +362,7 @@ if (solid) { Molecule solid_head = - brew_bezier_sandwich (top_curve, bottom_curve); + Lookup::bezier_sandwich (top_curve, bottom_curve); molecule.add_molecule (solid_head); } else // outline @@ -370,13 +370,13 @@ Bezier inner_top_curve = top_curve; inner_top_curve.translate (Offset (0.0, -thickness)); Molecule top_edge = - brew_bezier_sandwich (top_curve, inner_top_curve); + Lookup::bezier_sandwich (top_curve, inner_top_curve); molecule.add_molecule(top_edge); Bezier inner_bottom_curve = bottom_curve; inner_bottom_curve.translate (Offset (0.0, +thickness)); Molecule bottom_edge = - brew_bezier_sandwich (bottom_curve, inner_bottom_curve); + Lookup::bezier_sandwich (bottom_curve, inner_bottom_curve); molecule.add_molecule(bottom_edge); // TODO: Use horizontal slope with proper slope value rather @@ -452,117 +452,31 @@ if (solid) { Molecule solid_head = - brew_horizontal_slope (width, corrected_slope, height); + Lookup::horizontal_slope (width, corrected_slope, height); molecule.add_molecule (solid_head); } else // outline { Molecule left_edge = - brew_horizontal_slope (thickness, corrected_slope, height); + Lookup::horizontal_slope (thickness, corrected_slope, height); molecule.add_molecule(left_edge); Molecule right_edge = - brew_horizontal_slope (thickness, corrected_slope, height); + Lookup::horizontal_slope (thickness, corrected_slope, height); right_edge.translate_axis (width-thickness, X_AXIS); right_edge.translate_axis (corrected_slope * (width-thickness), Y_AXIS); molecule.add_molecule(right_edge); Molecule bottom_edge = - brew_horizontal_slope (width, corrected_slope, thickness); + Lookup::horizontal_slope (width, corrected_slope, thickness); bottom_edge.translate_axis (-0.5*height, Y_AXIS); molecule.add_molecule (bottom_edge); Molecule top_edge = - brew_horizontal_slope (width, corrected_slope, thickness); + Lookup::horizontal_slope (width, corrected_slope, thickness); top_edge.translate_axis (+0.5*height, Y_AXIS); molecule.add_molecule (top_edge); } molecule.translate_axis (ypos_correction, Y_AXIS); return molecule; -} - -/* - * Bezier Sandwich: - * - * .| - * . | - * top . | - * . curve | - * . | - * . | - * . | - * | | - * | .| - * | . - * | bottom . - * | . curve - * | . - * | . - * | . - * | . - * |. - * | - * - */ -// TODO: Move this to class Lookup? -Molecule -Porrectus::brew_bezier_sandwich (Bezier top_curve, Bezier bottom_curve) -{ - /* - Need the weird order b.o. the way PS want its arguments - */ - SCM list = SCM_EOL; - list = gh_cons (ly_offset2scm (bottom_curve.control_[3]), list); - list = gh_cons (ly_offset2scm (bottom_curve.control_[0]), list); - list = gh_cons (ly_offset2scm (bottom_curve.control_[1]), list); - list = gh_cons (ly_offset2scm (bottom_curve.control_[2]), list); - list = gh_cons (ly_offset2scm (top_curve.control_[0]), list); - list = gh_cons (ly_offset2scm (top_curve.control_[3]), list); - list = gh_cons (ly_offset2scm (top_curve.control_[2]), list); - list = gh_cons (ly_offset2scm (top_curve.control_[1]), list); - - SCM horizontal_bend = scm_list_n (ly_symbol2scm ("bezier-sandwich"), - ly_quote_scm (list), - gh_double2scm (0.0), - SCM_UNDEFINED); - - Interval x_extent = top_curve.extent (X_AXIS); - x_extent.unite (bottom_curve.extent (X_AXIS)); - Interval y_extent = top_curve.extent (Y_AXIS); - y_extent.unite (bottom_curve.extent (Y_AXIS)); - Box b (x_extent, y_extent); - - return Molecule (b, horizontal_bend); -} - -/* - * Horizontal Slope: - * - * /| ^ - * / | | - * / | | height - * / | | - * / | v - * | / - * | / - * (0,0) x /slope=dy/dx - * | / - * |/ - * - * <-----> - * width - */ -// TODO: Move this to class Lookup? -Molecule -Porrectus::brew_horizontal_slope (Real width, Real slope, Real height) -{ - SCM width_scm = gh_double2scm (width); - SCM slope_scm = gh_double2scm (slope); - SCM height_scm = gh_double2scm (height); - SCM horizontal_slope = scm_list_n (ly_symbol2scm ("beam"), - width_scm, slope_scm, - height_scm, SCM_UNDEFINED); - Box b (Interval (0, width), - Interval (-height/2, height/2 + width*slope)); - return Molecule (b, horizontal_slope); } diff -Naur lilypond-1.5.45/mf/feta-eindelijk.mf lilypond-1.5.45.NEW/mf/feta-eindelijk.mf --- lilypond-1.5.45/mf/feta-eindelijk.mf Sun Mar 17 20:54:34 2002 +++ lilypond-1.5.45.NEW/mf/feta-eindelijk.mf Thu Mar 21 23:13:09 2002 @@ -442,6 +442,13 @@ draw_block ((0,0), (neomens_block_rest_x, neomens_half_block_rest_y)); enddef; +fet_beginchar("Neo-mensural maxima rest", "-3neo_mensural", "neomensmaximarest"); + set_char_box(0, neomens_block_rest_x#, + neomens_block_rest_y#, 2 neomens_block_rest_y#); + draw_block ((0,-neomens_block_rest_y), + (neomens_block_rest_x, 2 neomens_block_rest_y)); +fet_endchar; + fet_beginchar("Neo-mensural longa rest", "-2neo_mensural", "neomenslongarest"); set_char_box(0, neomens_block_rest_x#, neomens_block_rest_y#, neomens_block_rest_y#); diff -Naur lilypond-1.5.45/mf/parmesan-clefs.mf lilypond-1.5.45.NEW/mf/parmesan-clefs.mf --- lilypond-1.5.45/mf/parmesan-clefs.mf Tue Feb 19 11:36:38 2002 +++ lilypond-1.5.45.NEW/mf/parmesan-clefs.mf Fri Mar 22 02:01:05 2002 @@ -326,19 +326,21 @@ fet_endchar; -def draw_petrucci_c_clef(expr exact_center, reduction) = +def draw_petrucci_c_clef(expr exact_center, flare_align, reduction) = % inspired by Josquin Desprez, "Stabat Mater", Libro tertio, % 1519, printed by Petrucci, in: MGG, volume 7, Table 11. draw_brevis(exact_center, reduction, true, true); - save reduced_il, reduced_slt; + save half_reduced_il, reduced_il, reduced_slt; save stem_width, interline; + half_reduced_il# = staff_space# * sqrt(reduction); reduced_il# = staff_space# * reduction; reduced_slt# = stafflinethickness# * reduction; stem_width# = 1.4 reduced_slt#; interline# = staff_space#; + define_pixels(half_reduced_il); define_pixels(reduced_il); define_pixels(reduced_slt); define_pixels(stem_width); @@ -347,41 +349,88 @@ addto currentpicture also currentpicture yscaled -1 shifted (0, 2*(ypart exact_center) - interline); - pickup pencircle xscaled stem_width yscaled blot_diameter; - z6 = exact_center + (stem_width/2, 0); - z7 = z6 + (0, -2.2reduced_il); - draw z6 .. z7; - addto currentpicture also currentpicture - xscaled -1 shifted (2x4l,0); - - z8 = exact_center + (stem_width/2, 0); - z9 = z8 + (0, -3.2reduced_il); - draw z8 .. z9; + xscaled -1 shifted (reduction*2x4l,0); addto currentpicture also currentpicture yscaled -1 shifted (0, 4*(ypart exact_center)); + pickup pencircle xscaled stem_width yscaled blot_diameter; + + xpart z6 = xpart z7 = xpart exact_center + stem_width/2; + ypart z6 = ypart exact_center + + min(3.2, 3.2 + 0.2 + flare_align)*half_reduced_il; + ypart z7 = ypart exact_center - + min(3.2, 3.2 + 0.2 - flare_align)*half_reduced_il; + draw z6 .. z7; + + xpart z8 = xpart z9 = reduction*2x4l - xpart exact_center - stem_width/2; + ypart z8 = min(ypart z6 - 0.2*half_reduced_il, + xpart exact_center + 2.2half_reduced_il); + ypart z9 = max(ypart z7 + 0.2*half_reduced_il, + xpart exact_center - 2.2half_reduced_il); + draw z8 .. z9; + set_char_box(0, 2head_width#, noteheight#*4*reduction, noteheight#*4*reduction); enddef; -fet_beginchar("petrucci c clef", "petrucci_c", "petruccicclef") +fet_beginchar("petrucci c1 clef", "petrucci_c1", "petruccic1clef") + if test = 1: + draw_staff(-1,3, 0.0); + fi; + draw_petrucci_c_clef((0,0), +2, 1.0); +fet_endchar; +fet_beginchar("petrucci c1 clef", "petrucci_c1_change", "cpetruccic1clef") + draw_petrucci_c_clef((1.3 staff_space#,0), +2, .8); +fet_endchar; + +fet_beginchar("petrucci c2 clef", "petrucci_c2", "petruccic2clef") + if test = 1: + draw_staff(-1,3, 0.0); + fi; + draw_petrucci_c_clef((0,0), +1, 1.0); +fet_endchar; +fet_beginchar("petrucci c2 clef", "petrucci_c2_change", "cpetruccic2clef") + draw_petrucci_c_clef((1.3 staff_space#,0), +1, .8); +fet_endchar; + +fet_beginchar("petrucci c3 clef", "petrucci_c3", "petruccic3clef") + if test = 1: + draw_staff(-1,3, 0.0); + fi; + draw_petrucci_c_clef((0,0), 0, 1.0); +fet_endchar; +fet_beginchar("petrucci c3 clef", "petrucci_c3_change", "cpetruccic3clef") + draw_petrucci_c_clef((1.3 staff_space#,0), 0, .8); +fet_endchar; + +fet_beginchar("petrucci c4 clef", "petrucci_c4", "petruccic4clef") + if test = 1: + draw_staff(-1,3, 0.0); + fi; + draw_petrucci_c_clef((0,0), -1, 1.0); +fet_endchar; +fet_beginchar("petrucci c4 clef", "petrucci_c4_change", "cpetruccic4clef") + draw_petrucci_c_clef((1.3 staff_space#,0), -1, .8); +fet_endchar; + +fet_beginchar("petrucci c5 clef", "petrucci_c5", "petruccic5clef") if test = 1: draw_staff(-1,3, 0.0); fi; - draw_petrucci_c_clef((0,0), 1.0); + draw_petrucci_c_clef((0,0), -2, 1.0); fet_endchar; -fet_beginchar("petrucci c clef", "petrucci_c_change", "cpetruccicclef") - draw_petrucci_c_clef((1.3 staff_space#,0), .8); +fet_beginchar("petrucci c5 clef", "petrucci_c5_change", "cpetruc5iceclef") + draw_petrucci_c_clef((1.3 staff_space#,0), -2, .8); fet_endchar; def draw_mensural_c_clef(expr exact_center, reduction) = % inspired by Ockeghem, "Missa Prolationum", in: MGG, volume % 9, table 94. - draw_petrucci_c_clef(exact_center, reduction); + draw_petrucci_c_clef(exact_center, 0, reduction); addto currentpicture also currentpicture shifted (0, -interline); diff -Naur lilypond-1.5.45/mf/parmesan-rests.mf lilypond-1.5.45.NEW/mf/parmesan-rests.mf --- lilypond-1.5.45/mf/parmesan-rests.mf Tue Feb 19 11:36:38 2002 +++ lilypond-1.5.45.NEW/mf/parmesan-rests.mf Fri Mar 22 01:50:46 2002 @@ -18,7 +18,7 @@ % % -pen_width# = 2/5 staff_space#; +pen_width# = 0.3 staff_space#; pen_height# = 0; pen_rotation = 30; slight_pen_rotation = 15; @@ -29,8 +29,18 @@ define_pixels(mens_block_rest_y, mens_half_block_rest_y, pen_width, pen_height); +fet_beginchar("Mensural maxima rest", "-3mensural", "mensmaximarest"); + set_char_box(0.7pen_width#, 0.7pen_width#, + mens_block_rest_y#, 2mens_block_rest_y#); + pickup pencircle + xscaled pen_width + yscaled pen_height + rotated slight_pen_rotation; + draw (0, -mens_block_rest_y) -- (0, 2 mens_block_rest_y); +fet_endchar; + fet_beginchar("Mensural longa rest", "-2mensural", "menslongarest"); - set_char_box(pen_width#/2, pen_width#/2, + set_char_box(0.7pen_width#, 0.7pen_width#, mens_block_rest_y#, mens_block_rest_y#); pickup pencircle xscaled pen_width @@ -40,7 +50,7 @@ fet_endchar; fet_beginchar("Mensural breve rest", "-1mensural", "mensbreverest"); - set_char_box(pen_width#/2, pen_width#/2, + set_char_box(0.7pen_width#, 0.7pen_width#, 0, mens_block_rest_y#); pickup pencircle xscaled pen_width @@ -50,7 +60,7 @@ fet_endchar; fet_beginchar("Mensural whole rest", "0mensural", "menssemibrevisrest"); - set_char_box(pen_width#/2, pen_width#/2, + set_char_box(0.7pen_width#, 0.7pen_width#, mens_half_block_rest_y#, 0); pickup pencircle xscaled pen_width @@ -60,7 +70,7 @@ fet_endchar; fet_beginchar("Mensural half rest", "1mensural", "mensminimahalfrest"); - set_char_box(pen_width#/2, pen_width#/2, + set_char_box(0.7pen_width#, 0.7pen_width#, 0, mens_half_block_rest_y#); pickup pencircle xscaled pen_width diff -Naur lilypond-1.5.45/scm/clef.scm lilypond-1.5.45.NEW/scm/clef.scm --- lilypond-1.5.45/scm/clef.scm Fri Feb 1 18:45:09 2002 +++ lilypond-1.5.45.NEW/scm/clef.scm Fri Mar 22 00:59:05 2002 @@ -49,11 +49,11 @@ ("neo_mensural_c2" . ("clefs-neo_mensural_c" -2 0)) ("neo_mensural_c3" . ("clefs-neo_mensural_c" 0 0)) ("neo_mensural_c4" . ("clefs-neo_mensural_c" 2 0)) - ("petrucci_c1" . ("clefs-petrucci_c" -4 0)) - ("petrucci_c2" . ("clefs-petrucci_c" -2 0)) - ("petrucci_c3" . ("clefs-petrucci_c" 0 0)) - ("petrucci_c4" . ("clefs-petrucci_c" 2 0)) - ("petrucci_c5" . ("clefs-petrucci_c" 4 0)) + ("petrucci_c1" . ("clefs-petrucci_c1" -4 0)) + ("petrucci_c2" . ("clefs-petrucci_c2" -2 0)) + ("petrucci_c3" . ("clefs-petrucci_c3" 0 0)) + ("petrucci_c4" . ("clefs-petrucci_c4" 2 0)) + ("petrucci_c5" . ("clefs-petrucci_c5" 4 0)) ("petrucci_f" . ("clefs-petrucci_f" 2 0)) ("petrucci_g" . ("clefs-petrucci_g" -2 0)) ) @@ -78,7 +78,11 @@ ("clefs-mensural_f" . 4) ("clefs-mensural_g" . -4) ("clefs-neo_mensural_c" . 0) - ("clefs-petrucci_c" . 0) + ("clefs-petrucci_c1" . 0) + ("clefs-petrucci_c2" . 0) + ("clefs-petrucci_c3" . 0) + ("clefs-petrucci_c4" . 0) + ("clefs-petrucci_c5" . 0) ("clefs-petrucci_f" . 4) ("clefs-petrucci_g" . -4) )