From 92ed9ab3c0b98a1f6ffe6caa812870821583a116 Mon Sep 17 00:00:00 2001 From: Florian Jung Date: Sun, 17 Apr 2011 16:13:16 +0000 Subject: glyphs are now bundled with muse --- .../scoreglyphs/feta-original/feta-autometric.mf | 255 +++++++++++++++++++++ 1 file changed, 255 insertions(+) create mode 100644 muse2/share/scoreglyphs/feta-original/feta-autometric.mf (limited to 'muse2/share/scoreglyphs/feta-original/feta-autometric.mf') diff --git a/muse2/share/scoreglyphs/feta-original/feta-autometric.mf b/muse2/share/scoreglyphs/feta-original/feta-autometric.mf new file mode 100644 index 00000000..24a0e1b9 --- /dev/null +++ b/muse2/share/scoreglyphs/feta-original/feta-autometric.mf @@ -0,0 +1,255 @@ +% +% autometric.mf -- administrative MF routines +% +% source file of the Feta (not an acronym for Font-En-Tja) +% pretty-but-neat music font +% +% (c) 1997--2009 Han-Wen Nienhuys +% Jan Nieuwenhuizen +% +% These macros help create ascii logging output +% to automate generation of the lily tables. +% The output should be parsed by the mf-to-table script. + + +message "******************************************************"; +message "Using feta Autometric macros."; +message "order of messages: "; +message " NAME/CODE/BP/WD/DP/HT/WX/WY"; +message "******************************************************"; +message ""; + + +% font or database? +def fet_beginfont (expr name, size, encod) = + font_identifier := name & decimal size; + font_size size; + font_coding_scheme "asis"; + message "@{font@:GNU@:LilyPond@:" & name + & "@:" & decimal size + & "@:" & encod + & "@}"; + message ""; +enddef; + + +def fet_endfont = + message "@{tnof@}"; +enddef; + + +% group or table? +def fet_begingroup (expr name) = +begingroup; + save feta_group; + string feta_group; + + feta_group := name; + + message "@{group@:" & feta_group + & "@}"; + message ""; +enddef; + + +def fet_endgroup (expr name) = + message "@{puorg@:" & name + & "@}"; + message ""; +endgroup; +enddef; + + +def autometric_parameter (expr name, value) = + message "@{parameter@:" & name + & "@:" & decimal value + & "@}"; +enddef; + + +def autometric_output_char = + message "@{char@:" & charnamestr + & "@:" & decimal charcode + & "@:" & decimal charbp + & "@:" & decimal charwd + & "@:" & decimal chardp + & "@:" & decimal charht + & "@:" & decimal charwx + & "@:" & decimal charwy + & "@:" & idstr + & "@}"; +enddef; + + +def hround_pixels (expr sharped) = + hround (sharped * hppp) +enddef; + + +def vround_pixels (expr sharped) = + vround (sharped * vppp) +enddef; + + +def tand (expr alpha) = + (sind alpha / cosd alpha) +enddef; + + +def to_bp (expr num) = + decimal (num * bp_per_pixel) +enddef; + + +% breapth, width, depth, height +% breapth x-depth +def set_char_box (expr b_sharp, w_sharp, d_sharp, h_sharp) = + save scharbp, scharht, scharwd, schardp; + + % some paranoia if someone calls set_char_box (charwd, charbp, ...) + scharbp := b_sharp; + scharht := h_sharp; + schardp := d_sharp; + scharwd := w_sharp; + + charbp := scharbp; + charht := scharht; + chardp := schardp; + charwd := scharwd; + + w := hround (w_sharp * hppp); + b := hround (b_sharp * hppp); + h := vround (h_sharp * vppp); + d := vround (d_sharp * vppp); + + charwx := charwd; + charwy := 0; + + % additions for mf2pt1 (`bbox' is called `glyph_dimensions' starting + % with version 2.4.2) + if known bp_per_pixel: + special "% MF2PT1: bbox " + & to_bp (-b) & " " + & to_bp (-d) & " " + & to_bp (w) & " " + & to_bp (h); + special "% MF2PT1: glyph_dimensions " + & to_bp (-b) & " " + & to_bp (-d) & " " + & to_bp (w) & " " + & to_bp (h); + special "% MF2PT1: font_size " & decimal designsize; + special "% MF2PT1: font_slant " & decimal font_slant_; + + for fvar = "font_identifier", + "font_coding_scheme", + "font_version", + "font_comment", + "font_family", + "font_weight", + "font_unique_id", + "font_name": + if known scantokens (fvar & "_"): + special "% MF2PT1: " + & fvar & " " + & scantokens (fvar & "_"); + fi; + endfor; + + for fvar = "font_underline_position", + "font_underline_thickness": + if known scantokens (fvar & "_"): + special "% MF2PT1: " + & fvar & " " + & scantokens ("decimal " & fvar & "_"); + fi; + endfor; + + special "% MF2PT1: font_fixed_pitch " + & (if font_fixed_pitch_: "1" else: "0" fi); + + % this must come after the `font_size' special + special "% MF2PT1: charwd " & decimal charwd; + fi; +enddef; + + +def no_dimen_beginchar (expr c) = +begingroup; + charcode := if known c: byte c else: 0; fi; + charic := 0; + clearxy; + clearit; + clearpen; + scantokens extra_beginchar; +enddef; + + +% +% we leave the ctrl characters alone. +% +code := 32; + + +% starts just as plain mf's beginchar: +% charcode, +% and then adds: +% charname see below +% id index in lily's table + +% The dimensions are uninitialised; you should use set_char_box manually. +def fet_beginchar (expr name, id_lit) = + save idstr, charnamestr; + save charbp; + save w, b, h, d; + save charwx, charwy; + + string idstr, charnamestr; + charnamestr := name; + idstr := id_lit; + + % addition for mf2pt1 + if known bp_per_pixel: + if known feta_group: + special "% MF2PT1: glyph_name " + & feta_group & "." & idstr; + else: + special "% MF2PT1: glyph_name " & idstr; + fi; + fi; + + no_dimen_beginchar (incr code) name; +enddef; + + +def makebox_with_breapth (text r) = + for y = -d, 0, h: + r ((-b, y), (w, y)); + endfor; + + for x = -b, 0, w: + r ( (x, -d), (x, h)); + endfor; +enddef; + + +% +% override plain endchar. We want a different box. +% +def breapth_endchar = + scantokens extra_endchar; + + if proofing > 0: + makebox_with_breapth (proofrule); + fi; + + chardx := (w + b); % what the heck is chardx + shipit; +endgroup; +enddef; + + +def fet_endchar = + autometric_output_char; + breapth_endchar; +enddef; -- cgit v1.2.3