X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mf%2Ffeta-schrift.mf;h=9d5983726a3146b96b9acff314e53e432f1c9069;hb=afa5829cd270e1b0c616b7ba5c5e6cdc0e920e5f;hp=37d551b925aa8fdcca430742f75c7f62c0617415;hpb=c8e6f4f3b9c4308d88d844909e645fc5ff437fa8;p=lilypond.git diff --git a/mf/feta-schrift.mf b/mf/feta-schrift.mf index 37d551b925..9d5983726a 100644 --- a/mf/feta-schrift.mf +++ b/mf/feta-schrift.mf @@ -1,9 +1,11 @@ -% +% -*- Fundamental -*- (emacs-20 mf mode mucks % feta-schrift.mf -- implement scripts % -% source file of the Feta (Font-En-Tja) music font +% source file of the Feta (defintively not an abbreviation for Font-En-Tja) +% music font % % (c) 1997 Han-Wen Nienhuys +% Jan Nieuwenhuizen % @@ -11,39 +13,39 @@ fet_begingroup("scripts") def draw_fermata = - save alpha, radius, crook_thinness, crook_fatness, dot_diam; - + save alpha, radius, crook_thinness, crook_fatness, dot_diam; + % [Wanske] and some Baerenreiter editions % suggest ca 80 degrees iso half-circle - alpha := 10; + alpha := 10; - radius# = 1.25 interline#; - crook_thinness# = 1.5stafflinethickness#; - crook_fatness# = 4 stafflinethickness#; + radius# = 1.25 interline#; + crook_thinness# = 1.5stafflinethickness#; + crook_fatness# = 4 stafflinethickness#; - radius# + crook_fatness#/2 = h#; - radius# + crook_thinness#/2 = w#; - set_char_box(w#, w#, crook_thinness#/2, h#); - - define_pixels(radius, crook_thinness, crook_fatness); - dot_diam = 4/3 crook_fatness; + radius# + crook_fatness#/2 = h#; + radius# + crook_thinness#/2 = w#; + set_char_box(w#, w#, crook_thinness#/2, h#); + + define_pixels(radius, crook_thinness, crook_fatness); + dot_diam = 4/3 crook_fatness; - penpos1(crook_thinness, 0); - penpos2(crook_fatness, -90); - z1 = (-radius,0); - z2 = (0, radius); + penpos1(crook_thinness, 0); + penpos2(crook_fatness, -90); + z1 = (-radius,0); + z2 = (0, radius); - fill z1l{dir (-alpha-90)}..{dir (90-alpha)}z1r.. - {right}z2r -- z2l{left} .. cycle; + fill z1l{dir (-alpha-90)}..{dir (90-alpha)}z1r.. + {right}z2r -- z2l{left} .. cycle; - addto currentpicture also - currentpicture xscaled -1; + addto currentpicture also + currentpicture xscaled -1; - pickup pencircle scaled dot_diam; - x4 =0; - bot y4 = - crook_thinness/2; - draw z4; + pickup pencircle scaled dot_diam; + x4 =0; + bot y4 = - crook_thinness/2; + draw z4; enddef; fet_beginchar("fermata up", "ufermata", "ufermata") @@ -56,6 +58,34 @@ fet_beginchar("fermata down", "dfermata", "dfermata") y_mirror_char; fet_endchar; +% +% Thumbs are used in cello music. +% TODO : thumbs should look like the finger-font and should be placed in +% the same way in the score. +% + +fet_beginchar("Thumb", "thumb", "thumb") + save thin, height, width, thick; + height# = 5/4 width#; + height# = interline#; + thin = 1.2 stafflinethickness; + thick = 2 thin; + set_char_box(width#/2, width#/2, height#/2, height#/2); + + penpos1(thick, 0); + penpos2(thin, 90); + z1r = (w, 0); + z2r = (0, h); + penlabels(1,2); + penstroke z1e{up} .. {left}z2e; + addto currentpicture also currentpicture xscaled -1; + addto currentpicture also currentpicture yscaled -1; + + z3 = (0, -h); + z4 = (0, -1.5h); + penlabels(3,4); + draw_brush(z3,1.4*thin, z4,0.9*thick); +fet_endchar; % % FIXME: rounded endings @@ -65,7 +95,7 @@ fet_beginchar("> accent", "sforzato", "sforzatoaccent") set_char_box(.9 interline#, .9 interline#, .5 interline#, .5 interline#); save thickness, diminish; - thickness = 2 stafflinethickness; + thickness = 3/2 stafflinethickness; pickup pencircle scaled thickness; % prevent blobs at crossing lines @@ -128,10 +158,10 @@ fet_endchar; fet_beginchar("portato/single tenuto", "tenuto", "tenuto") save thick; - thick# = 1.2 stafflinethickness#; + thick# = 1.4 stafflinethickness#; define_pixels(thick); - set_char_box(.9 interline#, .9 interline#, thick#/2,thick#/2); + set_char_box(.6 interline#, .6 interline#, thick#/2,thick#/2); pickup pencircle scaled thick; lft x1 = -b; rt x2 = w; @@ -171,14 +201,13 @@ fet_endchar; % % The down marcato char (not very much used). % Contrary to what some MF/TeX `gurus' believe -% it is *point*-symmetric with the "up" version; (at least [Chlapik] and -% and [Wanske] agree with us) -% +% it is *point*-symmetric with the "up" version fet_beginchar("marcato down", "dmarcato", "dmarcato") draw_marcato; xy_mirror_char; fet_endchar; + % % used in french horn music todo % @@ -281,7 +310,8 @@ fet_endchar; % % Inspired by a computer-set version of Auf dem Strom by Baerenreiter. % -fet_beginchar("Turn","turn","turn") + +def draw_turn = save thin, thick, ball_diam, darkness; save wd, ht, thick_nibangle, ball_nib_thick; save turndir; @@ -291,7 +321,7 @@ fet_beginchar("Turn","turn","turn") ht# = 18/17 interline#; darkness = 1.20 stafflinethickness; - set_char_box(wd#/2, wd#/2, ht#/2, ht#/2); + set_char_box(wd#/2, wd#/2, ht#/2, ht#/2); thick_nibangle = 60; thick = 3 darkness; @@ -317,7 +347,6 @@ fet_beginchar("Turn","turn","turn") swoosh := z1l{curl 0} .. z2l .. z3l{up} .. {left}z4l -- z4r .. z3r{down} .. z2r{left} ; fill swoosh .. (swoosh scaled -1) .. cycle; - penlabels(2,3,4); x5r = x4; y5r = y4l - ball_diam /2; @@ -331,8 +360,21 @@ fet_beginchar("Turn","turn","turn") fill ploop scaled -1; +enddef; + +fet_beginchar("Reverse turn","reverseturn","reverseturn") + draw_turn; + currentpicture := currentpicture yscaled -1; penlabels(5,6,7); - + penlabels(2,3,4); +fet_endchar; + + +fet_beginchar("Turn","turn","turn") + draw_turn; + + penlabels(5,6,7); + penlabels(2,3,4); fet_endchar; @@ -373,7 +415,7 @@ fet_beginchar("Trill (`tr')","trill","trill") slant = .2; local_copy(transform)(currenttransform); - currenttransform := currenttransform slanted slant; + currenttransform := currenttransform slanted slant shifted (- interline, 0) ; y1 = ascender; x1l = 0; @@ -439,7 +481,7 @@ fet_beginchar("Trill (`tr')","trill","trill") --- z9r{up} .. z8r{left} .. z7r{z5-z7} -- cycle; fill r_p; - set_char_box(0,2 interline#, 0,ascender#); + set_char_box(interline# , interline#, 0,ascender#); penpos11(1/4 r_fatness, -20); @@ -454,7 +496,8 @@ fet_beginchar("Trill (`tr')","trill","trill") draw_bulb(-1, z13r, z13l, bulb_size * r_fatness, 1.5); fet_endchar; -fet_beginchar("organ-heel", "pedalheel", "pedalheel") + +def draw_heel = save radius, thickness, wall; radius# := .5 interline#; @@ -475,10 +518,21 @@ fet_beginchar("organ-heel", "pedalheel", "pedalheel") draw z1{down} .. z2{down} .. z3{left}; addto currentpicture also currentpicture xscaled -1; + +enddef; + + +fet_beginchar("left heel", "upedalheel", "upedalheel") + draw_heel; labels(1,2,3); fet_endchar; -fet_beginchar("organ-toe", "pedaltoe", "pedaltoe") +fet_beginchar("right heel", "dpedalheel", "dpedalheel") + draw_heel; + y_mirror_char; +fet_endchar; + +def draw_toe = save ht,wd; thickness := 1.5 stafflinethickness; @@ -498,10 +552,42 @@ fet_beginchar("organ-toe", "pedaltoe", "pedaltoe") draw z1 -- z2 -- z3; + +enddef; + +fet_beginchar("left toe", "upedaltoe", "upedaltoe") + draw_toe; labels(1,2,3); fet_endchar; +fet_beginchar("right toe", "dpedaltoe", "dpedaltoe") + draw_toe; + y_mirror_char; +fet_endchar; +fet_beginchar("Flageolet", "flageolet", "flageolet") + save height,width,thickness; + height#=4/15 staffsize#; + width#=height#; + thickness#=blot_diameter#; + define_pixels(height,width,thickness); + set_char_box(width#/2,width#/2,height#/2,height#/2); + + pickup pencircle scaled thickness; + x1= .5 [x2, x4]; + x1 = 0; + top y1=height/2; + rt x4 - lft x2 =width; + y2 = 0; + y4=y2; + x3=x1; + bot y3=-height/2; + penlabels(1,2,3,4); + draw z1..z2..z3..z4..cycle; +fet_endchar; +input feta-slag; +input feta-accordion; fet_endgroup("scripts"); +