From bdf8d8f96fd7ab0b8770ecc87f0f5f250894b4e2 Mon Sep 17 00:00:00 2001 From: Malte Meyn Date: Wed, 27 Dec 2017 13:07:58 +0100 Subject: [PATCH 1/3] =?UTF-8?q?Issue=205247/1:=20add=20dynamic=20n=20for?= =?UTF-8?q?=20=E2=80=9Cniente=E2=80=9D=20to=20feta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The “niente” n is a copied and modified version of the “mezzo” m code. This also sets the encoding vector lengths in encodingdefs.ps to 256 each. --- Documentation/included/font-table.ly | 2 +- mf/feta-dynamics.mf | 125 +++++++++++++++++++++ ps/encodingdefs.ps | 204 ++++++++++++++++++----------------- 3 files changed, 229 insertions(+), 102 deletions(-) diff --git a/Documentation/included/font-table.ly b/Documentation/included/font-table.ly index 1b3f65d7c0..6ae823dc6e 100644 --- a/Documentation/included/font-table.ly +++ b/Documentation/included/font-table.ly @@ -53,7 +53,7 @@ "five" "six" "seven" "eight" "nine")) (define dynamics - '("space" "f" "m" "p" "r" "s" "z")) + '("space" "f" "m" "n" "p" "r" "s" "z")) (define default-noteheads (get-group glyph-list diff --git a/mf/feta-dynamics.mf b/mf/feta-dynamics.mf index 45b9f5ae8f..a2ba276196 100644 --- a/mf/feta-dynamics.mf +++ b/mf/feta-dynamics.mf @@ -687,6 +687,127 @@ fet_beginchar ("dynamic m", "m"); penlabels (range 1 thru 8); fet_endchar; +% +% NOTES: +% +% * This is mostly copied from dynamic m (see above) +% + +code := 109; + +fet_beginchar ("dynamic n", "n"); + save i_thick, i_angle, i_twiddle_thick; + save i_twiddle_start_angle, i_twiddle_start_y; + save i_twiddle_end_angle, i_left_space; + save idir, center, right_ending; + save overshoot; + save p; + pair center, idir, right_ending; + path p; + + set_char_box (0, 1.11 ex#, 0, 1.0 ex#); + + % should share code with p for twiddle. + + overshoot = .25 serif_thick; + i_thick := 21/80 ex; + i_twiddle_thick = 1.2 serif_thick; + i_twiddle_start_y = 8/16 ex; + i_twiddle_start_angle = 0; + i_twiddle_end_angle := 35; + + center = (0, 0); + + i_angle := 0; + idir := dir (90 - i_angle); + i_left_space = 16/80 ex; + + penpos1 (i_twiddle_thick, -i_twiddle_start_angle); + y1 = i_twiddle_start_y; + z1r = center - (i_left_space, 0) + whatever * idir; + + y2l = ex + overshoot; + z2l = .08 [z3l, z3r] + whatever * idir; + z2r = 5/8 [z1r, z3l] + whatever * idir; + y2r = y5l + 1/9 ex; + z2 = 1/2 [z2l, z2r]; + + penpos3 (i_thick, 0); + y3 = 0.5 bottom_blot + ypart center; + z3l = center + whatever * idir; + + penpos4 (i_thick - bottom_blot, 0); + y4 = ypart center; + z4 - z3 = whatever * idir; + + penpos5 (i_thick, 0); + z5 = z4 + whatever * idir; + y5 = 55/80 ex; + + fill simple_serif (z1l, z1r, 90) + ..tension 1.2.. z2r{right} + .. z5l{z3 - z5} + -- z3l{z3 - z5} + .. z4l{right} + -- z4r{right} + .. z3r{z5 - z3} + -- z5r{z5 - z3} + ..tension 1.2.. z2l{left} + .. cycle; + + right_ending := z5r; + penlabels (1, 2, 3, 4, 5); + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + clearxy; + + i_thick := 23/80 ex; + i_angle := -6; + idir := dir (90 - i_angle); + i_left_space := 18/80 ex; + + penpos1 (serif_thick, -i_twiddle_start_angle); + z1r = right_ending; + + y2l = ex + overshoot; + z2l = .08 [z3l, z3r] + whatever * idir; + z2r = 5/8 [z1r, z3l] + whatever * idir; + y2r = y5l + 1/9 ex; + z2 = 1/2 [z2l, z2r]; + + penpos3 (whatever, 20); + y3l = 1/8 ex + ypart center; + z3l = z7l + whatever * idir; + z3r = z7r + whatever * idir; + + penpos5 (whatever, 10); + z5l = right_ending + (i_left_space, 0); + z5r = z7r + whatever * idir; + + penpos6 (serif_thick, -i_twiddle_end_angle); + y6l = 23/80 ex + ypart center; + z6l = 1.6 [z3l, z3r] + whatever * idir; + + penpos7 (i_thick, 0); + y7 = 0; + z7l = z5l + whatever * idir; + + z8 = z7 - (0, overshoot); + + fill simple_serif (z1l, z1r, 90) + ..tension 1.05.. z2r{right} + .. z5l{z3 - z5} + -- z3l{z3 - z5} + .. z8{right} + .. simple_serif (z6r, z6l, 90) + ..tension 0.85.. z3r{z5 - z3} + -- z5r{z5 - z3} + ..tension 1.2.. z2l{left} + .. cycle; + + penlabels (range 1 thru 8); +fet_endchar; code := 113; @@ -776,6 +897,10 @@ ligtable "m": "p" kern 0.2 ex#, "f" kern -0.1 ex#; +ligtable "n": + "p" kern 0.2 ex#, + "f" kern -0.1 ex#; + ligtable "f": "f" kern -0.13 ex#; diff --git a/ps/encodingdefs.ps b/ps/encodingdefs.ps index 9936df3fc7..c5f3e3db1f 100644 --- a/ps/encodingdefs.ps +++ b/ps/encodingdefs.ps @@ -405,7 +405,7 @@ /clefs.F_change /clefs.G /clefs.G_change /clefs.GG /clefs.GG_change /clefs.hufnagel.do /clefs.hufnagel.do_change /clefs.hufnagel.do.fa - % 0xe + % 0x0e /clefs.hufnagel.do.fa_change /clefs.hufnagel.fa /clefs.hufnagel.fa_change /clefs.kievan.do /clefs.kievan.do_change /clefs.medicaea.do /clefs.medicaea.do_change /clefs.medicaea.fa @@ -471,6 +471,7 @@ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % 0xe4 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef @@ -650,76 +651,76 @@ /arrowheads.open.11 /arrowheads.open.1M1 /brackettips.down /brackettips.up /comma /custodes.hufnagel.d0 /custodes.hufnagel.d1 /custodes.hufnagel.d2 /custodes.hufnagel.u0 - % 0x39 + % 0x3a /custodes.hufnagel.u1 /custodes.hufnagel.u2 /custodes.medicaea.d0 /custodes.medicaea.d1 /custodes.medicaea.d2 /custodes.medicaea.u0 /custodes.medicaea.u1 /custodes.medicaea.u2 /custodes.mensural.d0 /custodes.mensural.d1 /custodes.mensural.d2 /custodes.mensural.u0 /custodes.mensural.u1 /custodes.mensural.u2 /custodes.vaticana.d0 - % 0x48 + % 0x49 /custodes.vaticana.d1 /custodes.vaticana.d2 /custodes.vaticana.u0 /custodes.vaticana.u1 /custodes.vaticana.u2 /dots.dot /dots.dotkievan /dots.dotvaticana /eight /f /five /flags.d3 /flags.d4 /flags.d5 /flags.d6 - % 0x57 + % 0x58 /flags.d7 /flags.dgrace /flags.mensurald03 /flags.mensurald04 /flags.mensurald05 /flags.mensurald06 /flags.mensurald13 /flags.mensurald14 /flags.mensurald15 /flags.mensurald16 /flags.mensurald23 /flags.mensurald24 /flags.mensurald25 /flags.mensurald26 /flags.mensuralu03 - % 0x66 + % 0x67 /flags.mensuralu04 /flags.mensuralu05 /flags.mensuralu06 /flags.mensuralu13 /flags.mensuralu14 /flags.mensuralu15 /flags.mensuralu16 /flags.mensuralu23 /flags.mensuralu24 /flags.mensuralu25 /flags.mensuralu26 /flags.u3 /flags.u4 /flags.u5 /flags.u6 - % 0x75 + % 0x76 /flags.u7 /flags.ugrace /four - /hyphen /m /nine + /hyphen /m /n /nine /one /p /pedal.. /pedal.* /pedal.d /pedal.e /pedal.M /pedal.P /pedal.Ped /period - % 0x84 + % 0x87 /plus /r /rests.0 /rests.0mensural /rests.0neomensural /rests.0o /rests.1 /rests.1mensural /rests.1neomensural /rests.1o /rests.2 /rests.2classical /rests.2mensural /rests.2neomensural /rests.2z - % 0x93 + % 0x96 /rests.3 /rests.3mensural /rests.3neomensural /rests.4 /rests.4mensural /rests.4neomensural /rests.5 /rests.6 /rests.7 /rests.M1 /rests.M1mensural /rests.M1neomensural /rests.M1o /rests.M2 /rests.M2mensural - % 0xa2 + % 0xa5 /rests.M2neomensural /rests.M3 /rests.M3mensural /rests.M3neomensural /s /seven /six /space /three /ties.lyric.default /ties.lyric.short /timesig.C22 /timesig.C44 - % 0xb1 + % 0xb2 /timesig.mensural22 /timesig.mensural24 /timesig.mensural32 /timesig.mensural34 /timesig.mensural44 /timesig.mensural48 /timesig.mensural64 /timesig.mensural68 /timesig.mensural68alt /timesig.mensural94 /timesig.mensural98 /timesig.neomensural22 /timesig.neomensural24 /timesig.neomensural32 /timesig.neomensural34 - % 0xc0 + % 0xc1 /timesig.neomensural44 /timesig.neomensural48 /timesig.neomensural64 /timesig.neomensural68 /timesig.neomensural68alt /timesig.neomensural94 /timesig.neomensural98 /two /z /zero - % 0xca + % 0xcb /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef - % 0xed + % 0xee /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef - /.notdef /.notdef /.notdef /.notdef /.notdef - % 0xf6 + /.notdef /.notdef /.notdef /.notdef + % 0x100 ] def % 0x00 @@ -856,93 +857,94 @@ /four {<78> show} def /hyphen {<79> show} def /m {<7a> show} def -/nine {<7b> show} def -/one {<7c> show} def -/p {<7d> show} def +/n {<7b> show} def +/nine {<7c> show} def +/one {<7d> show} def +/p {<7e> show} def % 0x78 -/pedal.. {<7e> show} def -/pedal.* {<7f> show} def -/pedal.d {<80> show} def -/pedal.e {<81> show} def -/pedal.M {<82> show} def -/pedal.P {<83> show} def -/pedal.Ped {<84> show} def -/period {<85> show} def -/plus {<86> show} def -/r {<87> show} def +/pedal.. {<7f> show} def +/pedal.* {<80> show} def +/pedal.d {<81> show} def +/pedal.e {<82> show} def +/pedal.M {<83> show} def +/pedal.P {<84> show} def +/pedal.Ped {<85> show} def +/period {<86> show} def +/plus {<87> show} def +/r {<88> show} def % 0x82 -/rests.0 {<88> show} def -/rests.0mensural {<89> show} def -/rests.0neomensural {<8a> show} def -/rests.0o {<8b> show} def -/rests.1 {<8c> show} def -/rests.1mensural {<8d> show} def -/rests.1neomensural {<8e> show} def -/rests.1o {<8f> show} def -/rests.2 {<90> show} def -/rests.2classical {<91> show} def +/rests.0 {<89> show} def +/rests.0mensural {<90> show} def +/rests.0neomensural {<8b> show} def +/rests.0o {<8c> show} def +/rests.1 {<8d> show} def +/rests.1mensural {<8e> show} def +/rests.1neomensural {<8f> show} def +/rests.1o {<90> show} def +/rests.2 {<91> show} def +/rests.2classical {<92> show} def % 0x8c -/rests.2mensural {<92> show} def -/rests.2neomensural {<93> show} def -/rests.2z {<94> show} def -/rests.3 {<95> show} def -/rests.3mensural {<96> show} def -/rests.3neomensural {<97> show} def -/rests.4 {<98> show} def -/rests.4mensural {<99> show} def -/rests.4neomensural {<9a> show} def -/rests.5 {<9b> show} def +/rests.2mensural {<93> show} def +/rests.2neomensural {<94> show} def +/rests.2z {<95> show} def +/rests.3 {<96> show} def +/rests.3mensural {<97> show} def +/rests.3neomensural {<98> show} def +/rests.4 {<99> show} def +/rests.4mensural {<9a> show} def +/rests.4neomensural {<9b> show} def +/rests.5 {<9c> show} def % 0x96 -/rests.6 {<9c> show} def -/rests.7 {<9d> show} def -/rests.M1 {<9e> show} def -/rests.M1mensural {<9f> show} def -/rests.M1neomensural { show} def -/rests.M1o { show} def -/rests.M2 { show} def -/rests.M2mensural { show} def -/rests.M2neomensural { show} def -/rests.M3 { show} def +/rests.6 {<9d> show} def +/rests.7 {<9e> show} def +/rests.M1 {<9f> show} def +/rests.M1mensural { show} def +/rests.M1neomensural { show} def +/rests.M1o { show} def +/rests.M2 { show} def +/rests.M2mensural { show} def +/rests.M2neomensural { show} def +/rests.M3 { show} def % 0xa0 -/rests.M3mensural { show} def -/rests.M3neomensural { show} def -/s { show} def -/seven { show} def -/six { show} def -/space { show} def -/three { show} def -/ties.lyric.default { show} def -/ties.lyric.short { show} def -/timesig.C22 { show} def +/rests.M3mensural { show} def +/rests.M3neomensural { show} def +/s { show} def +/seven { show} def +/six { show} def +/space { show} def +/three { show} def +/ties.lyric.default { show} def +/ties.lyric.short { show} def +/timesig.C22 { show} def % 0xaa -/timesig.C44 { show} def -/timesig.mensural22 { show} def -/timesig.mensural24 { show} def -/timesig.mensural32 { show} def -/timesig.mensural34 { show} def -/timesig.mensural44 { show} def -/timesig.mensural48 { show} def -/timesig.mensural64 { show} def -/timesig.mensural68 { show} def -/timesig.mensural68alt { show} def +/timesig.C44 { show} def +/timesig.mensural22 { show} def +/timesig.mensural24 { show} def +/timesig.mensural32 { show} def +/timesig.mensural34 { show} def +/timesig.mensural44 { show} def +/timesig.mensural48 { show} def +/timesig.mensural64 { show} def +/timesig.mensural68 { show} def +/timesig.mensural68alt { show} def % 0xb4 -/timesig.mensural94 { show} def -/timesig.mensural98 { show} def -/timesig.neomensural22 { show} def -/timesig.neomensural24 { show} def -/timesig.neomensural32 { show} def -/timesig.neomensural34 { show} def -/timesig.neomensural44 { show} def -/timesig.neomensural48 { show} def -/timesig.neomensural64 { show} def -/timesig.neomensural68 { show} def +/timesig.mensural94 { show} def +/timesig.mensural98 { show} def +/timesig.neomensural22 { show} def +/timesig.neomensural24 { show} def +/timesig.neomensural32 { show} def +/timesig.neomensural34 { show} def +/timesig.neomensural44 { show} def +/timesig.neomensural48 { show} def +/timesig.neomensural64 { show} def +/timesig.neomensural68 { show} def % 0xbe -/timesig.neomensural68alt { show} def -/timesig.neomensural94 { show} def -/timesig.neomensural98 { show} def -/two { show} def -/z { show} def -/zero { show} def +/timesig.neomensural68alt { show} def +/timesig.neomensural94 { show} def +/timesig.neomensural98 { show} def +/two { show} def +/z { show} def +/zero { show} def % 0xc4 % @@ -993,8 +995,8 @@ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef - /.notdef /.notdef /.notdef /.notdef - % 0xff + /.notdef /.notdef /.notdef /.notdef /.notdef + % 0x100 ] def % 0x00 @@ -1289,8 +1291,8 @@ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef - /.notdef /.notdef /.notdef /.notdef - % 0xff + /.notdef /.notdef /.notdef /.notdef /.notdef + % 0x100 ] def % 0x00 @@ -1585,8 +1587,8 @@ % 0xee /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef - /.notdef /.notdef /.notdef - % 0xff + /.notdef /.notdef /.notdef /.notdef + % 0x100 ] def % 0x00 -- 2.15.1