bug-lilypond
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Issue 1630 in lilypond: Completion heads engraver produces duplicate tie


From: lilypond
Subject: Issue 1630 in lilypond: Completion heads engraver produces duplicate ties
Date: Thu, 21 Apr 2011 10:09:31 +0000

Status: Accepted
Owner: ----
Labels: Type-Defect Priority-Low

New issue 1630 by address@hidden: Completion heads engraver produces duplicate ties
http://code.google.com/p/lilypond/issues/detail?id=1630

Reported by Ornello:

The completion heads engraver produces duplicate ties (see following
example):

--------------------------

\version "2.12.3"

\layout {
\context {
\Voice
\remove "Note_heads_engraver"
\consists "Completion_heads_engraver"
}
}

{
c2 ~ c8
}

-------------------------

This example produces correct image, but instead of one tie, two ties are
produced at the identical position. This can be verified e.g. by running
lilypond with the -dbackend=scm option from the command line (I have marked
the duplicate tie grobs in the scm output below):

-------------------------

;;Creator: LilyPond

;; raw SCM output

;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;PAGE

(translate-stencil (5.69055118110236 . 0.0) (combine-stencil
(combine-stencil (combine-stencil () (translate-stencil (0.0 .
-5.12149606299213) (combine-stencil (translate-stencil (0.0 .
2.27622047244094) (combine-stencil (translate-stencil (54.0602362204724 .
0.0) (combine-stencil (translate-stencil (54.0602362204724 . 0.0) "") ""))
(utf-8-string "Century Schoolbook L 3.865234375" " "))) "")))
(translate-stencil (0.0 . -7.45015748031496) (combine-stencil
(translate-stencil (8.53582677165354 . -4.5) (grob-cause #<Grob
LedgerLineSpanner > (translate-stencil (-8.53582677165354 . 0.0)
(combine-stencil (combine-stencil (translate-stencil (0.0 . -3.0)
(round-filled-box -16.8883247716535 18.9733007716535 0.1 0.1 0.2))
(combine-stencil (translate-stencil (0.0 . -4.0) (round-filled-box
-16.8883247716535 18.9733007716535 0.1 0.1 0.2)) (combine-stencil
(translate-stencil (0.0 . -5.0) (round-filled-box -16.8883247716535
18.9733007716535 0.1 0.1 0.2)) (combine-stencil (translate-stencil (0.0 .
-6.0) (round-filled-box -16.8883247716535 18.9733007716535 0.1 0.1 0.2))
())))) (combine-stencil (combine-stencil (translate-stencil (0.0 . -3.0)
(round-filled-box -21.8967602716535 23.8710272716535 0.1 0.1 0.2))
(combine-stencil (translate-stencil (0.0 . -4.0) (round-filled-box
-21.8967602716535 23.8710272716535 0.1 0.1 0.2)) (combine-stencil
(translate-stencil (0.0 . -5.0) (round-filled-box -21.8967602716535
23.8710272716535 0.1 0.1 0.2)) (combine-stencil (translate-stencil (0.0 .
-6.0) (round-filled-box -21.8967602716535 23.8710272716535 0.1 0.1 0.2))
())))) ()))))) (translate-stencil (8.53582677165354 . -4.5) (grob-cause
#<Grob StaffSymbol > (combine-stencil (translate-stencil (0.0 . -2.0)
(draw-line 0.1 0.0500000000000007 0.0 16.156156 0.0)) (combine-stencil
(translate-stencil (0.0 . -1.0) (draw-line 0.1 0.0500000000000007 0.0
16.156156 0.0)) (combine-stencil (translate-stencil (0.0 . 0.0) (draw-line
0.1 0.0500000000000007 0.0 16.156156 0.0)) (combine-stencil
(translate-stencil (0.0 . 1.0) (draw-line 0.1 0.0500000000000007 0.0
16.156156 0.0)) (combine-stencil (translate-stencil (0.0 . 2.0) (draw-line
0.1 0.0500000000000007 0.0 16.156156 0.0)) ()))))))) (translate-stencil
(13.5358267716535 . -4.5) (grob-cause #<Grob TimeSignature > (named-glyph
#<Font_metric ("emmentaler-20" . 0.569055118110236)> "timesig.C44")))
(translate-stencil (9.33582677165354 . -5.5) (grob-cause #<Grob Clef >
(named-glyph #<Font_metric ("emmentaler-20" . 0.569055118110236)>
"clefs.G"))) (translate-stencil (17.2358207716535 . -4.5) (grob-cause #<Grob
Tie > (bezier-sandwich (quote ((2.27083506382979 . -7.59716336915174)
(4.10913293617021 . -7.59716336915174) (4.789984 . -7.0) (1.589984 . -7.0)
(4.10913293617021 . -7.71716336915174) (2.27083506382979 .
-7.71716336915174) (1.589984 . -7.0) (4.789984 . -7.0))) 0.08)))
(translate-stencil (23.4769827716535 . -4.5) (grob-cause #<Grob Stem >
(combine-stencil (translate-stencil (0.065 . 0.0) (translate-stencil (0.0 .
-0.04) (named-glyph #<Font_metric ("emmentaler-20" . 0.569055118110236)>
"flags.u3"))) (combine-stencil (round-filled-box 0.065 0.065 6.312186 0.0
0.08) ())))) (translate-stencil (17.2358207716535 . -4.5) (grob-cause #<Grob
Tie > (bezier-sandwich (quote ((2.27083506382979 . -7.59716336915174)
(4.10913293617021 . -7.59716336915174) (4.789984 . -7.0) (1.589984 . -7.0)
(4.10913293617021 . -7.71716336915174) (2.27083506382979 .
-7.71716336915174) (1.589984 . -7.0) (4.789984 . -7.0))) 0.08)))
(translate-stencil (22.2258047716535 . -11.0) (grob-cause #<Grob NoteHead >
(named-glyph #<Font_metric ("emmentaler-20" . 0.569055118110236)>
"noteheads.s2"))) (translate-stencil (18.5608047716535 . -4.5) (grob-cause
#<Grob Stem > (combine-stencil () (combine-stencil (round-filled-box 0.065
0.065 6.238614 0.0 0.08) ())))) (translate-stencil (17.2358207716535 .
-11.0) (grob-cause #<Grob NoteHead > (named-glyph #<Font_metric
("emmentaler-20" . 0.569055118110236)> "noteheads.s1"))))))
(translate-stencil (0.0 . -161.236077165354) (combine-stencil
(translate-stencil (0.0 . -3.91509921259842) (combine-stencil
(translate-stencil (25.7725062992126 . 0.0) (combine-stencil
(translate-stencil (82.3479661417323 . 0.0) "") (combine-stencil (url-link
"http://lilypond.org/web/"; (quote (0.0 . 56.5754598425197)) (quote
(-0.443862992125984 . 1.63887874015748))) (utf-8-string "Century Schoolbook
L 3.865234375" "Music engraving by LilyPond
2.12.3â\x80”www.lilypond.org")))) "")) ""))))

-------------------------

It seems that this has been an incorrect bugfix for issue 498. The lines
producing the duplicate tie are in completion-note-heads-engraver, lines
215-227:

-------------------------

  if (pending_ties_.size ()
      && pending_ties_.front().when_ == now_mom())
    {
      for (vsize i = 0; i < tie_note_candidate_events_.size(); i++)
for (vsize j = 0; j < note_events_.size(); j++)
  {
    Pitch *p =  unsmob_pitch (note_events_[j]->get_property ("pitch"));
    Pitch *p_last
      = unsmob_pitch (tie_note_candidate_events_[j]->get_property
("pitch"));
    if (p && p_last && *p == *p_last)
      make_tie (tie_note_candidates_[i], notes_[j]);
  }
    }

-------------------------

Removing these lines reopens issue 498. Hope that helps improving the
completion heads engraver...




reply via email to

[Prev in Thread] Current Thread [Next in Thread]