- case MLP_LONGA: // mensural brevis head with right cauda
- out = Font_interface::get_default_font (me)->find_by_name
- (color ? "noteheads.sM2blackmensural"
- : semi ? "noteheads.sM2semimensural" : "noteheads.sM2mensural");
- break;
- case MLP_BREVIS: // mensural brevis head
- out = Font_interface::get_default_font (me)->find_by_name
- (color ? "noteheads.sM1blackmensural"
- : semi ? "noteheads.sM1semimensural" : "noteheads.sM1mensural");
- break;
- case MLP_MAXIMA: // should be mensural maxima head without stem
- out = Font_interface::get_default_font (me)->find_by_name
- (color ? "noteheads.sM3blackligmensural"
- : semi ? "noteheads.sM3semiligmensural" : "noteheads.sM3ligmensural");
+ case MLP_MAXIMA:
+ duration_log--;
+ case MLP_LONGA:
+ duration_log--;
+ case MLP_BREVIS:
+ duration_log--;
+ suffix = ::to_string (duration_log) + color
+ + (duration_log < -1 ? "lig" : "") + "mensural";
+ index = prefix + "s";
+ out = fm->find_by_name (index + "r" + suffix);
+ if (!out.is_empty ()
+ && !Staff_symbol_referencer::on_line
+ (me,
+ robust_scm2int (me->get_property ("staff-position"), 0)))
+ index += "r";
+ out = fm->find_by_name (index + suffix);