- if (Stem::has_interface (info.grob_l_))
- {
- Grob * s = info.grob_l_;
- int f = Stem::duration_log (s);
- f = (f > 2) ? f - 2 : 1;
- Stem::set_beaming (s, f, LEFT);
- Stem::set_beaming (s, f, RIGHT);
-
- SCM d = s->get_grob_property ("direction");
- if (Stem::type_i (s) != 1)
- {
- int gap_i =Stem::duration_log (s) - ((Stem::type_i (s) >? 2) - 2);
- beam_p_->set_grob_property ("gap", gh_int2scm (gap_i));
- }
- s->set_grob_property ("direction", d);
-
- if (dynamic_cast <Rhythmic_req *> (info.music_cause ()))
- {
- Beam::add_stem (beam_p_, s);
- }
- else
- {
- String s = _ ("stem must have Rhythmic structure");
- if (info.music_cause ())
- info.music_cause ()->origin ()->warning (s);
- else
- ::warning (s);
- }
- }
- }
- else if (stem_tremolo_ && Stem::has_interface (info.grob_l_))
- {
- Stem_tremolo::set_stem (stem_tremolo_, info.grob_l_);
-
- info.grob_l_->set_grob_property ("duration-log", gh_int2scm (intlog2 (note_head_i_)));
- }
-
-
- if (repeat_ && Note_head::has_interface (info.grob_l_))
- {
- info.grob_l_->set_grob_property ("duration-log", gh_int2scm (intlog2 (note_head_i_)));
- if (dots_i_ > 0)
- {
- Item * d = new Item (get_property ("Dots"));
- Rhythmic_head::set_dots (info.grob_l_, d);
-
- d->set_grob_property ("dot-count", gh_int2scm (dots_i_));
-
- d->set_parent (info.grob_l_, Y_AXIS);
- announce_grob (d, SCM_EOL);
- }