> On 30 Oct 2019, at 21:41, Thomas Morley <[email protected]> wrote: > > Am Mi., 30. Okt. 2019 um 19:44 Uhr schrieb Graham King > <[email protected]>: > >> Harm, I'm afraid I'm struggling with "#(ly:make-moment -3)" >> >> The NR[2] shows four arguments to ly:make-moment, describes two of them, and >> then speaks a little obtusely of the _second_ argument to ly:make-moment >> being possibly negative, and I can't find any examples of a negative first >> (and only) argument online. Most examples seem to use one argument, a >> positive rational, which I think I do understand. >> >> Where does this syntax come from and what does it mean? >> And why did you choose -3 ? >> >> TIA >> -- Graham >> >> [2] >> http://lilypond.org/doc/v2.19/Documentation/notation/scheme-functions#index-ly_003amake_002dmoment >> > > I intended to set common-shortest-duration to the length of a maxima, > to get tight spacing, see IR > (Similiar for base-shortest-duration, although this may be superfluous.) > And I confused ly:make-moment and ly:make-duration :( > > Though the duration-log of a maxima is -3, it's length is #<Mom 8> > > See: > \new MensuralStaff { > \compressFullBarRests > \applyMusic > #(lambda (mus) > (ly:music-set-property! mus 'duration (ly:make-duration -3)) > (format #t "\n\tLength of music: ~a\n\tDuration of music: ~a" > (ly:music-length mus) > (ly:music-property mus 'duration)) > mus) > b > } > > => > > Length of music: #<Mom 8> > Duration of music: #<Duration log = -3 > > > > So you better change in my proposal common-shortest-duration to: > \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 8) > > Cheers, > Harm
Harm, many thanks! There I was, feeling inadequate in the face of what was, evidently, some seriously recondite lilypond-fu :) I understand now. BTW, your \applyMusic lambda function is a really neat way of explaining a lot in a few lines. -- Graham
