]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/music.cc
* Documentation/user/refman.itely: remove superfluous -'s
[lilypond.git] / lily / music.cc
index 941ff2c67cc822e5c2cfc73ac9aba312dea7aae9..7e6fe2b14fec55a2e17421c447b61111727d6eed 100644 (file)
@@ -39,15 +39,7 @@ Music::name () const
     }
 }
 
-void
-Music::transpose (Pitch)
-{
-}
 
-void
-Music::compress (Moment)
-{
-}
 
 Music::Music (Music const &m)
 {
@@ -159,9 +151,39 @@ Music::print_smob (SCM s, SCM p, scm_print_state*)
 }
 
 Pitch
-Music::to_relative_octave (Pitch m)
+Music::to_relative_octave (Pitch p)
 {
-  return m;
+  SCM elt = get_mus_property ("element");
+
+  if (Music* m = unsmob_music (elt))
+    p = m->to_relative_octave (p);
+
+  p = music_list_to_relative (get_mus_property ("elements"),
+                             p, false);
+  return p;
+}
+
+void
+Music::compress (Moment factor)
+{
+  SCM elt = get_mus_property ("element");
+
+  if (Music* m = unsmob_music (elt))
+    m->compress (factor);
+
+  compress_music_list (get_mus_property ("elements"), factor);
+}
+
+
+void
+Music::transpose (Pitch delta)
+{
+  SCM elt = get_mus_property ("element");
+
+  if (Music* m = unsmob_music (elt))
+    m->transpose (delta);
+
+  transpose_music_list (get_mus_property ("elements"), delta);
 }