]> git.donarmstrong.com Git - lilypond.git/commitdiff
New breve rest with ledger lines
authorBertrand Bordage <bordage.bertrand@gmail.com>
Wed, 22 Jun 2011 23:27:12 +0000 (01:27 +0200)
committerGraham Percival <graham@percival-music.ca>
Thu, 14 Jul 2011 01:38:47 +0000 (18:38 -0700)
lily/rest.cc
mf/feta-rests.mf

index 9b85523f80ae2840ad273f8b1626891ef8f7493c..c064e5a98025ba0abae43292e27a1dda8294fc44 100644 (file)
@@ -80,7 +80,7 @@ string
 Rest::glyph_name (Grob *me, int balltype, string style, bool try_ledgers)
 {
   bool is_ledgered = false;
-  if (try_ledgers && (balltype == 0 || balltype == 1))
+  if (try_ledgers && (balltype == -1 || balltype == 0 || balltype == 1))
     {
       Real rad = Staff_symbol_referencer::staff_radius (me) * 2.0;
       Real pos = Staff_symbol_referencer::get_position (me);
@@ -90,6 +90,7 @@ Rest::glyph_name (Grob *me, int balltype, string style, bool try_ledgers)
        could bemore generic, but hey, we understand this even after
        dinner.
       */
+      is_ledgered |= (balltype == -1) && (pos <= -rad - 3 || pos >= +rad + 1);
       is_ledgered |= (balltype == 0) && (pos >= +rad + 2 || pos < -rad);
       is_ledgered |= (balltype == 1) && (pos <= -rad - 2 || pos > +rad);
     }
index 4f270801793997ead28f603db6703fc950eaf107..1e416d36d37f8b40a861dd72c39ef523afba3a95 100644 (file)
@@ -125,6 +125,24 @@ fet_beginchar ("breve rest", "M1");
        draw_staff (-2, 2, 0);
 fet_endchar;
 
+fet_beginchar ("breve rest (outside staff)", "M1o");
+       set_char_box (0, breve_rest_x#,
+                     ledgerlinethickness# / 2, breve_rest_y#);
+
+       draw_block ((0, 0), (breve_rest_x, breve_rest_y));
+
+       pickup pencircle scaled ledgerlinethickness;
+
+       y5 = y6 = breve_rest_y;
+       lft x5 = -b - breve_rest_y / 2;
+       rt x6 = w + breve_rest_y / 2;
+
+       draw_gridline (z5, z6, ledgerlinethickness_rounded);
+       draw_gridline ((x5, 0), (x6, 0), ledgerlinethickness_rounded);
+
+       draw_staff (-2, 2, 3);
+fet_endchar;
+
 
 fet_beginchar ("Quarter rest", "2");
        save alpha, yshift, height;