-Chord_tremolo_iterator::~Chord_tremolo_iterator ()
-{
- delete child_iter_p_;
-}
-
-Music_iterator*
-Chord_tremolo_iterator::try_music_in_children (Music *m) const
-{
- return child_iter_p_->try_music (m);
+ if (elt_count == 1)
+ {
+ Music *ev = make_music_by_name (ly_symbol2scm ("TremoloEvent"));
+ ev->set_spot (*origin);
+ ev->set_property ("tremolo-type", tremolo_type);
+ return scm_list_2 (ev->unprotect (), body->self_scm ());
+ }
+ else
+ {
+ SCM tremolo_symbol = ly_symbol2scm ("TremoloSpanEvent");
+ SCM start_event_scm = scm_call_2 (ly_lily_module_constant ("make-span-event"), tremolo_symbol, scm_from_int (START));
+ unsmob_music (start_event_scm)->set_spot (*origin);
+ SCM stop_event_scm = scm_call_2 (ly_lily_module_constant ("make-span-event"), tremolo_symbol, scm_from_int (STOP));
+
+ Music *start_event = unsmob_music (start_event_scm);
+ Music *stop_event = unsmob_music (stop_event_scm);
+ start_event->set_spot (*origin);
+ stop_event->set_spot (*origin);
+ start_event->set_property ("tremolo-type", tremolo_type);
+ start_event->set_property ("expected-beam-count", scm_int2num (expected_beaming_));
+
+ return scm_list_3 (start_event_scm, body->self_scm (), stop_event_scm);
+ }