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

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to