- for (size_t i = 0; i < NUM_PARTS; i++)
- prev_active_outlets[i] = iterators_[i]->get_outlet ();
-
- for (; scm_is_pair (split_list_); split_list_ = scm_cdr (split_list_))
- {
- splitm = unsmob<Moment> (scm_caar (split_list_));
- if (splitm && *splitm + start_moment_ > now)
- break;
-
- SCM tag = scm_cdar (split_list_);
-
- if (scm_is_eq (tag, ly_symbol2scm ("chords")))
- chords_together ();
- else if (scm_is_eq (tag, ly_symbol2scm ("apart"))
- || scm_is_eq (tag, ly_symbol2scm ("apart-silence"))
- || scm_is_eq (tag, ly_symbol2scm ("apart-spanner")))
- apart ();
- else if (scm_is_eq (tag, ly_symbol2scm ("unisono")))
- {
- // Continue to use the most recently used part because we might have
- // killed mmrests in the other part.
- unisono (false, (chosen_part_ == 2) ? 2 : 1);
- }
- else if (scm_is_eq (tag, ly_symbol2scm ("unisilence")))
- {
- // as for unisono
- unisono (true, (chosen_part_ == 2) ? 2 : 1);
- }
- else if (scm_is_eq (tag, ly_symbol2scm ("silence1")))
- unisono (true, 1);
- else if (scm_is_eq (tag, ly_symbol2scm ("silence2")))
- unisono (true, 2);
- else if (scm_is_eq (tag, ly_symbol2scm ("solo1")))
- solo1 ();
- else if (scm_is_eq (tag, ly_symbol2scm ("solo2")))
- solo2 ();
- else if (scm_is_symbol (tag))
- {
- string s = "Unknown split directive: "
- + (scm_is_symbol (tag) ? ly_symbol2string (tag) : string ("not a symbol"));
- programming_error (s);
- }
- }
-