Hi Knute,

%%% Start
\version "2.24.4"

staffStaffSpacing =
#(define-music-function (off dist) (number? number?)
   #{
      \once \override
        Score
        .NonMusicalPaperColumn
        .line-break-system-details
        = #'((Y-offset . off)
             (alignment-distances . (dist)))
   #})

The right hand side of = is "quoted" (in Scheme terms), i.e. prefixed by '. This means that Y-offset, off, alignment-distances, dist are taken as symbols, not evaluated.

The way to evaluate _some_ terms in an expression is to use "quasiquoting" with ` instead of ' and prefixing the words that should get evaluated by ,. This yields:

staffStaffSpacing =
#(define-music-function (off dist) (number? number?)
   #{
      \once \override
        Score
        .NonMusicalPaperColumn
        .line-break-system-details
        = #`((Y-offset . ,off)
             (alignment-distances . (,dist)))
   #})

HTH
Lukas

Reply via email to