Hi,

I'm trying to define a music function as below, however I've faced
difficulties with parameter predicates, visibility of the Staff object, and
flexibility of the solution ideally without code duplication

*Desired music function* (the code is not working)

  momentBeat = #(define-music-function (moment beat scope)
    (fraction? list? (what? Staff))
    #{
      \set #scope.beamExceptions = #'()
      \set #scope.baseMoment = #(ly:make-moment moment)
      \set #scope.beatStructure = #beat
    #})

*Usage*

\momentBeat 1/2 #'(1)
\momentBeat 1/4 1,1,1,1 Voice

*Questions*

   - It seems that Staff is not available to Guile at that moment. I tried
   to use "Staff" string and 'Staff symbol for the scope parameter with a cond
   expression and code replication for Staff and Voice, but I did not manage
   to get it to work due to incorrect predicates errors
   - How would it look like an idiomatic and working implementation of the
   above music function?

Thank you,
Vlad

Reply via email to