*/
-#include "engraver.hh"
#include "beam.hh"
#include "repeated-music.hh"
#include "stem.hh"
#include "rhythmic-head.hh"
#include "engraver-group-engraver.hh"
-#include "event.hh"
#include "warn.hh"
#include "misc.hh"
#include "note-head.hh"
Chord_tremolo_engraver::Chord_tremolo_engraver ()
{
beam_ = finished_beam_ = 0;
- repeat_ =0;
+ repeat_ = 0;
flags_ = 0;
stem_tremolo_ = 0;
sequential_body_b_ = false;
beam_ = make_spanner ("Beam", repeat_->self_scm ());
beam_->set_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;
+ beam_start_location_ = robust_scm2moment (get_property ("measurePosition"), Moment (0));
}
}
void
Chord_tremolo_engraver::stop_translation_timestep ()
{
- typeset_beam ();
+ if (stem_tremolo_)
+ {
+ repeat_ = 0;
+ if (beam_)
+ programming_error ("Huh, beam and stem tremolo?");
+ stem_tremolo_ = 0;
+ }
- stem_tremolo_ = 0;
+ typeset_beam ();
}
-ENTER_DESCRIPTION (Chord_tremolo_engraver,
+ADD_TRANSLATOR (Chord_tremolo_engraver,
/* descr */ "Generates beams for tremolo repeats.",
/* creats*/ "Beam",
/* accepts */ "repeated-music",