+ string style = robust_symbol2string (me->get_property ("style"), "default");
+
+ string suffix = ::to_string (min (robust_scm2int (me->get_property ("duration-log"), 2), 2));
+ if (style != "default")
+ suffix = robust_scm2string (me->get_property ("glyph-name"), "");
+
+ Font_metric *fm = Font_interface::get_default_font (me);
+
+ string prefix = "noteheads.";
+ string idx_symmetric;
+ string idx_directed;
+ string idx_either = idx_symmetric = prefix + "s";
+ Stencil out = fm->find_by_name (idx_either + suffix);
+ if (out.is_empty ())
+ {
+ Grob *stem = unsmob<Grob> (me->get_object ("stem"));
+ Direction stem_dir = stem ? get_grob_direction (stem) : CENTER;
+
+ if (stem_dir == CENTER)
+ programming_error ("must have stem dir for note head");
+
+ idx_either = idx_directed = prefix + (stem_dir == UP ? "u" : "d");
+ out = fm->find_by_name (idx_either + suffix);
+ }
+
+ if (style == "mensural"
+ || style == "neomensural"
+ || style == "petrucci"
+ || style == "baroque"
+ || style == "kievan")