3 accreg_dot_size# := .7interline#;
4 accreg_linethickness# := 1.3stafflinethickness#;
6 % This dimention is the same on all registersymbols.
7 % The different symbols should calculate their other
8 % dimensions from this and accreg_dot_size
9 accreg_lh# := 1.2interline#;
11 define_pixels(accreg_dot_size, accreg_linethickness, accreg_lh);
13 accreg_pen := pencircle xscaled accreg_linethickness yscaled 0.7accreg_linethickness;
14 def draw_discant_reg(expr A, B, C, D, E, F) =
18 % set_char_box(r#, r#, 2r#, 0);
19 set_char_box(r#, r#, 0r#, 2r#); %% arg3 = under linjen, arg4 = over
21 draw fullcircle scaled 2r;
23 draw (-sx*r, r/3)--(sx*r, r/3);
24 draw (-sx*r, -r/3)--(sx*r, -r/3);
26 pickup pencircle scaled accreg_dot_size;
27 if A = 1: drawdot (0, 2/3r); fi
28 if B = 1: drawdot (r/2, 0); fi
29 if C = 1: drawdot (0, 0); fi
30 if D = 1: drawdot (-r/2, 0); fi
31 if E = 1: drawdot (0, -2/3r); fi
32 if F = 1: drawdot (-.25r, -.642r); drawdot (.25r, -.642r); fi
33 currentpicture := currentpicture shifted (0, r);
36 def draw_freebass_reg(expr rFour, rEight) =
40 set_char_box(r#, r#, 0, 2r#);
42 draw fullcircle scaled 2r;
44 pickup pencircle scaled accreg_dot_size;
45 if rFour = 1: draw (0, r/2); fi
46 if rEight = 1: draw (0, -r/2); fi
47 currentpicture := currentpicture shifted (0, r);
50 def draw_stdbass_reg(expr A, B, C, D, E) =
55 set_char_box(r#, r#, 0, 2r#);
57 draw fullcircle scaled 2r;
59 draw (-sx*r, r/2)--(sx*r, r/2);
60 draw (-sx*r, -r/2)--(sx*r, -r/2);
61 pickup pencircle scaled accreg_dot_size;
62 if A = 1: draw (0, -3/4r); fi
63 if B = 1: draw (0, -1/4r); fi
64 if C = 1: draw (0, 1/4r); fi
65 if D = 1: draw (0, 3/4r); fi
66 if E = 1: draw (1/2r, 0); fi
67 currentpicture := currentpicture shifted (0, r);
70 def draw_bayanbass_reg_sign(expr nTwo, nEight) =
73 % set_char_box(accreg_lh#, accreg_lh#, 3accreg_lh#, 0);
74 set_char_box(accreg_lh#, accreg_lh#, 0, 3accreg_lh#);
75 pickup pencircle scaled accreg_linethickness;
76 draw (0, 0)--(2w, 0)--(2w, 3accreg_lh)--(0, 3accreg_lh)--(0, 0);
77 draw (0, accreg_lh)--(2w, accreg_lh);
78 draw (0, 2accreg_lh)--(2w, 2accreg_lh);
80 pickup pencircle scaled accreg_dot_size;
81 if nTwo = 1: draw (w, 5/2lh); fi
82 if nEight = 1: draw (w, lh/2); fi
83 if nEight = 2: draw (5/8w, lh/2); draw (11/8w, lh/2); fi
84 currentpicture := currentpicture shifted (-w, 0);% -3lh);
87 fet_beginchar("accDiscant", "accDiscant", "accDiscant")
88 draw_discant_reg(0, 0, 0, 0, 0, 0);
91 fet_beginchar("accDiscantF", "accDiscantF", "accDiscantF")
92 draw_discant_reg(1, 0, 0, 0, 0, 0);
95 fet_beginchar("accDiscantEh", "accDiscantEh", "accDiscantEh")
96 draw_discant_reg(0, 1, 0, 0, 0, 0);
99 fet_beginchar("accDiscantE", "accDiscantE", "accDiscantE")
100 draw_discant_reg(0, 0, 1, 0, 0, 0);
103 fet_beginchar("accDiscantFE", "accDiscantFE", "accDiscantFE")
104 draw_discant_reg(1, 0, 1, 0, 0, 0);
107 fet_beginchar("accDiscantFEh", "accDiscantFEh", "accDiscantFEh")
108 draw_discant_reg(1, 1, 0, 0, 0, 0);
111 fet_beginchar("accDiscantEE", "accDiscantEE", "accDiscantEE")
112 draw_discant_reg(0, 1, 0, 1, 0, 0);
115 fet_beginchar("accDiscantFEE", "accDiscantFEE", "accDiscantFEE")
116 draw_discant_reg(1, 1, 0, 1, 0, 0);
119 fet_beginchar("accDiscantEEE", "accDiscantEEE", "accDiscantEEE")
120 draw_discant_reg(0, 1, 1, 1, 0, 0);
123 fet_beginchar("accDiscantFEEE", "accDiscantFEEE", "accDiscantFEEE")
124 draw_discant_reg(1, 1, 1, 1, 0, 0);
127 fet_beginchar("accDiscantS", "accDiscantS", "accDiscantS")
128 draw_discant_reg(0, 0, 0, 0, 1, 0);
131 fet_beginchar("accDiscantFS", "accDiscantFS", "accDiscantFS")
132 draw_discant_reg(1, 0, 0, 0, 1, 0);
135 fet_beginchar("accDiscantES", "accDiscantES", "accDiscantES")
136 draw_discant_reg(0, 0, 1, 0, 1, 0);
139 fet_beginchar("accDiscantEhS", "accDiscantEhS", "accDiscantEhS")
140 draw_discant_reg(0, 1, 0, 0, 1, 0);
143 fet_beginchar("accDiscantFES", "accDiscantFES", "accDiscantFES")
144 draw_discant_reg(1, 0, 1, 0, 1, 0);
147 fet_beginchar("accDiscantFEhS", "accDiscantFEhS", "accDiscantFEhS")
148 draw_discant_reg(1, 1, 0, 0, 1, 0);
151 fet_beginchar("accDiscantEES", "accDiscantEES", "accDiscantEES")
152 draw_discant_reg(0, 1, 0, 1, 1, 0);
155 fet_beginchar("accDiscantFEES", "accDiscantFEES", "accDiscantFEES")
156 draw_discant_reg(1, 1, 0, 1, 1, 0);
159 fet_beginchar("accDiscantEEES", "accDiscantEEES", "accDiscantEEES")
160 draw_discant_reg(0, 1, 1, 1, 1, 0);
163 fet_beginchar("accDiscantFEEES", "accDiscantFEEES", "accDiscantFEEES")
164 draw_discant_reg(1, 1, 1, 1, 1, 0);
167 fet_beginchar("accDiscantSS", "accDiscantSS", "accDiscantSS")
168 draw_discant_reg(0, 0, 0, 0, 0, 1);
171 fet_beginchar("accDiscantESS", "accDiscantESS", "accDiscantESS")
172 draw_discant_reg(0, 0, 1, 0, 0, 1);
175 fet_beginchar("accDiscantEESS", "accDiscantEESS", "accDiscantEESS")
176 draw_discant_reg(0, 1, 0, 1, 0, 1);
179 fet_beginchar("accDiscantEEESS", "accDiscantEEESS", "accDiscantEEESS")
180 draw_discant_reg(0, 1, 1, 1, 0, 1);
183 fet_beginchar("accFreebass", "accFreebass", "accFreebass")
184 draw_freebass_reg(0, 0);
187 fet_beginchar("accFreebassF", "accFreebassF", "accFreebassF")
188 draw_freebass_reg(1, 0);
191 fet_beginchar("accFreebassE", "accFreebassE", "accFreebassE")
192 draw_freebass_reg(0, 1);
195 fet_beginchar("accFreebassFE", "accFreebassFE", "accFreebassFE")
196 draw_freebass_reg(1, 1);
199 fet_beginchar("accStdbass", "accStdbass", "accStdbass")
200 draw_stdbass_reg(0, 0, 0, 0, 0);
203 fet_beginchar("accStdbassM", "accStdbassM", "accStdbassM")
204 draw_stdbass_reg(1, 1, 1, 1, 1);
207 fet_beginchar("accStdbassBp", "accStdbassBp", "accStdbassBp")
208 draw_stdbass_reg(1, 1, 0, 0, 1);
211 fet_beginchar("accStdbassT", "accStdbassT", "accStdbassT")
212 draw_stdbass_reg(0, 1, 1, 1, 0);
215 fet_beginchar("accStdbassTp", "accStdbassTp", "accStdbassTp")
216 draw_stdbass_reg(0, 1, 1, 0, 0);
219 fet_beginchar("accBayanbass", "accBayanbass", "accBayanbass")
220 draw_bayanbass_reg_sign(1, 0);
223 fet_beginchar("accBayanbassT", "accBayanbassT", "accBayanbassT")
224 draw_bayanbass_reg_sign(1, 0);
227 fet_beginchar("accBayanbassE", "accBayanbassE", "accBayanbassE")
228 draw_bayanbass_reg_sign(0, 1);
231 fet_beginchar("accBayanbassTE", "accBayanbassTE", "accBayanbassTE")
232 draw_bayanbass_reg_sign(1, 1);
235 fet_beginchar("accBayanbassEE", "accBayanbassEE", "accBayanbassEE")
236 draw_bayanbass_reg_sign(0, 2);
239 fet_beginchar("accBayanbassTEE", "accBayanbassTEE", "accBayanbassTEE")
240 draw_bayanbass_reg_sign(1, 2);
243 def def_B(expr w, h) =
244 pickup pencircle scaled 0.1pt;
250 penpos15(thick, 180);
258 z13 = (cTwo*w, mb*h);
259 z14 = (2thick, mb*h);
260 z15 = (.94w, h-.5mt*h);
261 z16 = z13 + (0, mt*h);
267 def def_S(expr w, h) =
268 pickup pencircle scaled 0.02pt;
272 penpos4(.5thick, 90);
280 z3 = (w-.5thick, .5mb*h);
282 z5 = (.5thick, h-.5mt*h);
288 bue=z2{left}..z1{up};
290 t:=xpart(bue intersectiontimes(z8l--z7l));
292 bueoverst=z6{right}..z7{down};
296 save hs, mb, mt, thin, thick, height, width, cOne, cTwo;
298 height = 2.4interline;
299 thin = 0.05interline;
300 thick = 0.2interline;
308 fet_beginchar("accSB", "accSB", "accSB")
309 set_char_box(.4staffsize#, .4staffsize#, 0, 2.4interline#);
311 def_B(.35width, .7height);
312 penstroke z10e--z11e{right}..z12e{up}..z13e{left}--z14e;
313 penstroke z13e{right}..z15e{up}..z16e{left}--z17e;
314 penstroke z18e--z19e;
315 pickup pencircle scaled .5thick;
316 drawdot (.37width, .10thick);
317 currentpicture := currentpicture shifted(.40width, 0);
319 def_S(.35width, .7height);
320 % penlabels(1, 2, 3, 4, 5, 6, 7, 8, 9);
321 filldraw z1r--z8r--z8l--subpath(t, 1) of bue--cycle;
322 filldraw subpath(t, 1) of bueoverst--z7l--z9r--z9l--cycle;
323 penstroke z1e{down}..z2e{right}..z3e
325 ..z5e..z6e{right}...z7e{down};
326 pickup pencircle scaled .5thick;
327 drawdot (.37width, .10thick);
328 currentpicture := currentpicture shifted (-.40width, -.85height);
329 draw (-.5width, 0)--(.5width, 0)--(.5width, -height)
330 --(-.5width, -height)--(-.5width, 0);
331 currentpicture := currentpicture shifted (0, 2.4interline);
334 fet_beginchar("accBB", "accBB", "accBB")
335 set_char_box(.4staffsize#, .4staffsize#, 0, 2.4interline#);
337 def_B(.35width, .7height);
338 penstroke z10e--z11e{right}..z12e{up}..z13e{left}--z14e;
339 penstroke z13e{right}..z15e{up}..z16e{left}--z17e;
340 penstroke z18e--z19e;
341 pickup pencircle scaled .5thick;
342 drawdot(.37width, .10thick);
343 currentpicture := currentpicture shifted (.40width, 0);
344 penstroke z10e--z11e{right}..z12e{up}..z13e{left}--z14e;
345 penstroke z13e{right}..z15e{up}..z16e{left}--z17e;
346 penstroke z18e--z19e;
347 drawdot(.37width, .10thick);
348 currentpicture := currentpicture shifted(-.40width, -.85height);
349 draw (-.5width, 0)--(.5width, 0)--(.5width, -height)
350 --(-.5width, -height)--(-.5width, 0);
351 currentpicture := currentpicture shifted (0, 2.4interline);
355 fet_beginchar("accOldEE", "accOldEE", "accOldEE")
356 set_char_box(interline#, interline#, 0, 2interline#);
363 draw fullcircle scaled 2r;
365 filldraw fullcircle scaled lr;
367 z2 = (0, 0) + ir*(dir 45);
370 for pp := 0 step 45 until 360:
371 filldraw fullcircle scaled lr shifted (ir*(dir pp));
373 for pp := 0 step 45 until 360:
374 filldraw ((0, 0)--(.2lr, ir)--(-.2lr, ir)--cycle) rotated pp;
376 currentpicture := currentpicture shifted (0, r);
379 fet_beginchar("accOldEES", "accOldEES", "accOldEES")
380 set_char_box(interline#, interline#, 0, 2interline#);
385 draw fullcircle scaled 2r;
386 currentpicture := currentpicture shifted (w/2, shy*h);
387 save thin, thick, sw, ch, cw, mb, mt;
394 z1 = (0, ch-.5thin); penpos1 (thin, -90);
395 z2 = (.7cw, y1); penpos2 (thin, -90);
396 z3 = (cw, (mb+.5mt)*ch); penpos3(thick, -180);
397 z4 = (.65cw, mb*ch); penpos4(thin, 90);
398 z5 = (sw+thick, mb*ch); penpos5(thin, 90);
399 z6 = (.9cw, .5mb*ch); penpos6(thick, 0);
400 z7 = (1.2cw, 0); penpos7(thin, 90);
401 z8 = (1.3cw, .2mb*ch); penpos8(thin, 180);
402 penlabels(1, 2, 3, 4, 5, 6, 7, 8);
403 pickup pencircle scaled 0.001pt;
404 filldraw (0, 0)--(0, thin)--(sw, thin)--(sw, ch-thin)
405 --(sw+thick, ch-thin)--(sw+thick, thin)
406 --(2sw+thick, thin)--(2sw+thick, 0)--cycle;
407 penstroke z1e--z2e{right}..z3e..z4e{left}--z5e;
408 penstroke z4e{right}..z6e{down}..z7e{right}..z8e{up};
409 currentpicture := currentpicture shifted (-w/2, -shy*h);
410 currentpicture := currentpicture shifted (0, r);