+ // audio_column_ can be 0 when prepare has not been called. The
+ // condition is triggered when Simple_music_iterator implicitly
+ // creates a Score context, like when writing
+ //
+ // \score { { | c4 c c c } \midi { } }
+ //
+ // The same situation happens with the Score_engraver group, but it
+ // would appear not to suffer any bad side effects.
+
+ if (!audio_column_)
+ audio_column_ = new Audio_column (context ()->now_mom ());
+ if (to_boolean (context ()->get_property ("skipTypesetting")))
+ {
+ if (!skipping_)
+ {
+ skip_start_mom_ = audio_column_->when ();
+ skipping_ = true;
+ }
+ }
+ else
+ {
+ if (skipping_)
+ {
+ offset_mom_ -= audio_column_->when () - skip_start_mom_;
+ skipping_ = false;
+ }
+
+ audio_column_->offset_when (offset_mom_);
+ precomputed_recurse_over_translators (context (), PROCESS_MUSIC, UP);
+ do_announces ();
+ }
+
+ precomputed_recurse_over_translators (context (), STOP_TRANSLATION_TIMESTEP, UP);