% neumes.mf % font for Hildegard's neumes mode_setup; em#:=10pt#; cap#:=8pt#; dep#:=2pt#; dotsize#:=8pt#; %%%% definitions for using a ballpoint pen def pickpen = pickup pencircle scaled .8pt; enddef; def simple_punctum = draw z6..z7..cycle; enddef; def tailed_punctum = draw z1..z2..cycle; enddef; %%% definitions for using a quill %def pickpen = pickup pencircle xscaled .8pt yscaled .2pt rotated 45; enddef; %def simple_punctum = draw z6..z7; enddef; %def tailed_punctum = draw z1..z2..z1; enddef; %screenstrokes; % macro to clear the screen %def cc = clearit; showit; enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % straight strong notes % (virgae and pedes) def virga = x1 := w; y1 := h; x2 := x1; y2 := 0; pickpen; draw z1--z2; 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 := 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; def porrectus = x1 := 0; y1 := 0; x2 := 1/3w; y2 := h; x3 := 2/3w; y3 := -d; x4 := w; y4 := 0; pickpen; draw z1{up}..z2..z3..{up}z4; enddef; % Compound form of porrectus % Can be postpended by clivis, porrectus, pressus, cephalicus % or low liquescens beginchar("U",.8em#,cap#,dep#) "compound form of porrectus (U)"; porrectus; penlabels(1,2,3,4); endchar; % Normal form of porrectus % Cannot be postpended beginchar("u",.8em#,cap#,dep#) "porrectus (u)"; porrectus; x5 := w; y5 := h; draw 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 := 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; enddef; % simple pressus % Cannot be postpended (see pressus liquescens, below) beginchar(":",.7em#,cap#,dep#) "pressus (:)"; pressus; penlabels(1,2,3,4,5); endchar; % pressus subpunctis % Cannot be postpended beginchar(";",.7em#,cap#,dep#) "pressus subpunctis (;)"; pressus; x6 := x3; y6 := 1/2h; x7 := x6+dotsize#; y7 := y6-dotsize#; simple_punctum; penlabels(1,2,3,4,5,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; %%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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 := -dotsize#; x2 := x1+dotsize#; y2 := 0; pickpen; tailed_punctum; 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