X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmusic.cc;h=eea6a9ca818a58552a5d4cdda7a159754696d186;hb=409d457d0e623889d88eeff9c576bb74a32f1565;hp=7a38d7af41d84851151b65e2c5bcbdaa4cc4e010;hpb=9cba6d0b05bd28e2fc73f091b09ace570c976182;p=lilypond.git diff --git a/lily/music.cc b/lily/music.cc index 7a38d7af41..eea6a9ca81 100644 --- a/lily/music.cc +++ b/lily/music.cc @@ -226,6 +226,10 @@ transpose_mutable (SCM alist, Pitch delta) 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")) @@ -271,7 +275,7 @@ Music::origin () const ES TODO: This method should probably be reworked or junked. */ Stream_event * -Music::to_event (Context *c) const +Music::to_event () const { SCM class_name = ly_camel_case_2_lisp_identifier (get_property ("name")); @@ -279,8 +283,9 @@ Music::to_event (Context *c) const if (!internal_is_music_type (class_name)) programming_error ("Not a music type"); - Stream_event *e = new Stream_event (c->make_event_class (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 ()); @@ -293,7 +298,7 @@ Music::to_event (Context *c) const for (; scm_is_pair (art_mus); art_mus = scm_cdr (art_mus)) { Music *m = unsmob_music (scm_car (art_mus)); - art_ev = scm_cons (m->to_event (c)->unprotect (), art_ev); + art_ev = scm_cons (m->to_event ()->unprotect (), art_ev); } e->set_property ("articulations", scm_reverse_x (art_ev, SCM_EOL)); } @@ -310,7 +315,7 @@ Music::to_event (Context *c) const void Music::send_to_context (Context *c) { - Stream_event *ev = to_event (c); + Stream_event *ev = to_event (); c->event_source ()->broadcast (ev); ev->unprotect (); }