On 2020-09-24 2:51 am, Jan-Peter Voigt wrote:
Hi all,
after some other very involving projects I can now refocus on lilypond
:-)
I probably missed a change in 2.20/21. If I create a scheme-engraver
the
"start-translation-timestep" slot is not called, if the "initialize"
slot has been called in this particular timestep. If this the intended
behaviour I appreciate it because it is consistent. The "start-trans.."
slot wasn't called before for instant voices, but for regular installed
contexts. So now I have to finish "initialize" of the engraver with
"start-trans..." in any case.
So my question is if this is intended and not likely to change?
Sorry, if I missed discussion about this!
I have a demo below, where you can see that "start-trans..." is not
called, if "initialize" has been called before in the same timestep.
It would seem that initialize/finalize are primarily concerned with the
lifetime of the context whereas (start|stop)-translation-timestep deal
with moving from one moment to the next in music. As such I do not see
these things as related, so what would be the reason for initialize to
trump start-translation-timestep?
I am curious more about the statement that start-translation-timestep
was not "called before for instant voices, but for regular installed
contexts". Do you have a MWE that demonstrates this behavior? Running
the code you already provided against 2.18.2 and 2.19.55 (both via
lilybin.com), and 2.20.0 locally show the call to
start-translation-timestep after initialize for all three contexts.
-- Aaron Hill