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

Reply via email to