Re: partCombine returns wrongly if \tags are used
Hello, On 27/12/2020 08:52, Thomas Morley wrote: the initial example works at least since 2.8.0 (yes, I've a working 2.8.0) A long time... Tbh, I couldn't figure why it works before 2.19.21, though, if it doesn't anymore, it should be documented either as it is done for \relative already or in "Known issues and warnings" probably together with \relative. See also this post on the user-list: https://lists.gnu.org/archive/html/lilypond-user/2020-11/msg00243.html Entered as https://gitlab.com/lilypond/lilypond/-/issues/6078 James ___ bug-lilypond mailing list bug-lilypond@gnu.org https://lists.gnu.org/mailman/listinfo/bug-lilypond
Re: partCombine returns wrongly if \tags are used
Am Sa., 26. Dez. 2020 um 20:46 Uhr schrieb Dan Eble : > > On Dec 26, 2020, at 13:29, Thomas Morley wrote: > > > > Hi, > > > > the following code gives bad output. > > > > %% Start > > \version "2.20.0" > > > > one = { e''2 \tag #'score f'' \tag #'part fis'' g''1 } > > two = { e''2 d'' g'1 } > > > > \removeWithTag #'score \partCombine \one \two > > %% end > > > > it looks like tags are not > > respected for the length of `skip`, but both are counted, thus the > > length is off. > > Harm, > > I would call this a known issue, and there are other features that similarly > interfere with \partCombine. If it ever seemed to work in the past, it > depended on the specifics of the music. > > \partCombine is a two-pass feature. In your example, the first pass does not > know that you will be removing tagged music, so the information it records is > inconsistent with the music when it comes time for the second pass. If you > want to use \partCombine with filtering, unfolded repeats, or other > transformations, you must transform first so that the music is in its final > form before the first pass, something like this: > > \partCombine { \removeWithTag … \one } { \removeWithTag … \two } > > Merry Christmas, > — > Dan > Hi Dan, the initial example works at least since 2.8.0 (yes, I've a working 2.8.0) A long time... Tbh, I couldn't figure why it works before 2.19.21, though, if it doesn't anymore, it should be documented either as it is done for \relative already or in "Known issues and warnings" probably together with \relative. See also this post on the user-list: https://lists.gnu.org/archive/html/lilypond-user/2020-11/msg00243.html All the best, Harm ___ bug-lilypond mailing list bug-lilypond@gnu.org https://lists.gnu.org/mailman/listinfo/bug-lilypond
Re: partCombine returns wrongly if \tags are used
On Dec 26, 2020, at 13:29, Thomas Morley wrote: > > Hi, > > the following code gives bad output. > > %% Start > \version "2.20.0" > > one = { e''2 \tag #'score f'' \tag #'part fis'' g''1 } > two = { e''2 d'' g'1 } > > \removeWithTag #'score \partCombine \one \two > %% end > > it looks like tags are not > respected for the length of `skip`, but both are counted, thus the > length is off. Harm, I would call this a known issue, and there are other features that similarly interfere with \partCombine. If it ever seemed to work in the past, it depended on the specifics of the music. \partCombine is a two-pass feature. In your example, the first pass does not know that you will be removing tagged music, so the information it records is inconsistent with the music when it comes time for the second pass. If you want to use \partCombine with filtering, unfolded repeats, or other transformations, you must transform first so that the music is in its final form before the first pass, something like this: \partCombine { \removeWithTag … \one } { \removeWithTag … \two } Merry Christmas, — Dan ___ bug-lilypond mailing list bug-lilypond@gnu.org https://lists.gnu.org/mailman/listinfo/bug-lilypond
partCombine returns wrongly if \tags are used
Hi, the following code gives bad output. %% Start \version "2.20.0" one = { e''2 \tag #'score f'' \tag #'part fis'' g''1 } two = { e''2 d'' g'1 } \removeWithTag #'score \partCombine \one \two %% end Afaict, first bad commit is commit 615571eda2393eba537c3ad0eb2d424f8dd218b0 Author: Dan Eble Date: Wed May 27 21:23:45 2015 -0400 Issue 4423: eliminate part combiner's array of context handles (4/4) The Part_combine_iterator no longer creates or keeps alive the Voice contexts that it uses. make-directed-part-combine-music does it. When the Part_combine_iterator needs to redirect a child iterator, it finds the new Voice by name among the siblings of the current Voice. which is 2.19.21 Since then the code changed a lot. As a guess, in `make-directed-part-combine-music` from music-functions-init.ly of current master, it looks like tags are not respected for the length of `skip`, but both are counted, thus the length is off. Cheers, Harm ___ bug-lilypond mailing list bug-lilypond@gnu.org https://lists.gnu.org/mailman/listinfo/bug-lilypond