Le dimanche 11 juin 2023 à 23:55 +0200, Lib Lists a écrit : > Hello, > I'm (re)working on a series of pieces for player piano. I'd like to > find a way to generate all the \scaleDurations values so that I don't > have to type them by hand. In the example below they follow a simple > pattern (60/60k 60/59, 60/58, etc.). Unfortunately my knowledge of > Scheme is very limited. Moreover, I wouldn't know how to insert the > generated values to the right staves. > Any hint would be really appreciated!
Like this?
```
\version "2.25.5"
mus = \repeat unfold 3 { c c c c }
\score {
\new StaffGroup <<
#@(map (lambda (i)
#{ \new Staff { \scaleDurations #(cons 60 i) \mus } #})
(iota 10 60 -1))
>>
\layout {
\enablePolymeter
\context {
\Score
\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/4)
proportionalNotationDuration = #(ly:make-moment 1/10)
\override SpacingSpanner.uniform-stretching = ##t
\override SpacingSpanner.strict-note-spacing = ##t
\remove "Timing_translator"
forbidBreakBetweenBarLines = ##f
}
\context {
\Staff
\remove "Time_signature_engraver"
\override BarLine.stencil = ##f
\override BarLine.allow-span-bar = ##f
}
\context {
\Voice
\remove Forbid_line_break_engraver
}
}
}
```
The `60/59` notation is just LilyPond syntax for the Scheme pair `(60 . 59)`.
There is some info about `#@`
[here](https://extending-lilypond.gitlab.io/en/extending/intro.html#inserting-scheme-inside-lilypond)
(and if you didn't know about pairs, you can read
[this](https://extending-lilypond.gitlab.io/en/scheme/alists.html#a-word-on-pairs)).
Best,
Jean
signature.asc
Description: This is a digitally signed message part
