+LY_DEFINE (ly_duration_less_p, "ly:duration<?",
+ 2, 0, 0, (SCM p1, SCM p2),
+ "Is @var{p1} shorter than @var{p2}?")
+{
+ Duration *a = unsmob_duration (p1);
+ Duration *b = unsmob_duration (p2);
+
+ SCM_ASSERT_TYPE (a, p1, SCM_ARG1, __FUNCTION__, "Duration");
+ SCM_ASSERT_TYPE (b, p2, SCM_ARG2, __FUNCTION__, "Duration");
+
+ if (Duration::compare (*a, *b) < 0)
+ return SCM_BOOL_T;
+ else
+ return SCM_BOOL_F;
+}
+
+LY_DEFINE (ly_make_duration, "ly:make-duration",
+ 1, 3, 0, (SCM length, SCM dotcount, SCM num, SCM den),
+ "@var{length} is the negative logarithm (base 2) of the duration:\n"
+ "1 is a half note, 2 is a quarter note, 3 is an eighth\n"
+ "note, etc. The number of dots after the note is given by\n"
+ "the optional argument @var{dotcount}.\n"
+ "\n"
+ "The duration factor is optionally given by @var{num}\n"
+ "and @var{den}.\n\n"
+ "A duration is a musical duration, "
+ "i.e. a length of time described by a power of two "
+ "(whole, half, quarter, etc.) and a number of augmentation\n"
+ "dots. \n")