]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/music.cc
changes: mention that decimal numbers can be written without #
[lilypond.git] / lily / music.cc
index 45944511359fb3fe9f0f2137feb7fe76f4188ad9..eea6a9ca818a58552a5d4cdda7a159754696d186 100644 (file)
@@ -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"))
@@ -233,7 +237,8 @@ transpose_mutable (SCM alist, Pitch delta)
           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))
@@ -278,7 +283,9 @@ Music::to_event () const
   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 ());