- splitm = Moment::unsmob (scm_caar (split_list_));
- if (splitm && *splitm + start_moment_ > now)
- break;
-
- SCM tag = scm_cdar (split_list_);
-
- Context *outletsBefore[] = { first_iter_->get_outlet (),
- second_iter_->get_outlet () };
-
- 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 (scm_is_eq (tag, ly_symbol2scm ("apart-silence")));
- 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, (last_playing_ == 2) ? 2 : 1);
- }
- else if (scm_is_eq (tag, ly_symbol2scm ("unisilence")))
- {
- // as for unisono
- unisono (true, (last_playing_ == 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);
- }