]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/chord-name-engraver.cc
Merge branch 'issue4032'
[lilypond.git] / lily / chord-name-engraver.cc
index 0ca322716fde1e8153034b99028feb95bd7d6257..dba699c8f4aaf119f0de742c33d96ca6fb3fefc7 100644 (file)
@@ -92,38 +92,32 @@ Chord_name_engraver::process_music ()
       markup = chord_name->get_property ("text");
       if (!Text_interface::is_markup (markup))
         {
-          Stream_event *inversion_event = 0;
           for (vsize i = 0; i < notes_.size (); i++)
             {
               Stream_event *n = notes_[i];
               SCM p = n->get_property ("pitch");
-              if (!unsmob_pitch (p))
+              if (!Pitch::unsmob (p))
                 continue;
 
-              if (n->get_property ("inversion") == SCM_BOOL_T)
-                {
-                  inversion_event = n;
-                  inversion = p;
-                }
-              else if (n->get_property ("bass") == SCM_BOOL_T)
+              if (n->get_property ("bass") == SCM_BOOL_T)
                 bass = p;
               else
-                pitches = scm_cons (p, pitches);
-            }
-
-          if (inversion_event)
-            {
-              SCM oct = inversion_event->get_property ("octavation");
-              if (scm_is_number (oct))
                 {
-                  Pitch *p = unsmob_pitch (inversion_event->get_property ("pitch"));
-                  int octavation = scm_to_int (oct);
-                  Pitch orig = p->transposed (Pitch (-octavation, 0, 0));
-
-                  pitches = scm_cons (orig.smobbed_copy (), pitches);
+                  SCM oct = n->get_property ("octavation");
+                  if (scm_is_number (oct))
+                    {
+                      Pitch orig = Pitch::unsmob (p)->transposed (Pitch (-scm_to_int (oct), 0));
+                      pitches = scm_cons (orig.smobbed_copy (), pitches);
+                    }
+                  else
+                    pitches = scm_cons (p, pitches);
+                  if (n->get_property ("inversion") == SCM_BOOL_T)
+                    {
+                      inversion = p;
+                      if (!scm_is_number (oct))
+                        programming_error ("inversion does not have original pitch");
+                    }
                 }
-              else
-                programming_error ("inversion does not have original pitch");
             }
 
           pitches = scm_sort_list (pitches, Pitch::less_p_proc);