- beam_p_ = new Spanner (get_property ("Beam"));
- Beam::set_interface (beam_p_);
- beam_p_->set_grob_property ("chord-tremolo", SCM_BOOL_T);
-
-
- SCM smp = get_property ("measurePosition");
- Moment mp = (unsmob_moment (smp)) ? *unsmob_moment (smp) : Moment (0);
- beam_start_location_ = mp;
- announce_grob (beam_p_, repeat_);
+ if (sequential_body_b_ && !beam_)
+ {
+ beam_ = make_spanner ("Beam");
+ beam_->set_grob_property ("chord-tremolo", SCM_BOOL_T);
+
+ SCM smp = get_property ("measurePosition");
+ Moment mp
+ = (unsmob_moment (smp)) ? *unsmob_moment (smp) : Moment (0);
+ beam_start_location_ = mp;
+ announce_grob(beam_, repeat_->self_scm());
+ }
+ else if (!sequential_body_b_ && !stem_tremolo_)
+ {
+ if (flags_)
+ {
+ stem_tremolo_ = make_item ("StemTremolo");
+ announce_grob(stem_tremolo_, repeat_->self_scm());
+ stem_tremolo_->set_grob_property ("flag-count",
+ scm_int2num (flags_));
+ }
+ }