+
+ return ("rests." + ::to_string (durlog) + (is_ledgered ? "o" : "")
+ + actual_style);
+}
+
+MAKE_SCHEME_CALLBACK (Rest, print, 1);
+SCM
+Rest::brew_internal_stencil (Grob *me, bool ledgered)
+{
+ SCM durlog_scm = me->get_property ("duration-log");
+ if (!scm_is_number (durlog_scm))
+ return Stencil ().smobbed_copy ();
+
+ int durlog = scm_to_int (durlog_scm);
+
+ string style = robust_symbol2string (me->get_property ("style"), "default");
+
+ Font_metric *fm = Font_interface::get_default_font (me);
+ string font_char = glyph_name (me, durlog, style, ledgered, 0.0);
+ Stencil out = fm->find_by_name (font_char);
+ if (out.is_empty ())
+ me->warning (_f ("rest `%s' not found", font_char.c_str ()));
+
+ return out.smobbed_copy ();
+}
+
+/**
+ translate the rest vertically by amount DY, but only if
+ it doesn't have staff-position set.
+*/
+void
+Rest::translate (Grob *me, int dy)
+{
+ if (!scm_is_number (me->get_property ("staff-position")))