*/
#include "beam.hh"
-#include "beaming.hh"
+#include "beaming-pattern.hh"
#include "context.hh"
#include "drul-array.hh"
#include "duration.hh"
#include "international.hh"
#include "item.hh"
#include "rest.hh"
-#include "score-engraver.hh"
+#include "score-context.hh"
#include "spanner.hh"
#include "stem.hh"
#include "warn.hh"
Music *now_stop_ev_;
- Beaming_info_list *beam_info_;
- Beaming_info_list *finished_beam_info_;
+ Beaming_pattern *beam_info_;
+ Beaming_pattern *finished_beam_info_;
/// location within measure where beam started.
Moment beam_start_location_;
Beam_engraver::process_music ()
{
if (beam_ && !to_boolean (get_property ("allowBeamBreak")))
- get_score_engraver ()->forbid_breaks ();
+ context ()->get_score_context ()->set_property ("forbidBreak", SCM_BOOL_T);
if (start_ev_)
{
beam_start_location_ = mp;
beam_start_mom_ = now_mom ();
- beam_info_ = new Beaming_info_list;
-
+ beam_info_ = new Beaming_pattern;
/* urg, must copy to Auto_beam_engraver too */
}
}
{
if (finished_beam_)
{
- finished_beam_info_->beamify (beat_length_, subdivide_beams_);
+ if (!finished_beam_->get_bound (RIGHT))
+ finished_beam_->set_bound (RIGHT, finished_beam_->get_bound (LEFT));
+
+ finished_beam_info_->beamify (context ());
Beam::set_beaming (finished_beam_, finished_beam_info_);
delete finished_beam_info_;
if (beam_)
{
set_melisma (true);
-
- subdivide_beams_ = to_boolean (get_property ("subdivideBeams"));
- beat_length_ = robust_scm2moment (get_property ("beatLength"), Moment (1, 4));
}
}
ADD_ACKNOWLEDGER (Beam_engraver, rest);
ADD_TRANSLATOR (Beam_engraver,
- /* doc */ "Handles Beam events by engraving Beams. If omitted, then notes will be "
+ /* doc */
+
+ "Handles Beam events by engraving Beams. If omitted, then notes will be "
"printed with flags instead of beams.",
+
/* create */ "Beam",
/* accept */ "beam-event",
- /* read */ "beamMelismaBusy beatLength subdivideBeams",
- /* write */ "");
+
+ /* read */
+ "beamMelismaBusy "
+ "beatLength "
+ "subdivideBeams "
+ ,
+ /* write */
+ "forbidBreak");
class Grace_beam_engraver : public Beam_engraver
{
ADD_ACKNOWLEDGER (Grace_beam_engraver, stem);
ADD_ACKNOWLEDGER (Grace_beam_engraver, rest);
+
ADD_TRANSLATOR (Grace_beam_engraver,
- /* doc */ "Handles Beam events by engraving Beams. If omitted, then notes will "
+
+ /* doc */
+
+ "Handles Beam events by engraving Beams. If omitted, then notes will "
"be printed with flags instead of beams. Only engraves beams when we "
" are at grace points in time. ",
+
/* create */ "Beam",
/* accept */ "beam-event",
- /* read */ "beamMelismaBusy beatLength allowBeamBreak subdivideBeams",
+ /* read */
+ "beamMelismaBusy "
+ "beatLength "
+ "allowBeamBreak "
+ "subdivideBeams "
+ ,
/* write */ "");