% neumes.mf % font for Hildegard's neumes mode_setup; em#:=10pt#; cap#:=8pt#; dep#:=2pt#; hook#:=10pt#; %%%% definitions for using a ballpoint pen def pickpen = pickup pencircle scaled .8pt; enddef; def pickdot = pickup pencircle scaled 1.6pt; enddef; %screenstrokes; % macro to clear the screen %def cc = clearit; showit; enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % straight strong notes % (virgae and pedes) def virga = x1 := w-hook#; y1 := h; x2 := w; y2 := y1; x3 := x2; y3 := 0; pickpen; draw z1--z2--z3; enddef; def bottom_of_pes = x3 := 0; y3 := 0; x4 := w; y4 := y3; pickpen; draw z3{(2,1)}..z4; enddef; % virga % Cannot be postpended beginchar("l",0,cap#,dep#); "virga (l)"; virga; endchar; % Compound form of pes. % Can be postpended by virga (making a real pes), % clivis, porrectus, cephalicus, pressus, cephalicus beginchar("-",1/2em#,cap#,dep#) "bottom of pes (-)"; bottom_of_pes; penlabels(3,4); endchar; % Normal form of pes beginchar("/",1/2em#,cap#,dep#) "pes (/)"; virga; bottom_of_pes; penlabels(1,2,3,4); endchar; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % strong, round notes % (clives, porrecti, torculi) % clivis % Can be postpended by low liquescens beginchar("n",.7em#,cap#,dep#) "clivis (n)"; x1 := 0; y1 := -d; x2 := 1/3w; y2 := h; x3 := 2/3w; y3 := -d; x4 := w; y4 := 0; pickpen; draw z1{1,2}..z2..{down}z3 & z3..{right}z4; penlabels(1,2,3,4); endchar; % Compound form of clivis % Can be postpended by low liquescens beginchar("N",.7em#,cap#,dep#) "compound form of clivis (N)"; x1 := 0; y1 := 0; x2 := 1/3w; y2 := h; x3 := 2/3w; y3 := -d; x4 := w; y4 := 0; pickpen; draw z1{up}..z2..{down}z3 & z3..{right}z4; penlabels(1,2,3,4); endchar; % Compound form of porrectus % Cannot be postpended beginchar("U",.8em#,cap#,dep#) "compound form of porrectus (U)"; x1 := 0; y1 := 0; x2 := 1/3w; y2 := h; x3 := 2/3w; y3 := -d; x4 := w; y4 := 0; x5 := w; y5 := h; pickpen; draw z1{up}..z2..z3..{up}z4--z5; penlabels(1,2,3,4,5); endchar; % Normal form of porrectus % Cannot be postpended beginchar("u",.8em#,cap#,dep#) "porrectus (u)"; x1 := 0; y1 := -d; x2 := 1/3w; y2 := h; x3 := 2/3w; y3 := -d; x4 := w; y4 := 0; x5 := w; y5 := h; pickpen; draw z1{1,2}..z2..z3..{up}z4--z5; penlabels(1,2,3,4,5); endchar; % torculus % Can be postpended by virga, clivis, porrectus, pressus, cephalicus % or low liquescens beginchar("a",em#,cap#,dep#) "torculus (a)"; x1 := 0; y1 := 0; x2 := 1/8w; y2 := -1/2d; x3 := 1/2w; y3 := h; x4 := 7/8w; y4 := -1/2d; x5 := w; y5 := y1; pickpen; draw z1{down}..z2{right}..z3..{right}z4..{up}z5; penlabels(1,2,3,4,5); endchar; %%%%%%%%%%%%%%%%%% % pressi def pressus = x1 := 0; y1 := -d; x2 := 1/4w; y2 := h; x3 := 2/4w; y3 := 6/8h; x4 := 3/4w; y4 := h; x5 := w; y5 := y3; pickpen; draw z1{1,2}..z2{right}..{down}z3 & z3{up}..z4..{down}z5; penlabels(1,2,3,4,5); enddef; def compound_pressus = x1 := 0; y1 := 0; x2 := 1/4w; y2 := h; x3 := 2/4w; y3 := 6/8h; x4 := 3/4w; y4 := h; x5 := w; y5 := y3; pickpen; draw z1{up}..z2{right}..{down}z3 & z3{up}..z4..{down}z5; penlabels(1,2,3,4,5); enddef; % simple pressus % Cannot be postpended (see pressus liquescens, below) beginchar(":",.7em#,cap#,dep#) "pressus (:)"; pressus; endchar; % compound form of simple pressus % Cannot be postpended (see pressus liquescens, below) beginchar("[",.7em#,cap#,dep#) "pressus ([)"; compound_pressus; endchar; % pressus subpunctis % Cannot be postpended beginchar(";",.7em#,cap#,dep#) "pressus subpunctis (;)"; pressus; x6 := x3; y6 := 1/2h; pickdot; draw z6; penlabels(6); endchar; % Compound form of pressus subpunctis % Cannot be postpended beginchar("]",.7em#,cap#,dep#) "pressus subpunctis (])"; compound_pressus; x6 := x3; y6 := 1/2h; pickdot; draw z6; penlabels(6); endchar; % pressus liquescens % (formed as a single neume, rather than as a compound % of a pressus and a liquescens, because the liquescens % curves so much under the body of the pressus) % Cannot be postpended beginchar("m",.7em#,cap#,dep#) "pressus liquescens (m)"; pressus; x6 := x3; y6 := -d; draw z5{down}..z6; penlabels(1,2,3,4,5,6); endchar; % compound form of pressus liquescens % Cannot be postpended beginchar("M",.7em#,cap#,dep#) "pressus liquescens (M)"; compound_pressus; x6 := x3; y6 := -d; draw z5{down}..z6; penlabels(1,2,3,4,5,6); endchar; %%%%%%%%%%%%%%%%%%%%%%%%%%%%% % quilismae def quilisma = x1 := 1/9w; y1 := 0; x2 := 2/8w; y2 := -d; x3 := 4/8w; y3 := y1; x4 := 6/8w; y4 := y2; x5 := w; y5 := 0; pickpen; draw z1..z2..{up}z3 & z3{down}..z4..{up}z5; enddef; % Compound form of quilisma % Can be postpended by virga, clivis, porrectus, pressus, cephalicus beginchar("W",.7em#,cap#,dep#); "compound from of quilisma (W)"; quilisma; penlabels(1,2,3,4,5); endchar; % Normal from of quilisma % Cannot be postpended beginchar("w",.7em#,cap#,dep#); "quilisma (w)"; quilisma; x6 := 4/3w; y6 := h; draw z5{up}..{right}z6; penlabels(1,2,3,4,5,6); endchar; %%%%%%%%%%%%%%%%%%%%%%%%%%%% % little, bitty, discrete notes % (puncta, strophae and orisci) % punctum beginchar(".",.05em#,cap#,dep#) "punctum (.)"; x1 := 1/2w; y1 := 0; pickdot; draw z1; penlabels(1); endchar; %% round_punctum %% This is the same as the regular punctum. %% It's here just to satisfy any o's set up for the other font. beginchar("o",.05em#,cap#,dep#) "roundpunctum (o)"; x1 := 1/2w; y1 := 0; pickdot; draw z1; penlabels(1); endchar; % stropha beginchar(",",1/16em#,cap#,dep#) "stropha (,)"; x1 := 0; y1 := 0; x2 := w; y2 := -1/2d; x3 := x1; y3 := -d; pickpen; draw z1..z2..z3; penlabels(1,2,3); endchar; % oriscus beginchar("s",1/8em#,cap#,dep#) "oriscus (s)"; x1 := 1/2w; y1 := d; x2 := 0; y2 := 1/2d; x3 := x1; y3 := 0; x4 := w; y4 := -1/2d; x5 := x1; y5 := -d; pickpen; draw z1..z2..z3..z4..z5; penlabels(1,2,3,4,5); endchar; %%%%%%%%%%%%%%%%%%%%%% % liquescent notes % (epiphoni, cephalici and liquescensi % compound form of epiphonus beginchar("D",.25em#,cap#,dep#) "compound form of epiphonus (D)"; x1 := 0; y1 := 0; x2 := x1; y2 := -d; x3 := w; y3 := 0; pickpen; draw z1..z2..{up}z3; penlabels(1,2,3); endchar; % epiphonus % Cannot be postpended beginchar("d",.5em#,cap#,dep#) "epiphonus (d)"; x1 := 1/3w; y1 := 1/2h; x2 := x1; y2 := 0; x3 := w; y3 := h; pickpen; draw z1..z2..{right}z3; penlabels(1,2,3); endchar; % Compound form of cephalicus beginchar("P",.5em#,cap#,dep#) "cephalicus (P)"; x1 := 1/3w; y1 := 1/2h; x2 := 1/2w; y2 := h; x3 := 0; y3 := 0; pickpen; draw z1{right}..{left}z2..{down}z3; penlabels(1,2,3); endchar; % Simple form of cephalicus % (The twist at the end looks nicer, but doesn't connect well) beginchar("p",.5em#,cap#,dep#) "cephalicus (p)"; x1 := 1/3w; y1 := 1/2h; x2 := 1/2w; y2 := h; x3 := 0; y3 := -d; pickpen; draw z1{right}..{left}z2..{(-1,-1)}z3; penlabels(1,2,3); endchar; def liquescens = x2 := x1; y2 := y1-h; pickpen; draw z1{right}..{(-1,-1)}z2; penlabels(1,2); enddef; beginchar("j",1/2em#,cap#,dep#) "liquescens (j)"; x1 := 0; y1 := 0; x2 := 1/2w; y2 := h; x3 := 1/2w; y3 := -2d; pickpen; draw z1{up}..z2{right}..{(-1,-1)}z3; penlabels(1,2,3); endchar; beginchar("J",1/4em#,cap#,dep#) "compound form of liquescens (J)"; x1 := 0; y1 := 0; x2 := x1; y2 := y1-h; pickpen; draw z1{right}..{(-1,-1)}z2; penlabels(1,2); endchar; end