transposed = transposed.normalized ();
}
+ if (prop == ly_symbol2scm ("tonic"))
+ transposed = Pitch (-1, transposed.get_notename (),
+ transposed.get_alteration ());
+
new_val = transposed.smobbed_copy ();
}
else if (prop == ly_symbol2scm ("element"))
if (Music *m = unsmob_music (val))
m->transpose (delta);
}
- else if (prop == ly_symbol2scm ("elements"))
+ else if (prop == ly_symbol2scm ("elements")
+ || prop == ly_symbol2scm ("articulations"))
transpose_music_list (val, delta);
else if (prop == ly_symbol2scm ("pitch-alist")
&& scm_is_pair (val))
if (!internal_is_music_type (class_name))
programming_error ("Not a music type");
- Stream_event *e = new Stream_event (class_name, mutable_property_alist_);
+ Stream_event *e = new Stream_event
+ (scm_call_1 (ly_lily_module_constant ("ly:make-event-class"), class_name),
+ mutable_property_alist_);
Moment length = get_length ();
if (length.to_bool ())
e->set_property ("length", length.smobbed_copy ());