> \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.
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to