-/*
- should add optional args
- */
-static SCM
-make_pitch (SCM o, SCM n, SCM a)
-{
- SCM_ASSERT_TYPE(gh_number_p(o), o, SCM_ARG1, __FUNCTION__, "number");
- SCM_ASSERT_TYPE(gh_number_p(n), n, SCM_ARG2, __FUNCTION__, "number");
- SCM_ASSERT_TYPE(gh_number_p(a), a, SCM_ARG3, __FUNCTION__, "number");
-
- Pitch p (gh_scm2int (o), gh_scm2int (n), gh_scm2int (a));
- return p.smobbed_copy ();
-}
-
-static SCM
-pitch_octave (SCM pp)
-{
- Pitch *p = unsmob_pitch (pp);
- SCM_ASSERT_TYPE(p, pp, SCM_ARG1, __FUNCTION__, "Pitch");
- int q = p->octave_i ();
-
- return gh_int2scm (q);
-}
-
-static SCM
-pitch_alteration (SCM pp)
-{
- Pitch *p = unsmob_pitch (pp);
- SCM_ASSERT_TYPE(p, pp, SCM_ARG1, __FUNCTION__, "Pitch");
- int q = p->alteration_i ();
-
- return gh_int2scm (q);
-}
-
-static SCM
-pitch_notename (SCM pp)
-{
- Pitch *p = unsmob_pitch (pp);
- SCM_ASSERT_TYPE(p, pp, SCM_ARG1, __FUNCTION__, "Pitch");
- int q = p->notename_i ();
-
- return gh_int2scm (q);
-}
-
-static SCM
-pitch_semitones (SCM pp)
-{
- Pitch *p = unsmob_pitch (pp);
- SCM_ASSERT_TYPE(p, pp, SCM_ARG1, __FUNCTION__, "Pitch");
-
- int q = p->steps ();
-
- return gh_int2scm (q);
-}
-SCM pitch_less_proc;
-static SCM
-pitch_less (SCM p1, SCM p2)