+#include "timing-translator.hh"
+#include "engraver.hh"
+#include "grob.hh"
+
+/**
+ Do time bookkeeping
+ */
+class Timing_engraver : public Timing_translator, public Engraver
+{
+protected:
+ /* Needed to know whether we're advancing in grace notes, or not. */
+ Moment last_moment_;
+
+ virtual void start_translation_timestep ();
+ virtual void initialize ();
+ virtual void process_music();
+ virtual void stop_translation_timestep ();
+
+public:
+ TRANSLATOR_DECLARATIONS (Timing_engraver);
+};
+
+
+Timing_engraver::Timing_engraver ()
+{
+ last_moment_.main_part_ = Rational (-1);
+}