lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

separate narrowed accidentals (issue 5527049)


From: janek . lilypond
Subject: separate narrowed accidentals (issue 5527049)
Date: Sun, 08 Jan 2012 01:06:45 +0000

Reviewers: ,

Message:
ignore first 3 sentences, it was a mistake.

http://code.google.com/p/lilypond/issues/detail?id=2203

Description:
separate narrowed accidentals


leaving arrows alone


font: narrowed variants of accidentals

As discussed in issue 2142, narrower versions
of accidentals would be useful for typesetting
very tight music.  This patches adds such narrow
accidentals to the font.  Samples showing them
are attached to tracker issue.

Please review this at http://codereview.appspot.com/5527049/

Affected files:
  M mf/feta-accidentals.mf


Index: mf/feta-accidentals.mf
diff --git a/mf/feta-accidentals.mf b/mf/feta-accidentals.mf
index feac34f9ed68e0b6288439e99548db04a3a40d07..f1b2980e9d03b3234ed2f12fa0ae5c913605e047 100644
--- a/mf/feta-accidentals.mf
+++ b/mf/feta-accidentals.mf
@@ -191,7 +191,7 @@ def draw_meta_sharp (expr width, offset) =
 enddef;


-def draw_sharp(expr arrowup, arrowdown) =
+def draw_sharp(expr arrowup, arrowdown, narrowed) =
        save stem, stemx, stemwidth;
        save outer_space, interbeam;
        save stemlength, extendleft, extendright, height, depth;
@@ -217,9 +217,14 @@ def draw_sharp(expr arrowup, arrowdown) =
                extendleft# := extendleft# + 1.5 stafflinethickness#;
        fi;
        define_pixels (extendleft, extendright);
-       set_char_box (extendleft#, 1.1 staff_space#, depth#, height#);
+       if narrowed:
+               set_char_box (extendleft#, 0.88 staff_space#, depth#, height#);
+               stem := 8 / 16 * w;
+       else:
+               set_char_box (extendleft#, 1.1 staff_space#, depth#, height#);
+               stem := 7 / 16 * w;
+       fi;

-       stem := 7 / 16 * w;
        stemx := hround stem;
        outer_space := hround ((w - stemx - stemwidth) / 2);

@@ -264,7 +269,15 @@ enddef;


 fet_beginchar ("Sharp", "sharp");
-       draw_sharp (false, false);
+       draw_sharp (false, false, false);
+fet_endchar;
+
+
+draw_shifted_too;
+
+
+fet_beginchar ("Narrowed Sharp", "sharp.narrow");
+       draw_sharp (false, false, true);
 fet_endchar;


@@ -272,7 +285,7 @@ draw_shifted_too;


 fet_beginchar ("Arrowed Sharp (arrow up)", "sharp.arrowup");
-       draw_sharp (true, false);
+       draw_sharp (true, false, false);
 fet_endchar;


@@ -280,7 +293,7 @@ draw_shifted_too;


 fet_beginchar ("Arrowed Sharp (arrow down)", "sharp.arrowdown");
-       draw_sharp (false, true);
+       draw_sharp (false, true, false);
 fet_endchar;


@@ -288,7 +301,7 @@ draw_shifted_too;


 fet_beginchar ("Arrowed Sharp (arrows up and down)", "sharp.arrowboth");
-       draw_sharp (true, true);
+       draw_sharp (true, true, false);
 fet_endchar;


@@ -482,7 +495,7 @@ draw_shifted_too;
 % The stems of the natural are brushed (at least, in Barenreiter SCS)
 %

-def draw_natural (expr arrowup, arrowdown) =
+def draw_natural (expr arrowup, arrowdown, narrowed) =
        save stemwidth, top_stem_thick;
        save ne, pat_top, pat_bottom;
        save depth, height, extendleft, extendright, stemlength;
@@ -511,7 +524,11 @@ def draw_natural (expr arrowup, arrowdown) =
        fi;
        define_pixels (extendright);

-       set_char_box (extendleft#, 2/3 staff_space#, depth#, height#);
+       if narrowed:
+               set_char_box (extendleft#, 4/7 staff_space#, depth#, height#);
+       else:
+               set_char_box (extendleft#, 2/3 staff_space#, depth#, height#);
+       fi;

        d := d - feta_space_shift;

@@ -612,7 +629,15 @@ enddef;


 fet_beginchar ("Natural", "natural");
-       draw_natural (false, false);
+       draw_natural (false, false, false);
+fet_endchar;
+
+
+draw_shifted_too;
+
+
+fet_beginchar ("Narrowed Natural", "natural.narrow");
+       draw_natural (false, false, true);
 fet_endchar;


@@ -620,7 +645,7 @@ draw_shifted_too;


 fet_beginchar ("Arrowed Natural (arrow up)", "natural.arrowup");
-       draw_natural (true, false);
+       draw_natural (true, false, false);
 fet_endchar;


@@ -628,7 +653,7 @@ draw_shifted_too;


 fet_beginchar ("Arrowed Natural (arrow down)", "natural.arrowdown");
-       draw_natural (false, true);
+       draw_natural (false, true, false);
 fet_endchar;


@@ -636,7 +661,7 @@ draw_shifted_too;


fet_beginchar ("Arrowed Natural (arrows up and down)", "natural.arrowboth");
-       draw_natural (true, true);
+       draw_natural (true, true, false);
 fet_endchar;


@@ -839,6 +864,19 @@ fet_endchar;

 draw_shifted_too;

+fet_beginchar ("Narrowed Flat", "flat.narrow");
+       draw_arrowed_meta_flat (0, 0.65 staff_space#, 0.27 staff_space,
+                               false, false);
+       penlabels (range 0 thru 11);
+
+       remember_pic := currentpicture;
+
+       draw_staff (-2, 2, 0);
+fet_endchar;
+
+
+draw_shifted_too;
+

 fet_beginchar ("Arrowed Flat (arrow up)", "flat.arrowup");
        draw_arrowed_meta_flat (0, 0.8 staff_space#, 0.31 staff_space,
@@ -1163,6 +1201,24 @@ fet_beginchar ("Double Flat", "flatflat");
 fet_endchar;


+fet_beginchar ("Narrowed Double Flat", "flatflat.narrow");
+       save left_wid, overlap, right_wid;
+
+       left_wid = .62;
+       right_wid = .7;
+       overlap = .08;
+
+       set_char_box (1.2 stafflinethickness#,
+                     (left_wid + right_wid - overlap) * staff_space#,
+                     .6 staff_space#, 1.9 staff_space#);
+       draw_meta_flat (0, left_wid * staff_space, 0.28 staff_space,
+                       false, false);
+       draw_meta_flat (hround ((left_wid - overlap) * staff_space),
+                       right_wid * staff_space, 0.28 staff_space,
+                       false, false);
+fet_endchar;
+
+
 fet_beginchar ("3/4 Flat", "flatflat.slash");
        save left_wid, overlap, right_wid;






reply via email to

[Prev in Thread] Current Thread [Next in Thread]