+ return new_audio_staff (voice);
+}
+
+Audio_span_dynamic *
+Staff_performer::get_dynamic (const string &voice)
+{
+ map<string, Audio_span_dynamic *>::const_iterator i = dynamic_map_.find (voice);
+ if (i != dynamic_map_.end ())
+ return i->second;
+ return 0;
+}
+
+void
+Staff_performer::process_music ()
+{
+}
+
+void
+Staff_performer::set_instrument (int channel, const string &voice)
+{
+ instrument_ = new Audio_instrument (instrument_string_);
+ instrument_->channel_ = channel;
+ announce_element (Audio_element_info (instrument_, 0));
+ Audio_staff *audio_staff = get_audio_staff (voice);
+ audio_staff->add_audio_item (instrument_);
+ SCM drums = Lily::percussion_p (ly_symbol2scm (instrument_string_.c_str ()));
+ audio_staff->percussion_ = to_boolean (drums);
+}
+
+void
+Staff_performer::set_instrument_name (const string &voice)
+{
+ instrument_name_ = new Audio_text (Audio_text::INSTRUMENT_NAME,
+ instrument_string_);
+ announce_element (Audio_element_info (instrument_name_, 0));
+ get_audio_staff (voice)->add_audio_item (instrument_name_);
+}
+
+void
+Staff_performer::stop_translation_timestep ()
+{
+ name_ = 0;
+ tempo_ = 0;