% -*-Fundamental-*- % parmesan-scripts.mf -- implement ancient script symbols % % source file of LilyPond's pretty-but-neat music font % % (c) 2002--2004 Juergen Reuter % fet_begingroup ("scripts") fet_beginchar("ictus", "ictus") save ht, wd; ht# = .35 staff_space#; wd# = linethickness#; define_pixels(wd, ht); pickup pencircle xscaled wd yscaled blot_diameter; set_char_box(wd#/2, wd#/2, ht#/2, ht#/2); x1 = 0; top y1 = ht/2; x2 = 0; bot y2 = -ht/2; draw z1 -- z2; fet_endchar; def draw_accentus = save thick, thin, ht, wd; thin# = 1 linethickness#; thick# = 1.2 linethickness#; ht# = .35 staff_space#; wd# = .25 staff_space#; define_pixels(wd, ht, thin, thick); z1 = z2 = (-wd/2 + thin/2, -ht/2 + thin/2); z3 = z4 = (wd/2 - thick/2, ht/2 - thick/2); penpos1(thin, angle(z1-z3)); penpos2(thin, angle(z1-z3)+90); penpos3(thick, angle(z3-z1)+90); penpos4(thick, angle(z3-z1)); fill z1r .. z2r -- z3l .. z4r .. z3r -- z2l .. cycle; set_char_box(wd#/2, wd#/2, ht#/2, ht#/2); enddef; fet_beginchar("accentus up", "uaccentus") draw_accentus; fet_endchar; fet_beginchar("accentus down", "daccentus") draw_accentus; y_mirror_char; fet_endchar; def draw_half_ellipse(expr ellips_width, ellips_height) = save width, height, thin, thick; width# = ellips_width; height# = ellips_height; define_pixels(width, height); thin = thick = 0.6 linethickness; penpos1(thick, 0); penpos2(thin, -90); z1r = (width/2, 0); z2r = (0, -height/2); penlabels(1,2); penstroke z1e{down} .. {left}z2e; addto currentpicture also currentpicture xscaled -1; enddef; fet_beginchar("half circle", "usemicirculus") draw_half_ellipse(5/16 staff_space#, 5/16 staff_space#); currentpicture := currentpicture yscaled -1; set_char_box(width#/2, width#/2, 0, height#/2); fet_endchar; fet_beginchar("half circle", "dsemicirculus") draw_half_ellipse(5/16 staff_space#, 5/16 staff_space#); set_char_box(width#/2, width#/2, height#/2, 0); fet_endchar; fet_beginchar("circle", "circulus") draw_half_ellipse(5/16 staff_space#, 5/16 staff_space#); set_char_box(width#/2, width#/2, height#/2, height#/2); addto currentpicture also currentpicture yscaled -1; fet_endchar; fet_beginchar("augmentum", "augmentum") save diameter; diameter# = 0.25 staff_space#; define_pixels(diameter); pickup pencircle scaled diameter; draw (0,0); set_char_box(diameter#/2, diameter#/2, diameter#/2, diameter#/2); fet_endchar; def draw_signum_congruentiae = save za, zb, zc, zd, ze, zf, zg, zh; pair za, zb, zc, zd, ze, zf, zg, zh; set_char_box(0.50 staff_space# + 1.5 linethickness#, 0.50 staff_space# + 1.5 linethickness#, 2.5 linethickness#, 2.00 staff_space# + 3.5 linethickness#); pickup pencircle xscaled 1.0 linethickness yscaled 5.0 linethickness rotated -35; za = (+0.50staff_space, +2.00staff_space); zb = (+0.00staff_space, +2.00staff_space); zc = (-0.50staff_space, +1.50staff_space); zd = (-0.25staff_space, +1.00staff_space); ze = (+0.10staff_space, +0.80staff_space); zf = (+0.00staff_space, +0.00staff_space); draw za{-1,+1} .. zb .. zc .. zd .. ze .. zf; pickup pencircle scaled 3.0 linethickness; zg = (-0.5staff_space, +0.0staff_space); zh = (+0.5staff_space, +0.0staff_space); drawdot zg; drawdot zh; enddef; fet_beginchar("signum congruentiae up", "usignumcongruentiae") draw_signum_congruentiae; fet_endchar; fet_beginchar("signum congruentiae down", "dsignumcongruentiae") draw_signum_congruentiae; xy_mirror_char; fet_endchar; fet_endgroup ("scripts")