+ Lilypond_item* item = items[i];
+
+ int to_thread;
+ if (Lilypond_note* n = dynamic_cast<Lilypond_note*> (item))
+ to_thread = thread++;
+ else
+ to_thread = 0;
+
+ if (to_thread >= threads_.size ())
+ threads_.push (new Cons_list<Lilypond_item>);
+
+ if (to_thread == 0 && item->at_mom () > mom_)
+ {
+ /* urg: skip should use refer to end-colum, not separate moment */
+ Rational r = item->at_mom () - mom_;
+ Lilypond_column* start = lilypond_score_l_g->find_column_l (mom_);
+ threads_[to_thread]->append (new Cons<Lilypond_item> (new Lilypond_skip (start, r), 0));
+ mom_ = item->at_mom ();
+ }
+
+ threads_[to_thread]->append (new Cons<Lilypond_item> (item, 0));
+ if (to_thread == 0)
+ mom_ += item->duration_mom ();