]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/music.cc
Imported Upstream version 2.14.2
[lilypond.git] / lily / music.cc
index f96d424b212432c9badeafdfb6a82974bed719d6..401e9efafb94fbd47677d0d871689c984632e4ff 100644 (file)
@@ -1,9 +1,20 @@
 /*
-  music.cc -- implement Music
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (C) 1997--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
-  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "music.hh"
@@ -39,7 +50,7 @@ Music::Music (SCM init)
 {
   length_callback_ = SCM_EOL;
   start_callback_ = SCM_EOL;
-  
+
   length_callback_ = get_property ("length-callback");
   if (!ly_is_procedure (length_callback_))
     length_callback_ = duration_length_callback_proc;
@@ -161,7 +172,8 @@ Music::to_relative_octave (Pitch last)
   SCM callback = get_property ("to-relative-callback");
   if (ly_is_procedure (callback))
     {
-      Pitch *p = unsmob_pitch (scm_call_2 (callback, self_scm (), last.smobbed_copy ()));
+      Pitch *p = unsmob_pitch (scm_call_2 (callback, self_scm (),
+                                          last.smobbed_copy ()));
       return *p;
     }
 
@@ -179,7 +191,8 @@ Music::compress (Moment factor)
   compress_music_list (get_property ("elements"), factor);
   Duration *d = unsmob_duration (get_property ("duration"));
   if (d)
-    set_property ("duration", d->compressed (factor.main_part_).smobbed_copy ());
+    set_property ("duration",
+                 d->compressed (factor.main_part_).smobbed_copy ());
 }
 
 /*
@@ -194,14 +207,23 @@ transpose_mutable (SCM alist, Pitch delta)
       SCM prop = scm_car (entry);
       SCM val = scm_cdr (entry);
       SCM new_val = val;
-      
+
       if (Pitch *p = unsmob_pitch (val))
        {
          Pitch transposed = p->transposed (delta);
          if (transposed.get_alteration ().abs () > Rational (1,1))
            {
-             warning (_f ("transposition by %s makes alteration larger than double",
-                          delta.to_string ()));
+             string delta_str;
+             if (delta.get_alteration ().abs () > Rational (1, 1))
+               delta_str = (delta.normalized ().to_string ()
+                            + " " + _ ("(normalized pitch)"));
+             else
+               delta_str = delta.to_string ();
+
+             warning (_f ("Transposing %s by %s makes alteration larger than double",
+                          p->to_string (),
+                          delta_str));
+             transposed = transposed.normalized ();
            }
 
          new_val = transposed.smobbed_copy ();
@@ -254,9 +276,7 @@ Music::to_event () const
 
   // catch programming mistakes.
   if (!internal_is_music_type (class_name))
-    {
-      programming_error ("Not a music type");
-    }
+    programming_error ("Not a music type");
 
   Stream_event *e = new Stream_event (class_name, mutable_property_alist_);
   Moment length = get_length ();
@@ -322,6 +342,5 @@ Music::duration_length_callback (SCM m)
 Music *
 unsmob_music (SCM m)
 {
-  return dynamic_cast<Music*> (unsmob_prob (m));
+  return dynamic_cast<Music *> (unsmob_prob (m));
 }
-