2014-05-19 22:50 GMT+02:00 Peter Bjuhr <peterbj...@gmail.com>: > > On 2014-05-15 15:17, Peter Bjuhr wrote: > > is there already a function that converts a string "4." to the fraction > '3/8', or the other-way round? > > Maybe it's helpful to know that the string is intended for use with \note, e > g > > \note #"4." #UP > > and the fraction is intended for use with \set Timing.baseMoment, e g > > \set Timing.baseMoment = #(ly:make-moment 3/8) > > > After some research I think I've found a way forward with this: > > In ' scm/define-markup-commands.scm' there's a function/procedure called > 'parse-simple-duration', which is used to translate from '\note' to > '\note-by-number'. > > In a similar way I could use that to create the arguments to > 'ly:make-duration'. And from there it would be easy to get the moment with ' > ly:duration->string'. > > This all leads to an additional question: Is it possible to include and use > 'parse-simple-duration' in a local script (without copy and pasting it)?
Well, I would have no problem to c/p 'parse-simple-duration', though yes, it is possible: #(define (note-to-moment notestr) (let ((parsed ((@@ (lily) parse-simple-duration ) notestr))) (ly:duration-length (ly:make-duration (car parsed) (cadr parsed))))) #(write (note-to-moment "4.")) --> #<Mom 3/8> Though, quoting guile-manual: — syntax: @@ module-name binding-name Refer to the binding named binding-name in module module-name. The binding must not have been exported by the module. This syntax is only intended for debugging purposes or as a last resort. !! Cheers, Harm _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user