[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Cleanup and generalization: get rid of Audio_column. (issue 42600043
From: |
Devon Schudy |
Subject: |
Re: Cleanup and generalization: get rid of Audio_column. (issue 42600043) |
Date: |
Fri, 20 Dec 2013 21:57:43 -0500 |
address@hidden wrote:
> Ok, here is a filthy bad thing: in issue 2392 I finally punted and gave
> up on start_translation_timestep in implicitly created contexts to be
> reliably run.
>
> That means that for implicitly created contexts from a
> Simple_music_iterator, start_translation_timestep will only get run at
> the timestep _after_ creation.
...and it crashes on \score { { | c4 } \midi {} }, for the same reason
as issue 2392.
> If you think you can fix _that_, go ahead
OK: Issue 3744 fixes that for all score-level translators by creating
the Score context before iteration starts. Creating it later was
dubious anyway, because Score_engraver or Score_performer is needed
for iteration to work. AFAICT it's never valid to explicitly create a
score context (and the notation manual says so); if that's not true,
then this isn't safe.
Other contexts can legitimately be created during iteration, so their
translators can still miss start_translation_timestep. That could be
prevented by calling start_translation_timestep in
Translator_group::create_child_translator, but that's not strictly
accurate since it's not actually the start of a timestep. It's less
surprising for newly created contexts than for Score, though.