#include "stem.hh"
#include "stencil.hh"
#include "warn.hh"
+#include "beam.hh"
/*
TODO:
&& !stem->extent (stem, Y_AXIS).is_empty ())
{
ei.stem_ = stem->extent (common[Y_AXIS], Y_AXIS)[dir];
+ if (Grob * b = Stem::get_beam (stem))
+ {
+ ei.stem_ += stem_dir * 0.5 *Beam::get_thickness (b);
+ }
+
}
else
ei.stem_ = ei.head_;
{
if (extremes[d].stem_extent_[Y_AXIS].contains (os[d][Y_AXIS]))
{
- os[d][X_AXIS] -= d * extremes[d].slur_head_extent_.length ();
+ os[d][X_AXIS] = extremes[d].slur_head_extent_[-d]
+ - d * 0.3;
}
else if (dir *extremes[d].stem_extent_[Y_AXIS][dir] < dir * os[d][Y_AXIS])
{
continue;
Real y = bez.get_other_coordinate (X_AXIS, x);
- Real head_dy = (y - infos[j].head_);
- if (dir * head_dy < 0)
- {
- demerit += score_param->HEAD_ENCOMPASS_PENALTY;
- }
- else
- {
- Real hd =
- (head_dy) ? (1/(fabs (head_dy) - 1/score_param->FREE_HEAD_DISTANCE))
- : score_param->HEAD_ENCOMPASS_PENALTY;
- hd = (hd >? 0)<? score_param->HEAD_ENCOMPASS_PENALTY;
- demerit += hd;
- }
-
+ if (j && j < infos.size () -1)
+ {
+ Real head_dy = (y - infos[j].head_);
+ if (dir * head_dy < 0)
+ {
+ demerit += score_param->HEAD_ENCOMPASS_PENALTY;
+ }
+ else
+ {
+ Real hd =
+ (head_dy) ? (1/fabs (head_dy) - 1/score_param->FREE_HEAD_DISTANCE)
+ : score_param->HEAD_ENCOMPASS_PENALTY;
+ hd = (hd >? 0)<? score_param->HEAD_ENCOMPASS_PENALTY;
+
+ demerit += hd;
+ }
+ }
if (dir * (y - infos[j].stem_) < 0)
demerit += score_param->STEM_ENCOMPASS_PENALTY;
else if (j && j < encompasses.size () - 1)
Real demerit = 0.0;
if (!has_beams)
- demerit += score_param->STEEPER_SLOPE_FACTOR * (dir * (fabs (slur_dy) - fabs (dy)) >? 0);
+ /*
+ 0.2: account for staffline offset.
+ */
+ demerit += score_param->STEEPER_SLOPE_FACTOR * (dir * (fabs (slur_dy) - fabs (dy + 0.2)) >? 0);
demerit += ((fabs (slur_dy/slur_dz[X_AXIS]) - score_param->MAX_SLOPE)>?0) * score_param->MAX_SLOPE_FACTOR;
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-07-18 15:06+0200\n"
+"POT-Creation-Date: 2004-07-18 16:01+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#. for --output-format.
#. Bug in option parser: --output=foe is taken as an abbreviation
#. for --output-format.
+#. Bug in option parser: --output=foe is taken as an abbreviation
+#. for --output-format.
#: lilypond-book.py:82 old-lilypond-book.py:123 main.cc:138 lily/main.cc:125
msgid "EXT"
msgstr ""
#. FIXME: broken sentence
#. FIXME: broken sentence
#. FIXME: broken sentence
+#. FIXME: broken sentence
#: all-font-metrics.cc:100 lily/all-font-metrics.cc:95
#, c-format
msgid "checksum mismatch for font file: `%s'"
msgid "barcheck failed at: %s"
msgstr ""
-#: beam.cc:151 lily/beam.cc:151
+#: beam.cc:151 lily/beam.cc:151 lily/beam.cc:149
msgid "beam has less than two visible stems"
msgstr ""
-#: beam.cc:156 lily/beam.cc:156
+#: beam.cc:156 lily/beam.cc:156 lily/beam.cc:154
msgid "removing beam with less than two stems"
msgstr ""
-#: beam.cc:1040 lily/beam.cc:1040
+#: beam.cc:1040 lily/beam.cc:1040 lily/beam.cc:1038
msgid "no viable initial configuration found: may not find good beam slope"
msgstr ""
#.
#. last->translator_id_string () = get_change ()->change_to_id_string ();
#.
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_string () = get_change ()->change_to_id_string ();
+#.
#: change-iterator.cc:93 lily/change-iterator.cc:93
msgid "I'm one myself"
msgstr ""
#. No version number or newline here. It confuses help2man.
#. No version number or newline here. It confuses help2man.
#. No version number or newline here. It confuses help2man.
+#. No version number or newline here. It confuses help2man.
#: main.cc:196 lily/main.cc:181
#, c-format
msgid "Usage: %s [OPTIONS]... FILE..."
#.
#. music for the softenon children?
#.
+#.
+#. music for the softenon children?
+#.
#: new-fingering-engraver.cc:155 lily/new-fingering-engraver.cc:153
msgid "music for the martians."
msgstr ""
#. this shouldn't happen, but let's continue anyway.
#. this shouldn't happen, but let's continue anyway.
#. this shouldn't happen, but let's continue anyway.
+#. this shouldn't happen, but let's continue anyway.
#: separation-item.cc:53 separation-item.cc:97 lily/separation-item.cc:53
#: lily/separation-item.cc:97
msgid "Separation_item: I've been drinking too much"
#. eaten start event?
#. How to shut up this warning, when Voice_devnull_engraver has
#. eaten start event?
+#. How to shut up this warning, when Voice_devnull_engraver has
+#. eaten start event?
#: slur-engraver.cc:139 lily/slur-engraver.cc:139
msgid "can't find start of slur"
msgstr ""
#. more of a programming error.
#. Not using ngettext's plural feature here, as this message is
#. more of a programming error.
+#. Not using ngettext's plural feature here, as this message is
+#. more of a programming error.
#: tfm-reader.cc:108 lily/tfm-reader.cc:108
#, c-format
msgid "TFM header of `%s' has only %u word (s)"
#. (Here really with a warning!)
#. If there is no such symbol, we default to the numbered style.
#. (Here really with a warning!)
+#. If there is no such symbol, we default to the numbered style.
+#. (Here really with a warning!)
#: time-signature.cc:95 lily/time-signature.cc:95
#, c-format
msgid "time signature symbol `%s' not found; reverting to numbered style"
#.
#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
#.
+#.
+#. Todo: should make typecheck?
+#.
+#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
+#.
#: time-signature-engraver.cc:57 lily/time-signature-engraver.cc:57
#, c-format
msgid "Found strange time signature %d/%d."
msgstr ""
#: lily/scm-option.cc:133 lily/scm-option.cc:161 lily/scm-option.cc:136
-#: lily/scm-option.cc:164
+#: lily/scm-option.cc:164 lily/scm-option.cc:132 lily/scm-option.cc:160
#, c-format
msgid "No such internal option: %s"
msgstr ""