- if (chord_name_p_)
- return;
- if (!pitch_arr_.size ())
- return;
-
- bool find_inversion_b = false;
- SCM chord_inversion = get_property ("chordInversion");
- if (gh_boolean_p (chord_inversion))
- find_inversion_b = gh_scm2bool (chord_inversion);
-
- chord_name_p_ = new Chord_name (SCM_EOL);
- Chord chord = to_chord (pitch_arr_, tonic_req_, inversion_req_, bass_req_,
- find_inversion_b);
-
- /*
- Hmm, why not represent complete chord as list?
- ((tonic third fifth) (inversion bass))
- */
- SCM plist = SCM_EOL;
- for (int i= chord.pitch_arr_.size (); i--; )
- plist = gh_cons (chord.pitch_arr_[i].to_scm (), plist);
-
- chord_name_p_->set_elt_property ("pitches", plist);
- if (chord.inversion_b_)
- chord_name_p_->set_elt_property ("inversion",
- chord.inversion_pitch_.to_scm ());
- if (chord.bass_b_)
- chord_name_p_->set_elt_property ("bass", chord.bass_pitch_.to_scm ());