- /*
- We can not read the property, since music_iter_->report_to() might
- not be the context that sets the melisma properties, but rather a
- parent context.
- */
- return music_iter_->try_music (melisma_playing_req);
+ SCM voice_name = lyricsto_voice_name_;
+ SCM running = lyrics_context_
+ ? lyrics_context_->get_property ("associatedVoice")
+ : SCM_EOL;
+
+ if (scm_is_string (running))
+ voice_name = running;
+
+ if (scm_is_string (voice_name)
+ && (!music_context_ || ly_scm2string (voice_name) != music_context_->id_string ()))
+ {
+ Context *t = get_outlet ();
+ while (t && t->get_parent_context ())
+ t = t->get_parent_context ();
+
+ string name = ly_scm2string (voice_name);
+ return find_context_below (t, ly_symbol2scm ("Voice"), name);
+ }
+
+ return 0;