- {
- 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);
-
- SCM props = transpose_mutable (ev->get_property_alist (true), diff);
- ev = new Stream_event (ev->get_property ("class"), props);
- transposed_musics_ = scm_cons (ev->unprotect (), transposed_musics_);
- }
- quote_outlet_.get_outlet ()->event_source ()->broadcast (ev);
- }
- }
+ {
+ 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, is_cue))
+ {
+ /* 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 (mp, qp);
+ ev = ev->clone ();
+ ev->make_transposable ();
+ ev->transpose (diff);
+ transposed_musics_ = scm_cons (ev->unprotect (), transposed_musics_);
+ }
+ quote_outlet_.get_context ()->event_source ()->broadcast (ev);
+ }
+ }