+ second_iter_->substitute_outlet (two_.report_to (), null_.report_to ());
+ second_iter_->substitute_outlet (shared_.report_to (), null_.report_to ());
+
+ if (playing_state_ != UNISONO
+ && newstate == UNISONO)
+ {
+ static Music* event;
+ if (!event)
+ event = make_music_by_name (ly_symbol2scm ("UnisonoEvent"));
+
+ first_iter_-> try_music_in_children (event);
+ playing_state_ = UNISONO;
+ }
+ state_ = newstate;
+ }
+}
+
+void
+New_pc_iterator::solo2 ()
+{
+ if (state_ == SOLO2)
+ return;
+ else
+ {
+ state_ = SOLO2;
+
+ second_iter_->substitute_outlet (null_.report_to (), shared_.report_to ());
+ second_iter_->substitute_outlet (two_.report_to (), shared_.report_to ());
+
+ first_iter_->substitute_outlet (one_.report_to (), null_.report_to ());
+ first_iter_->substitute_outlet (shared_.report_to (), null_.report_to ());
+
+ if (playing_state_ != SOLO2)
+ {
+ static Music* event;
+ if (!event)
+ event = make_music_by_name (ly_symbol2scm ("SoloTwoEvent"));
+
+ second_iter_-> try_music_in_children (event);
+ playing_state_ = SOLO2;
+ }
+ }
+}
+
+void
+New_pc_iterator::apart (bool silent)
+{
+ if (!silent)
+ playing_state_ = APART;
+
+ if (state_ == APART)
+ return;
+ else
+ {
+ state_ = APART;
+
+ first_iter_->substitute_outlet (null_.report_to (), one_.report_to ());
+ first_iter_->substitute_outlet (shared_.report_to (), one_.report_to ());
+
+ second_iter_->substitute_outlet (null_.report_to (), two_.report_to ());
+ second_iter_->substitute_outlet (shared_.report_to (), two_.report_to ()); }
+}