Gianmaria Lari <gianmarial...@gmail.com> writes: >> \repeat unfold is not evaluated at all. It stays a repeat expression >> until it gets interpreted. One reason it is implemented that way is in >> order to keep the repeats in >> >> \relative c' { \repeat unfold 4 { c e g } } >> >> in the same octave rather than get >> >> \relative c' { c e g c e g c e g c e g } >> >> which crosses four octaves. > > I understand this pragmatism. It is clear that in a piece when you write > something like > > \relative c' { > ....somemusic..... > \repeat unfold 4 { c e g } > ....somemusic..... > } > > > you expect to repeat {c e g} on the same octave. If you don't do it, > \relative became a command pretty unusable. > > But the side effect of this semantic choice looks very important to me. > We're introducing a strong exceptional behavior, don't we? > For me (this is my opinion, and of course I'm not a lilypond/musician etc. > expert) I would prefer force the user to write > > \version "2.19.54" > { > \repeat unfold 2 \relative c' {c e g} > } > > > rather than lost the orthogonality of the language. > Just my two cents.
\repeat xxxx { } generates a repeat expression. Whether that xxxx is "unfold" or not. And relativity works "linearly" across the expression even when alternatives are involved where having to write \relative each time would be a royal pita. -- David Kastrup _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user