+Engravers are C++ classes that catch music events and
+create the appropriate grobs for display on the page. Each different
+type of grob has its own engraver.
+
+A typical engraver has protected functions including some or all
+of the following:
+
+@itemize
+@item @code{start_translation_timestep ()}
+@item @code{process_music ()}
+@item @code{stop_translation_timestep ()}
+@item @code{derived_mark ()}
+@item @code{try_music ()}
+@end itemize
+
+There are also protected functions that are specific to particular
+engraver, as needed by the engraving process.
+
+External interfaces to to the engraver are implemented by protected
+macros including one or more of the following:
+
+@itemize
+@item @code{DECLARE_ACKNOWLEDGER (grob)}
+@item @code{DECLARE_TRANSLATOR_LISTENER (grob)}
+@item @code{DECLARE_END_ACKNOWLEDGER (grob)}
+@end itemize
+
+where @var{grob} is the
+type of grob with which the engraver works.
+These macros declare the kinds of grobs that will be processed by
+the engraver.
+
+
+