Comment #10 on issue 1110 by d...@gnu.org: Wrong octave of repetition chord
with \relative and #{ #} syntax
http://code.google.com/p/lilypond/issues/detail?id=1110
The repeated chord implementation is built on a broken concept. This is
not the only place where Lilypond copies music and other data structures.
Misusing fields as pointers to rewritable data in the hope to track changes
is just not going to work out.
It is not even guaranteed that relativization will happen in the right
order. If you do something like
\relative c' { <c> g' \relative c'' q }
the results are simply appalling (try guessing what happens before actually
looking).
Designing a sane behavior for q is hard in itself, even assuming that the
implementation would not be as broken as it is.
Remember that music can, at will, be put through the \relative wringer, or
not. And there is no guarantee that both q and its source undergo the same
treatment. And from multiple uses, some might go through \relative, and
some not.
Basically, there is little you can do apart from _always_ tracking both
absolute and relative octaves from every chord to the next occurence of q.
And then record both versions with every q in order to know what to do when
relativizing. And if q and its source are not in the same piece of
continuous music, bomb out with an error.
_______________________________________________
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond