+
+// junk me
+Simultaneous_music *
+get_chord (SCM stonic,
+ SCM sadd_arr_p,
+ SCM ssub_arr_p,
+ SCM sinversion_p,
+ SCM sbass_p,
+ SCM dur)
+{
+ Musical_pitch tonic = *unsmob_pitch (stonic);
+
+ Musical_pitch *inversion_p = unsmob_pitch( sinversion_p);
+ Musical_pitch *bass_p = unsmob_pitch (sbass_p);
+
+ Array<Musical_pitch> add_arr_p;
+ Array<Musical_pitch> sub_arr_p;
+
+ for (SCM s = sadd_arr_p ; gh_pair_p (s); s = gh_cdr (s))
+ add_arr_p.push (*unsmob_pitch (gh_car (s)));
+ for (SCM s = ssub_arr_p ; gh_pair_p (s); s = gh_cdr (s))
+ sub_arr_p.push (*unsmob_pitch (gh_car (s)));
+
+ sub_arr_p.reverse ();
+ add_arr_p.reverse ();
+
+ /*
+ UARGAUGRAGRUAUGRUINAGRAUGIRNA
+
+ ugh
+ */
+ Chord chord = to_chord (tonic, &add_arr_p, &sub_arr_p, inversion_p, bass_p);
+ inversion_p = 0;
+ bass_p = 0;
+
+ Tonic_req* t = new Tonic_req;
+ t->set_mus_property ("pitch", tonic.smobbed_copy ());
+ SCM l = gh_cons (t->self_scm (), SCM_EOL);
+
+ //urg
+ if (chord.inversion_b_
+ && Chord::find_notename_i (&chord.pitch_arr_, chord.inversion_pitch_) > 0)
+ {
+ Inversion_req* i = new Inversion_req;
+ i->set_mus_property ("pitch", chord.inversion_pitch_.smobbed_copy ());
+ l = gh_cons (i->self_scm (), l);
+ scm_unprotect_object (i->self_scm ());
+ }
+
+ if (chord.bass_b_)
+ {
+ Bass_req* b = new Bass_req;
+ b->set_mus_property ("pitch", chord.bass_pitch_.smobbed_copy ());
+
+ l = gh_cons (b->self_scm (), l);
+ scm_unprotect_object (b->self_scm ());
+ }
+
+ Array<Musical_pitch> pitch_arr = chord.to_pitch_arr ();
+ for (int i = pitch_arr.size (); --i >= 0;)
+ {
+ Note_req* n = new Note_req;
+ n->set_mus_property ("pitch", pitch_arr[i].smobbed_copy ());
+ n->set_mus_property ("duration", dur);
+ l = gh_cons (n->self_scm (), l);
+
+ scm_unprotect_object (n->self_scm ());
+ }
+
+ Simultaneous_music*v = new Request_chord (l);
+
+ return v;
+}
+
+