+ADD_TRANSLATOR (Beam_engraver,
+ /* descr */ "Handles Beam events by engraving Beams. If omitted, then notes will be "
+ "printed with flags instead of beams.",
+ /* creats*/ "Beam",
+ /* accepts */ "beam-event",
+ /* acks */ "stem-interface rest-interface",
+ /* reads */ "beamMelismaBusy beatLength subdivideBeams",
+ /* write */ "");
+
+class Grace_beam_engraver : public Beam_engraver
+{
+public:
+ TRANSLATOR_DECLARATIONS (Grace_beam_engraver);
+
+protected:
+ virtual bool valid_start_point ();
+ virtual bool valid_end_point ();
+};
+
+Grace_beam_engraver::Grace_beam_engraver ()
+{
+}
+
+bool
+Grace_beam_engraver::valid_start_point ()
+{
+ Moment n = now_mom ();
+
+ return n.grace_part_ != Rational (0);
+}