]> git.donarmstrong.com Git - lilypond.git/blob - mf/feta-accordion.mf
8367a5ae4b78cfffb279d866655fb992a354724e
[lilypond.git] / mf / feta-accordion.mf
1 % -*- Fundamental -*-
2
3 accreg_dot_size# := .5interline#;
4
5 % 'strange turning path' in accBayanbase:
6 %     mf '\mode=laserjet; input feta11'
7 % accreg_linethickness# := 1.3stafflinethickness#;
8
9 % so, do thinner lines, for now
10 accreg_linethickness# := 1.2stafflinethickness#;
11
12 % This dimention is the same on all registersymbols.
13 % The different symbols should calculate their other
14 % dimensions from this and accreg_dot_size
15 accreg_lh# := 1.0interline#;
16
17 define_pixels(accreg_dot_size, accreg_linethickness, accreg_lh);
18 pen accreg_pen;
19 accreg_pen := pencircle xscaled accreg_linethickness yscaled 0.7accreg_linethickness;
20
21 fet_beginchar("accDiscant", "accDiscant", "accDiscant")
22         save r, sx;
23         r# = 3/2accreg_lh#;
24         define_pixels(r);
25 %       set_char_box(r#, r#, 2r#, 0);
26         set_char_box(r#, r#, 0r#, 2r#); %% arg3 = under linjen, arg4 = over
27         pickup accreg_pen;
28         draw fullcircle scaled 2r;
29         sx = cosd(19.471221);
30         draw (-sx*r, r/3)--(sx*r, r/3);
31         draw (-sx*r, -r/3)--(sx*r, -r/3);
32         currentpicture := currentpicture shifted (0, r);
33 fet_endchar;
34
35 fet_beginchar("accDot", "accDot", "accDot")
36         set_char_box(accreg_dot_size#, accreg_dot_size#, 0, 0);
37         pickup pencircle scaled accreg_dot_size;
38         draw(0, 0);
39 fet_endchar;
40
41 fet_beginchar("accFreebase", "accFreebase", "accFreebase")
42         save r;
43         r#= accreg_lh#;
44         define_pixels(r);
45         set_char_box(r#, r#, 0, 2r#);
46         pickup accreg_pen;
47         draw fullcircle scaled 2r;
48         draw (-r, 0)--(r, 0);
49         currentpicture := currentpicture shifted (0, r);
50 fet_endchar;
51
52 fet_beginchar("accStdbase", "accStdbase", "accStdbase")
53         save r, sx;
54         r# = 2accreg_lh#;
55         define_pixels(r);
56         sx = cosd 30 ;
57         set_char_box(r#, r#, 0, 2r#);
58         pickup accreg_pen;
59         draw fullcircle scaled 2r;
60         draw (-r, 0)--(r, 0);
61         draw (-sx*r, r/2)--(sx*r, r/2);
62         draw (-sx*r, -r/2)--(sx*r, -r/2);
63         currentpicture := currentpicture shifted (0, r);
64 fet_endchar;
65
66 fet_beginchar("accBayanbase", "accBayanbase", "accBayanbase")
67         save lh;
68         lh = accreg_lh;
69 %       set_char_box(accreg_lh#, accreg_lh#, 3accreg_lh#, 0);
70         set_char_box(accreg_lh#, accreg_lh#, 0, 3accreg_lh#);
71         pickup pencircle scaled accreg_linethickness;
72         draw (0, 0)--(2w, 0)--(2w, 3accreg_lh)--(0, 3accreg_lh)--(0, 0);
73         draw (0, accreg_lh)--(2w, accreg_lh);
74         draw (0, 2accreg_lh)--(2w, 2accreg_lh);
75         currentpicture := currentpicture shifted (-w, 0);% -3lh);
76 fet_endchar;
77
78 def def_B(expr w, h) = 
79         pickup pencircle scaled 0.1pt;
80         penpos10(thin, -90);
81         penpos11(thin, -90);
82         penpos12(thick, 0);
83         penpos13(thin, 90);
84         penpos14(thin, 90);
85         penpos15(thick, 180);
86         penpos16(thin, -90);
87         penpos17(thin, -90);
88         penpos18(thick, 0);
89         penpos19(thick, 0);
90         z10 = (0, 0);
91         z11 = (cOne*w, 0);
92         z12 = (w, .5mb*h);
93         z13 = (cTwo*w, mb*h);
94         z14 = (2thick, mb*h);
95         z15 = (.94w, h-.5mt*h);
96         z16 = z13 + (0, mt*h);
97         z17 = (0, h);
98         z18 = (1.5thick, 0);
99         z19 = (1.5thick, h);
100 enddef;
101
102 def def_S(expr w, h) =
103         pickup pencircle scaled 0.02pt;
104         penpos1(thin, 180);
105         penpos2(thin, -90);
106         penpos3(thick, 0);
107         penpos4(.5thick, 90);
108         penpos5(thick, 0);
109         penpos6(thin, -90);
110         penpos7(thin, 180);
111         penpos8(thin, 180);
112         penpos9(thin, 0);
113         z1 = (0, hs);
114         z2 = (w/2, 0);
115         z3 = (w-.5thick, .5mb*h);
116         z4 = (w/2, mb*h);
117         z5 = (.5thick, h-.5mt*h);
118         z6 = (w/2, h);
119         z7 = (w, h-hs);
120         z8 = (0, y2r);
121         z9 = (w, y6l);
122         path bue, bueoverst;
123         bue=z2{left}..z1{up};
124         numeric t;
125         t:=xpart(bue intersectiontimes(z8l--z7l));
126         show t;
127         bueoverst=z6{right}..z7{down};
128 enddef;
129
130 def def_some_vars =
131         save hs, mb, mt, thin, thick, height, width, cOne, cTwo;
132         width = .8staffsize;
133         height = 2.4interline;
134         thin = 0.05interline;
135         thick = 0.2interline;
136         hs = 0.4interline;
137         mb = .53;
138         mt = .47;       
139         cOne = 0.65;
140         cTwo = 0.60;
141 enddef;
142
143 fet_beginchar("accSB", "accSB", "accSB")
144         set_char_box(.4staffsize#, .4staffsize#, 0, 2.4interline#);
145         def_some_vars;
146         def_B(.35width, .7height);
147         penstroke z10e--z11e{right}..z12e{up}..z13e{left}--z14e;
148         penstroke z13e{right}..z15e{up}..z16e{left}--z17e;
149         penstroke z18e--z19e;
150         pickup pencircle scaled .5thick;
151         drawdot (.37width, .10thick);
152         currentpicture := currentpicture shifted(.40width, 0);
153
154         def_S(.35width, .7height);
155 %       penlabels(1, 2, 3, 4, 5, 6, 7, 8, 9);
156         filldraw z1r--z8r--z8l--subpath(t, 1) of bue--cycle;
157         filldraw subpath(t, 1) of bueoverst--z7l--z9r--z9l--cycle;
158         penstroke z1e{down}..z2e{right}..z3e
159                 ..z4e
160                 ..z5e..z6e{right}...z7e{down};
161         pickup pencircle scaled .5thick;
162         drawdot (.37width, .10thick);
163         currentpicture := currentpicture shifted (-.40width, -.85height);
164         draw (-.5width, 0)--(.5width, 0)--(.5width, -height)
165                 --(-.5width, -height)--(-.5width, 0);
166         currentpicture := currentpicture shifted (0, 2.4interline);
167 fet_endchar;
168
169 fet_beginchar("accBB", "accBB", "accBB")
170         set_char_box(.4staffsize#, .4staffsize#, 0, 2.4interline#);
171         def_some_vars;
172         def_B(.35width, .7height);
173         penstroke z10e--z11e{right}..z12e{up}..z13e{left}--z14e;
174         penstroke z13e{right}..z15e{up}..z16e{left}--z17e;
175         penstroke z18e--z19e;
176         pickup pencircle scaled .5thick;
177         drawdot(.37width, .10thick);
178         currentpicture := currentpicture shifted (.40width, 0);
179         penstroke z10e--z11e{right}..z12e{up}..z13e{left}--z14e;
180         penstroke z13e{right}..z15e{up}..z16e{left}--z17e;
181         penstroke z18e--z19e;
182         drawdot(.37width, .10thick);
183         currentpicture := currentpicture shifted(-.40width, -.85height);
184         draw (-.5width, 0)--(.5width, 0)--(.5width, -height)
185                 --(-.5width, -height)--(-.5width, 0);
186         currentpicture := currentpicture shifted (0, 2.4interline);
187 fet_endchar;
188
189
190 fet_beginchar("accOldEE", "accOldEE", "accOldEE")
191         set_char_box(interline#, interline#, 0, 2interline#);
192         show w;
193         show h;
194         r = interline;
195         lr = .3interline;
196         ir = .6interline;
197         pickup accreg_pen;
198         draw fullcircle scaled 2r;
199         pickup penrazor;
200         filldraw fullcircle scaled lr;
201         z1 = (ir, 0);
202         z2 = (0, 0) + ir*(dir 45);
203         z3 = (0, ir);
204         numeric pp;
205         for pp := 0 step 45 until 360:
206                 filldraw fullcircle scaled lr shifted (ir*(dir pp));
207         endfor;
208         for pp := 0 step 45 until 360:
209                 filldraw ((0, 0)--(.2lr, ir)--(-.2lr, ir)--cycle) rotated pp;
210         endfor
211         currentpicture := currentpicture shifted (0, r);
212 fet_endchar;
213
214 fet_beginchar("accOldEES", "accOldEES", "accOldEES")
215         set_char_box(interline#, interline#, 0, 2interline#);
216         save r, shy;
217         r = interline;
218         shy = .3;
219         pickup accreg_pen;
220         draw fullcircle scaled 2r;
221         currentpicture := currentpicture shifted (w/2, shy*h);
222         save thin, thick, sw, ch, cw, mb, mt;
223         ch = .6h;
224         cw = .8w;
225         thin = .05cw;
226         thick = .17w;
227         mb = .53; mt = .47;
228         sw = .8thick;
229         z1 = (0, ch-.5thin); penpos1 (thin, -90);
230         z2 = (.7cw, y1); penpos2 (thin, -90);
231         z3 = (cw, (mb+.5mt)*ch); penpos3(thick, -180);
232         z4 = (.65cw, mb*ch); penpos4(thin, 90);
233         z5 = (sw+thick, mb*ch); penpos5(thin, 90);
234         z6 = (.9cw, .5mb*ch); penpos6(thick, 0);
235         z7 = (1.2cw, 0); penpos7(thin, 90);
236         z8 = (1.3cw, .2mb*ch); penpos8(thin, 180);
237         penlabels(1, 2, 3, 4, 5, 6, 7, 8);
238         pickup pencircle scaled 0.001pt;
239         filldraw (0, 0)--(0, thin)--(sw, thin)--(sw, ch-thin)
240                 --(sw+thick, ch-thin)--(sw+thick, thin)
241                 --(2sw+thick, thin)--(2sw+thick, 0)--cycle;
242         penstroke z1e--z2e{right}..z3e..z4e{left}--z5e;
243         penstroke z4e{right}..z6e{down}..z7e{right}..z8e{up};
244         currentpicture := currentpicture shifted (-w/2, -shy*h);
245         currentpicture := currentpicture shifted (0, r);
246 fet_endchar;