#include "stem-tremolo.hh"
#include "stem.hh"
#include "stream-event.hh"
-#include "pointer-group-interface.hh"
+
#include "translator.icc"
class Stem_engraver : public Engraver
make_stem (gi);
int ds = Stem::duration_log (stem_);
- int dc = d->duration_log ();
-
- // half notes and quarter notes all have compatible stems.
- // Longas are done differently (oops?), so we can't unify
- // them with the other stemmed notes.
- if (ds == 1)
- ds = 2;
- if (dc == 1)
- dc = 2;
- // whole notes and brevis both have no stems
- if (ds == -1)
- ds = 0;
- if (dc == -1)
- dc = 0;
-
- if (ds != dc)
+
+ if (ds != d->duration_log ())
{
- ds = Stem::duration_log (stem_);
gi.event_cause ()->origin ()->warning (_f ("adding note head to incompatible stem (type = %d/%d)",
ds < 0 ? 1 << -ds : 1,
ds > 0 ? 1 << ds : 1));
gi.event_cause ()->origin ()->warning (_ ("maybe input should specify polyphonic voices"));
- if (ds == 1 && dc > 2) {
- Grob *old_stem = stem_;
- stem_=0;
- make_stem(gi);
- extract_grob_set (old_stem, "note-heads", heads);
- for (int i=heads.size(); i--;)
- Stem::add_head(stem_, heads[i]);
- }
}
-
+
Stem::add_head (stem_, gi.grob ());
}