|
From: | Simon Albrecht |
Subject: | ly:music-deep-copy and \relative |
Date: | Sat, 25 Apr 2015 13:00:46 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 |
Hello,as Harm has pointed out, the following example gives unexpected (i.e. different) output:
\version "2.19" repeat-note = #(define-music-function (parser location music)(ly:music?) (make-sequential-music (list music (ly:music-deep-copy music)))) \absolute { c'1 \repeat-note c'' } \relative c' { c \repeat-note c'1 } There are several possible ways of handling this:– Document it as a feature of ly:music-deep-copy in its search string. Users would have to circumvent it then. – Modify ly:music-deep-copy to output both copies in the same octave. This would be most intuitive for what I think, since one would expect copies to be identical. – Provide an optional (?) second argument to ly:music-deep-copy to choose between the two behaviours: abs-copy to use \relative only for determining the start of the first copy and start the second copy from the same absolute pitch; rel-copy to apply \relative also on the first note of the second copy (as in current behaviour). – Use two dedicated functions for these two ways of handling it. What would they be named? I’d suggest ly:music-deep-copy-relative (current behaviour) and ly:music-deep-copy (new behaviour).
The third option would be easiest in terms of backward compatibility, the fourth is actually a variant of the second, with an additional possibility for convert-ly updating.
Yours, Simon
[Prev in Thread] | Current Thread | [Next in Thread] |