On 2021-11-08 11:36 am, Kieren MacMillan wrote:
3. Is there an ly:string->duration [or similar] function, that will
take "4." and turn it into a duration that I can use to generate the
right glyph(s)?

Technically, you could create string->duration:

%%%%
#(define (string->duration str)
  (let* ((parser (ly:parser-clone '()))
         (music (ly:parse-string-expression parser str)))
   (if (ly:duration? music) music (ly:error "Expecting duration"))))

{ b' $(string->duration "4.") c'' $(string->duration "8") }
%%%%

But it would seem better to let the parser do the work by having the function accept a ly:duration? directly. Certainly, it would be easier to use:

%%%%
\timeII 3 4.  % logically \time 9/8
%%%%


-- Aaron Hill

Reply via email to