lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Add dynamic-interface to keepAliveInterfaces (issue 553760043 by add


From: jean
Subject: Re: Add dynamic-interface to keepAliveInterfaces (issue 553760043 by address@hidden)
Date: Sun, 03 May 2020 13:03:56 -0700

Thanks for you support, Valentin.

> … And, yes, I do realize that’s way too convoluted of an explanation.
If someone else can do it more straightforwardly, have at it! :-)
Hey, don't make me feel bad about my own more-than-lengthy explanations!

On 2020/03/31 20:51:05, Valentin Villenave wrote:
> You can’t say it’s undocumented, its documentation is just not meant
> for regular users:

True, I meant that this isn't just useful for internal use, you may need
it as a regular user, I think, because a conductor would think the choir
or the strings as a whole, so it can sound weird to have a system with
only violin I without violin II (hope I'm clear).

There is now a regression test as asked for, and a bit more
documentation. I added an example about Keep_alive_together_engraver,
though I'm not completely satified with it--feel free to improve. It is
taken from
https://www.universaledition.com/kurt-weill-764/works/der-jasager-1900
(Kurt Weill, Der Jasager). This score isn't actually demonstrating the
need for this (it could have been if the breaks were placed another way)
but if this is wanted, here is an example showing that it happens in
printed music:
http://imslp.eu/files/imglnks/euimg/5/54/IMSLP522307-PMLP3653-NBE_-_Symphonie_Fantastique_-_I._Reveries,_Passions_(etc).pdf
(the first page).

Yet, there is still an issue. What's happening in this example?
\version "2.21.0"

keepRests =
\applyContext
  #(lambda (context)
       (ly:context-set-property! context 'keepAliveInterfaces
         (cons 'rest-interface (ly:context-property context
'keepAliveInterfaces))))

\layout {
  \context {
    \Score
    \RemoveAllEmptyStaves
    \keepRests
  }
}

<<
  { c'1 c'1 c'1 }
  { R1 \break s1 \break R1 }
>>

I expect the second staff in the second system to disappear, but this is
not the case. Yet if you replace the surrounding R1 with r1, then it
works. Did I misunderstand the way \RemoveEmptyStaves works? How can it
depend on the other systems? It can't be put in the documentation if it
doesn't work...

Thanks!

https://codereview.appspot.com/553760043/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]