+ LY_ASSERT_SMOB (Moment, mom, 1);
+
+ return ly_rational2scm (unsmob_moment (mom)->main_part_);
+}
+
+LY_DEFINE (ly_moment_main_numerator, "ly:moment-main-numerator",
+ 1, 0, 0, (SCM mom),
+ "Extract numerator from main timing.")
+{
+ LY_ASSERT_SMOB (Moment, mom, 1);
+ Moment *ma = unsmob_moment (mom);
+
+ return scm_from_int64 (ma->main_part_.numerator ());
+}
+
+LY_DEFINE (ly_moment_main_denominator, "ly:moment-main-denominator",
+ 1, 0, 0, (SCM mom),
+ "Extract denominator from main timing.")
+{
+ LY_ASSERT_SMOB (Moment, mom, 1);
+ Moment *ma = unsmob_moment (mom);
+
+ return scm_from_int64 (ma->main_part_.denominator ());
+}
+
+LY_DEFINE (ly_moment_less_p, "ly:moment<?",
+ 2, 0, 0, (SCM a, SCM b),
+ "Compare two moments.")
+{
+ LY_ASSERT_SMOB (Moment, a, 1);
+ LY_ASSERT_SMOB (Moment, b, 2);
+