% Feta (not the Font-En-Tja) music font -- Staff braces
% This file is part of LilyPond, the GNU music typesetter.
%
-% Copyright (C) 1997--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% Copyright (C) 1997--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
% Jan Nieuwenhuizen <janneke@gnu.org>
%
-% LilyPond is free software: you can redistribute it and/or modify
+% The LilyPond font is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
-% (at your option) any later version.
+% (at your option) any later version, or under the SIL Open Font License.
%
% LilyPond is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% You should have received a copy of the GNU General Public License
% along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
-
-% We have to reduce the pixel-per-point value to
-% support large brace glyphs in case we are using MetaPost
-% (which by default sets `hppp' to 49.80244, regardless of
-% the used `mag' value)
-
-if known miterlimit:
- bpppix_ := 0.2; % ten times larger than original
-
- numeric mm, pt, dd, bp, cm, pc, cc, in;
-
- mm * bpppix_ = 2.83464;
- pt * bpppix_ = 0.99626;
- dd * bpppix_ = 1.06601;
- bp * bpppix_ = 1;
- cm * bpppix_ = 28.34645;
- pc * bpppix_ = 11.95517;
- cc * bpppix_ = 12.79213;
- in * bpppix_ = 72;
-
- hppp := pt;
- vppp := pt;
-fi;
-
-
-input feta-autometric;
-input feta-macros;
-
-staffsize# := 20 pt#; %% arbitrary
-
-input feta-params;
-
%
% We must let the design increase for each font to make sure that mftrace
% doesn't jack up the resolution too highly for the longer braces.
%
-fet_beginfont ("feta-braces-" & char (97 + font_count),
- (font_count + 1) * 20, "fetaBraces");
-
-mode_setup;
-
-
save code, braces_per_font;
code := 64;
braces_per_font := 64;
y0 = y1;
x0 = x1 - 2/6 thin;
- pendir = unitvector (x3 - x1, y3l / 6 - y1);
+ pendir = unitvector (x3 - x1, y3l / 8 - y1);
penangle = angle pendir - 90;
penpos3 (thin, penangle);
penpos2 (thick, angle (z3 - z1) - 90);
- penpos1 (2/3 thin, penangle);
+ penpos1 (-2 * (x0 - x1), penangle);
penlabels (1, 2, 3);
labels (0);
enddef;
-save stafflinethickness;
+save linethickness;
save increment;
+save last_brace_number;
+save min_width;
+save max_width;
+save min_thin;
+save max_thin;
linethickness := 0.5 pt#;
increment := 0.5 pt#;
+last_brace_number := braces_per_font * 9 - 1;
+min_width := 2 pt#;
+max_width := 20 pt#;
+min_thin := 0.2 pt#;
+max_thin := 1.25 pt#;
y := 10 pt#;
for i := 0 step 1 until font_count:
errmessage "please report to <bug-lilypond@gnu.org>";
fi;
- % x should be about one staff space, taking brace to have
- % default height of 3 staffs, this yields height / 3 / 4 = 12
- % but 15 looks better
- x := y / 15;
+ x := (y / last_brace_number) [min_width, max_width];
increment := x / 10;
- linethickness := min (0.5 pt#, y / 150);
+ linethickness := (y / last_brace_number) [min_thin, max_thin];
if i = font_count:
draw_brace (y, x, linethickness, number);
fi;
number := number + 1;
endfor;
endfor;
-
-fet_endfont ("feta-braces");