]> git.donarmstrong.com Git - lilypond.git/blob - mf/feta-solfa.mf
865fe79b9d2fa6b35ff494875e18c9328af0b8ad
[lilypond.git] / mf / feta-solfa.mf
1 % solfa.mf - implements solfa shaped notes
2 %
3 % (c) 2001--2005 Glen Prideaux <glenprideaux@iname.com>
4
5 % We can use the regular distorted-elliptical head in the feta font
6 % for the sol head, but we can't use the triangle or diamond heads for
7 % the do or me because they're too narrow and their lines too thin.
8
9 fet_begingroup("solfa");
10
11 noteheight#:=staff_space# + overdone_heads * stafflinethickness#;
12 define_pixels(noteheight);
13
14 fet_endgroup("solfa")
15
16 def drawdoshape =
17   save noteshape, noteishape, dx, dy, ai_a, bi_b;
18   path noteshape, noteishape;
19   noteshape = noteishape = triangle;
20   (dx,dy)=(0,0.0);
21   (ai_a,bi_b)=(i_o,i_o);
22   draw_solfa_note_shape;
23 enddef;
24
25
26 fet_beginchar("Whole dohead", "s0do")
27   pickup pencircle scaled blot_diameter;
28   save a_b, i_o;
29   a_b = 1.8;
30   i_o = 0.6;
31
32   drawdoshape;
33 fet_endchar;
34   
35 fet_beginchar("Half dohead", "s1do")
36   save a_b, i_o;
37   a_b = 1.5;
38   i_o = 0.6;
39
40   drawdoshape;
41 fet_endchar;
42   
43 fet_beginchar("Quart dohead", "s2do")
44   save a_b, noteshape;
45   path noteshape;
46   a_b = 1.54;
47   
48   noteshape = triangle;
49   draw_solfa_quarter_note_shape;
50
51 fet_endchar;
52 save reshape; path reshape;
53 reshape = (-1,1)--(-1,0.2){down} ... (0,-1) ... {up}(1,0.2)--(1,1)--cycle;
54
55 fet_beginchar("Whole rehead", "s0re")
56   save a_b, ai_a, bi_b, dx, dy, noteshape, noteishape;
57   path noteshape, noteishape;
58   noteshape = reshape;
59   noteishape = reshape;
60   a_b = 1.8;
61   bi_b = 0.65;
62   ai_a = 0.8;
63   (dx,dy)=(0,-0.1);
64   draw_solfa_note_shape;
65 fet_endchar;
66
67 fet_beginchar("Half rehead", "s1re")
68   save a_b, ai_a, bi_b, dx, dy, noteshape, noteishape;
69   path noteshape, noteishape;
70   noteshape = reshape;
71   noteishape = reshape;
72   a_b = 1.5;
73   bi_b = 0.65;
74   ai_a = 0.8;
75   (dx,dy)=(0,-0.1);
76   draw_solfa_note_shape;
77 fet_endchar;
78
79 fet_beginchar("Quart rehead", "s2re")
80   save a_b, noteshape;
81   path noteshape;
82   a_b = 1.54;
83   
84   noteshape = reshape;
85   draw_solfa_quarter_note_shape;
86 fet_endchar;
87   
88
89
90
91 % fa - scalene triangle:
92 %         for stem up: (0,h/2) -- (w,h/2) -- (w,-h/2) -- cycle;
93 %       for stem down: (w,-h/2) -- (0,1h/2) -- (0,h/2) -- cycle;
94 %       (one is a 180 degree rotation of the other)
95 % stem attachment: (doesn't much matter)
96
97 save fashape; path fashape;
98 fashape = (-1,1)--(1,1)--(1,-1)--cycle;
99
100 fet_beginchar("Whole fahead", "s0fa")
101   save a_b, ai_a, bi_b, dx, dy, noteshape, noteishape;
102   path noteshape, noteishape;
103   noteshape = fashape;
104   noteishape = fashape;
105   a_b = 1.8;
106   bi_b = 0.6;
107   ai_a = 0.6;
108   (dx,dy)=(0.2,.05);
109   draw_solfa_note_shape;
110 fet_endchar;
111
112 fet_beginchar("Half stemup fahead", "u1fa")
113   save a_b, ai_a, bi_b, dx, dy, noteshape, noteishape;
114   path noteshape, noteishape;
115   noteshape = fashape;
116   noteishape =  fashape;
117   a_b = 1.5;
118   bi_b = 0.6;
119   ai_a = 0.6;
120   (dx,dy)=(0.2,.05);
121   draw_solfa_note_shape;
122 fet_endchar;
123
124 fet_beginchar("Quart stemup fahead", "u2fa")
125   save a_b, noteshape;
126   path noteshape;
127   a_b = 1.54;
128   
129   noteshape = fashape;
130   draw_solfa_quarter_note_shape;
131 fet_endchar;
132
133 fet_beginchar("Half stemdn fahead", "d1fa")
134   save a_b, ai_a, bi_b, dx, dy, noteshape, noteishape;
135   path noteshape, noteishape;
136   noteshape = fashape rotated 180;
137   noteishape =  fashape rotated 180;
138   a_b = 1.5;
139   bi_b = 0.6;
140   ai_a = 0.6;
141   (dx,dy)=(-0.2,-.05);
142   draw_solfa_note_shape;
143 fet_endchar;
144
145 fet_beginchar("Quart stemdn fahead", "d2fa")
146   save a_b, noteshape;
147   path noteshape;
148   a_b = 1.54;
149   
150   noteshape = fashape rotated 180;
151   draw_solfa_quarter_note_shape;
152 fet_endchar;
153
154
155 % sol - oval ... the standard "round" note
156
157
158 % la - rectangle: (0,h/2)--(w,h.2)--(w,-h/2)--(0,-h/2)--cycle;
159 % stem attachment: (doesn't much matter)
160 save lashape; path lashape;
161 lashape = (-1,-1)--(-1,1)--(1,1)--(1,-1)--cycle;
162
163 fet_beginchar("Whole lahead", "s0la")
164   save a_b, ai_a, bi_b, dx, dy, noteshape, noteishape;
165   path noteshape, noteishape;
166   noteshape = lashape;
167   noteishape = lashape;
168   a_b = 1.8;
169   bi_b = 0.6;
170   ai_a = 0.85;
171   (dx,dy)=(0,0);
172   draw_solfa_note_shape;
173 fet_endchar;
174
175 fet_beginchar("Half lahead", "s1la")
176   save a_b, ai_a, bi_b, dx, dy, noteshape, noteishape;
177   path noteshape, noteishape;
178   noteshape = lashape;
179   noteishape =  lashape;
180   a_b = 1.5;
181   bi_b = 0.6;
182   ai_a = 0.85;
183   (dx,dy)=(0,0);
184   draw_solfa_note_shape;
185 fet_endchar;
186
187 fet_beginchar("Quart lahead", "s2la")
188   save a_b, noteshape;
189   path noteshape;
190   a_b = 1.54;
191   
192   noteshape = lashape;
193   draw_solfa_quarter_note_shape;
194 fet_endchar;
195
196
197
198 % ti - an "icecream cone" with about 2/3 of
199 % the height in the cone and only 1/3 in the curved top:
200 %      (0,h/6)--(w/2,-h/2)--(w,h/6)..(w/2,h/2)..cycle;
201 % stem attachment: h/6
202 save tishape; path tishape;
203 tishape = (0,-1)--(-1,0.3)..(0,1)..(1,0.3)--cycle;
204
205 fet_beginchar("Whole tihead", "s0ti")
206   save a_b, ai_a, bi_b, dx, dy, noteshape, noteishape;
207   path noteshape, noteishape;
208   noteshape = tishape;
209   noteishape = tishape;
210   a_b = 1.8;
211   bi_b = 0.75;
212   ai_a = 0.75;
213   (dx,dy)=(0,-.02);
214   draw_solfa_note_shape;
215 fet_endchar;
216
217 fet_beginchar("Half tihead", "s1ti")
218   save a_b, ai_a, bi_b, dx, dy, noteshape, noteishape;
219   path noteshape, noteishape;
220   noteshape = tishape;
221   noteishape =  tishape;
222   a_b = 1.5;
223   bi_b = 0.75;
224   ai_a = 0.75;
225   (dx,dy)=(0,-.02);
226   draw_solfa_note_shape;
227 fet_endchar;
228
229 fet_beginchar("Quart tihead", "s2ti")
230   save a_b, noteshape;
231   path noteshape;
232   a_b = 1.54;
233   
234   noteshape = tishape;
235   draw_solfa_quarter_note_shape;
236 fet_endchar;
237
238