]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/staff-performer.cc
Doc-es: add four snippets for Fretted.
[lilypond.git] / lily / staff-performer.cc
index df2697060bff31ad56f5755870ab84ab96be1925..1f34290aac4451d185499cb8c01678daff86534f 100644 (file)
@@ -111,10 +111,12 @@ Staff_performer::new_audio_staff (string voice)
       name_ = new Audio_text (Audio_text::TRACK_NAME, context ()->id_string ()
                              + ":" + voice);
       audio_staff->add_audio_item (name_);
+      announce_element (Audio_element_info (name_, 0));
     }
   announce_element (Audio_element_info (audio_staff, 0));
-  announce_element (Audio_element_info (name_, 0));
   staff_map_[voice] = audio_staff;
+  if (!instrument_string_.empty ())
+    set_instrument (channel_, voice);
   return audio_staff;
 }
 
@@ -122,7 +124,7 @@ Audio_staff*
 Staff_performer::get_audio_staff (string voice)
 {
   SCM channel_mapping = get_property ("midiChannelMapping");
-  if (channel_mapping != ly_symbol2scm ("voice")
+  if (channel_mapping != ly_symbol2scm ("instrument")
       && staff_map_.size ())
     return staff_map_.begin ()->second;
 
@@ -264,8 +266,12 @@ Staff_performer::acknowledge_audio_element (Audio_element_info inf)
        }
       Audio_staff* audio_staff = get_audio_staff (voice);
       ai->channel_ = channel_;
+      // Output volume as velocity and disable Midi_dynamic output
       if (Audio_dynamic *d = dynamic_cast<Audio_dynamic *> (inf.elem_))
-       dynamic_map_[voice] = d->volume_;
+       {
+         dynamic_map_[voice] = d->volume_;
+         d->volume_ = -1;
+       }
       if (Real d = get_dynamic (voice))
        if (Audio_note *n = dynamic_cast<Audio_note *> (inf.elem_))
          n->volume_ = d;