- bool b = get_outlet ()->try_music (mus);
-
- if (!b)
- mus->origin ()->warning (_f ("In quotation: junking event %s", mus->name()));
+ SCM ev_acc = scm_car (s);
+
+ Stream_event *ev = unsmob_stream_event (scm_car (ev_acc));
+ if (!ev)
+ programming_error ("no music found in quote");
+ else if (accept_music_type (ev))
+ {
+ /* create a transposed copy if necessary */
+ if (quote_pitch || me_pitch)
+ {
+ Pitch qp, mp;
+ if (quote_pitch)
+ qp = *quote_pitch;
+ if (me_pitch)
+ mp = *me_pitch;
+
+ Pitch diff = pitch_interval (qp, mp);
+ ev = ev->clone ();
+
+ transpose_mutable (ev->get_property_alist (true), diff);
+ transposed_musics_ = scm_cons (ev->unprotect (), transposed_musics_);
+ }
+ quote_outlet_.get_outlet ()->event_source ()->broadcast (ev);
+ }