+ if (scm_is_number (cpos))
+ clef_->set_property ("staff-position", cpos);
+
+ SCM transp = get_property ("clefTransposition");
+ if (scm_is_number (transp) && scm_to_int (transp))
+ {
+ Item *g = make_item ("ClefModifier", SCM_EOL);
+
+ int abs_transp = scm_to_int (transp);
+ int dir = sign (abs_transp);
+ abs_transp = abs (abs_transp) + 1;
+
+ SCM txt = scm_number_to_string (scm_from_int (abs_transp),
+ scm_from_int (10));
+
+ SCM style = get_property ("clefTranspositionStyle");
+
+ SCM formatter = get_property ("clefTranspositionFormatter");
+ if (ly_is_procedure (formatter))
+ g->set_property ("text", scm_call_2 (formatter, txt, style));
+
+ Side_position_interface::add_support (g, clef_);