+ if (inversion_event)
+ {
+ SCM oct = inversion_event->get_mus_property ("octavation");
+ if (gh_number_p (oct))
+ {
+ Pitch *p = unsmob_pitch (inversion_event->get_mus_property ("pitch"));
+ int octavation = gh_scm2int (oct);
+ Pitch orig = p->transposed (Pitch (-octavation, 0,0));
+
+ pitches= gh_cons (orig.smobbed_copy (), pitches);
+ }
+ else
+ programming_error ("Inversion does not have original pitch.");
+ }
+
+ pitches = scm_sort_list (pitches, Pitch::less_p_proc);
+
+ SCM name_proc = get_property ("chordNameFunction");
+ SCM markup = scm_call_4 (name_proc, pitches, bass, inversion,
+ daddy_trans_->self_scm());
+
+ /*
+ Ugh.
+ */
+ SCM chord_as_scm = gh_cons (pitches, gh_cons (bass, inversion));
+
+ chord_name_ = new Item (get_property ("ChordName"));
+ chord_name_->set_grob_property("text", markup);
+ announce_grob(chord_name_, notes_[0]->self_scm ());
+ SCM s = get_property ("chordChanges");
+ if (to_boolean (s) && gh_pair_p (last_chord_)
+ && gh_equal_p (chord_as_scm, last_chord_))
+ chord_name_->set_grob_property ("begin-of-line-visible", SCM_BOOL_T);
+
+ last_chord_ = chord_as_scm;