+LY_DEFINE (ly_moment_mod, "ly:moment-mod",
+ 2, 0, 0, (SCM a, SCM b),
+ "Modulo of two moments.")
+{
+ LY_ASSERT_SMOB (Moment, a, 1);
+ LY_ASSERT_SMOB (Moment, b, 2);
+
+ Moment *ma = unsmob_moment (a);
+ Moment *mb = unsmob_moment (b);
+ return (*ma % * mb).smobbed_copy ();
+}
+
+LY_DEFINE (ly_moment_grace_numerator, "ly:moment-grace-numerator",
+ 1, 0, 0, (SCM mom),
+ "Extract numerator from grace timing.")
+{
+ LY_ASSERT_SMOB (Moment, mom, 1);
+
+ Moment *ma = unsmob_moment (mom);
+
+ return scm_from_int64 (ma->grace_part_.numerator ());
+}
+
+LY_DEFINE (ly_moment_grace_denominator, "ly:moment-grace-denominator",
+ 1, 0, 0, (SCM mom),
+ "Extract denominator from grace timing.")
+{
+ LY_ASSERT_SMOB (Moment, mom, 1);
+ Moment *ma = unsmob_moment (mom);
+
+ return scm_from_int64 (ma->grace_part_.denominator ());
+}