2003-09-18 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ * lily/auto-beam-engraver.cc (process_music): end/junk beam if
+ special (repeat) bar comes along.
+
+ * input/regression/auto-beam-bar.ly: update.
+
* scripts/lilypond-book.py (output_dict): remove support for the
EPS option.
-\version "1.9.4"
+\version "1.9.7"
\header{
-texidoc="
-The first two a8 notes should not be beamed.
-Also, no automatic beaming accross bar lines.
-"
+texidoc="No auto beams will be put over (manual) repeat bars."
}
-\score{
-\notes \notes\relative c'' {
-\time 2/8
-a8 a
-\time 6/8
-a16 cis d a bes g fis4 g8
-%a4. fis4 g8
-a16 g a bes c d % ees8 d c
-}
-\paper{
+\score {
+ \notes {
+ \time 3/4
+ a'4 b' c''8 \bar ":|:" d''8
+ }
+ \paper{
raggedright = ##t
}
}
protected:
virtual void stop_translation_timestep ();
virtual void start_translation_timestep ();
+ virtual void process_music ();
virtual void finalize ();
virtual void acknowledge_grob (Grob_info);
virtual void process_acknowledged_grobs ();
Beaming_info_list*finished_grouping_;
};
+void
+Auto_beam_engraver::process_music ()
+{
+ if (gh_string_p (get_property ("whichBar")))
+ {
+ consider_end (shortest_mom_);
+ junk_beam ();
+ }
+}
Auto_beam_engraver::Auto_beam_engraver ()
void
Auto_beam_engraver::begin_beam ()
{
- assert (!stems_);
+ if (stems_ || grouping_ )
+ {
+ programming_error ("already have autobeam");
+ return;
+ }
+
stems_ = new Link_array<Item>;
- assert (!grouping_);
grouping_ = new Beaming_info_list;
beam_settings_ = get_property ("Beam");
void
Auto_beam_engraver::junk_beam ()
{
- assert (stems_);
+ if (!stems_)
+ return ;
delete stems_;
stems_ = 0;