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/

Reply via email to