On 2020/02/17 18:41:58, dak wrote: > Are you sure this is actually a working idea? At the beginning of music, Score > does not exist and 'Timing is only (reliably?) established as an alias by the > Timing_translator. For polyrhythmic pieces, the Timing context alias is moved > down the hierarchy along with the Timing_translator.
What I'm sure of is that the stated scenario for using descend-to-context here was "the Timing_translator is moved," that input/regression/partial-polymetric.ly moves the Timing_translator, and this patch did not make any change in the regression tests. I won't claim that there is full coverage because I didn't investigate that thoroughly. About the alias: I see this in the Score definition in ly/engraver-init.ly: \alias "Timing" %% An alias for Timing is established by the Timing_translator in %% whatever context it is initialized, and the timing variables are %% then copied from wherever Timing had been previously established. %% The alias at Score level provides a target for initializing %% Timing variables in layout definitions before any %% Timing_translator has been run. The only state in which (descend-to-context ... 'Score) should have an effect is when the current context is Global. In any other state, it should change nothing. And if the current context is Global, (context-spec-music ... 'Timing) should find-or-create the Score because of the alias; descending to Score first should not be necessary. https://codereview.appspot.com/557440043/