Menu

#1713 Whole note/dotted note collision in polyphony

Verified
nobody
Ugly
2015-09-19
2011-06-26
Anonymous
No

Originally created by: *anonymous

Originally created by: ColinPKC...@gmail.com
Originally owned by: k-ohara5...@oco.net

Reported by Connor Harris:

\version "2.14.1"

%{ When whole notes and shorter notes are in polyphony, they normally appear as
in the measure on the left. With dotted notes, though, LilyPond moves the
shorter note to the right of the whole note, but not far enough, causing a
collision. %}

<< {d'2 s2 d'2.} \\ {d'1 d'1}>>

Note: this may be related to issue 1546, Breve collides with noteheads in other voices?

1 Attachments

Related

Issues: #1546

Discussion

1 2 > >> (Page 1 of 2)
  • Google Importer

    Google Importer - 2011-06-26

    Originally posted by: connor...@gmail.com

    For what it's worth, the same problem appears with up-stemmed notes, and when the notes are a step apart, LilyPond gets the horizontal spacing right.

    \version "2.14.1"

    << { c''2. s4 c''2.} \\ {c''1 b'1} >>

    - Connor Harris

     
  • Google Importer

    Google Importer - 2011-06-27

    Originally posted by: brownian.box@gmail.com

    This may be related to Issue 1546.

     

    Related

    Issues: #1546

  • Google Importer

    Google Importer - 2011-08-20

    Originally posted by: percival.music.ca@gmail.com

    (No comment was entered for this change.)

    Labels: -type-Collision Type-Ugly

     
  • Google Importer

    Google Importer - 2011-12-08

    Originally posted by: pkx1...@gmail.com

    (No comment was entered for this change.)

    Labels: -Priority-High

     
  • Google Importer

    Google Importer - 2012-02-07

    Originally posted by: janek.li...@gmail.com

    (No comment was entered for this change.)

    Owner: janek.li...@gmail.com
    Status: Started

     
  • Google Importer

    Google Importer - 2012-04-28

    Originally posted by: janek.li...@gmail.com

    (No comment was entered for this change.)

    Owner: ---

     
  • Google Importer

    Google Importer - 2012-04-28

    Originally posted by: plros...@gmail.com

    Dots are not essential for the problem.  In this case, Lilypond decides to put a chord of wholes on the left.  In the second measure, the notes have different pitch, yet they collide.
    << { e'2 s2 e'2 s2 } \\ { <d' e'>1 <d' f'>1 } >>

     
  • Google Importer

    Google Importer - 2012-05-02

    Originally posted by: k-ohara5...@oco.net

    Have you started yet, Janek ?

    I see the problem.  The horizontal shifts are scaled with the width of the down-stem note-head.  [Edit: Well, these examples with whole notes don't seem to scale with the down-stem note-width, because the fix to issue 53 layered another set of correction factors on top of that for the special case of whole notes.]

    The shift should, however, be proportional to the width of the note-head that ends up on the left (because the reference points for note-heads are on their left).  (Better still to use the sum of extents between the reference points.)

    I see a path to fix this and issue 1546, and  issue 53  (which has become re-broken).

     

    Related

    Issues: #1546
    Issues: #53

  • Google Importer

    Google Importer - 2012-05-02

    Originally posted by: janek.li...@gmail.com

    Keith,

    you are right with your diagnosis.
    As for my involvement, here's the situation:
    - i tried to solve this together with Łukasz, but we got stuck on reading the code
    - Łukasz discussed for_UP_and_DOWN macro and some other things for several weeks
    - meanwhile, David started to work on this, but he decided to wait until Łukasz finishes.

    So i guess that you should contact David, as he may resume his work now.

    Cc: dak@gnu.org

     
  • Google Importer

    Google Importer - 2012-05-05

    Originally posted by: k-ohara5...@oco.net

    Patch for this and issue 1546 is expected to change many regression tests.
    Several cases of simultaneous chords should be closer when a smaller note is placed to the left of a wider one, and further when the wider note is at left.

    collision-whole.ly  -- will show this bug being fixed

    part-combine.ly dot-column-engraver.ly partcombine-midi.ly collision-merge-differently-headed.ly collision-dots-invert.ly   -- a bit more gap between chords

    collision-dots.ly collision-heads.ly -- more uniform gaps

    collision-2.ly  collision-harmonic-no-dots.ly -- a bit less gap

    http://codereview.appspot.com/6189048/

    Delaying review because some follow-up to the comment https://code.google.com/p/lilypond/issues/detail?id=984#c10 might be in the works.

    Labels: Patch-needs_work

     

    Related

    Issues: #1546
    Issues: #984

  • Google Importer

    Google Importer - 2012-05-05

    Originally posted by: dak@gnu.org

    Currently no followup to the given comment in the works.  Am currently focused on other stuff, and the work I started on issue 984 is far enough from completion that it does not make sense to hold up other stuff for it.

     

    Related

    Issues: #984

  • Google Importer

    Google Importer - 2012-05-05

    Originally posted by: k-ohara5...@oco.net

    (No comment was entered for this change.)

    Labels: -Patch-needs_work Patch-new
    Cc: -dak@gnu.org

     
  • Google Importer

    Google Importer - 2012-05-05

    Originally posted by: pkx1...@gmail.com

    Patchy the autobot says: LGTM.

    Labels: -Patch-new Patch-review

     
  • Google Importer

    Google Importer - 2012-05-06

    Originally posted by: ColinPKC...@gmail.com

    (No comment was entered for this change.)

    Labels: -Patch-review Patch-countdown
    Owner: k-ohara5...@oco.net

     
  • Google Importer

    Google Importer - 2012-05-08

    Originally posted by: ColinPKC...@gmail.com

    Counted down to 20120508, please push.

    Labels: -Patch-countdown Patch-push

     
  • Google Importer

    Google Importer - 2012-05-08

    Originally posted by: k-ohara5...@oco.net

    On my final check I noticed that this slightly over-corrects one situation in issue 1546.

    The same code covers both issues, so the code history will more clear if I fix both in one commit.  This new patch does so, with the same desired changes in the regression tests, as listed in comment 12 above.

    http://codereview.appspot.com/6189048/

    Labels: -Patch-push Patch-new

     

    Related

    Issues: #1546

  • Google Importer

    Google Importer - 2012-05-09

    Originally posted by: pkx1...@gmail.com

    Patchy the autobot says: LGTM.

    Labels: -Patch-new Patch-review

     
  • Google Importer

    Google Importer - 2012-05-10

    Originally posted by: ColinPKC...@gmail.com

    Patchy the autobot says: LGTM.  but several regtests show slight changes, unnoticable to me.

    Labels: -Patch-new Patch-review

     
  • Google Importer

    Google Importer - 2012-05-11

    Originally posted by: plros...@gmail.com

    The patch removes several constants (1.25, 1.35, 0.7 and 0.75) and replaces them with some generic formula.  It may be a great thing for other projects, but I don't think it's a good approach for Lilypond.  The constants are based on a human choice of what is "just right" for the distance between notes.  Those numbers may be later made available for tweaking.  A generic algorithm makes it harder to tweak one distance without tweaking other distances.

    I believe there should be no slight changes.  The new code should provide exactly the same distances for the cases not affected by the bug.

    I don't think we have a good test for collisions.  We need a big test, a matrix with all combinations of notes that can collide.  That should cover all styles, all standard shapes of noteheads, all durations and all pitch differences.

    Such test might find new problems, which is OK.  They would be outside the scope of this patch.  However, the differences in the output should be checked for regressions.

     
  • Google Importer

    Google Importer - 2012-05-11

    Originally posted by: k-ohara5...@oco.net

    Each of the constants (1.25, 1.35, 0.7 and 0.75) handles a specific combination of note durations, and the block of code is used only when voices have notes at the same pitch.  So the cases are the four measures in
    \relative c'' << { c1 c1 c2 c2 c4 c4 c4 c4} \\ { c2 c2 c4 c4 c4 c4 c1 c1} >>
    plus collisions with chords where both chords contain a common pitch.

    The slight changes are described in comment 12.  I think there is another reg-test change with the last patch, for wholes in the situation of comment 20, but I didn't write down which one.  I'll summarize after I next run the tests.

     
  • Google Importer

    Google Importer - 2012-05-11

    Originally posted by: k-ohara5...@oco.net

    (No comment was entered for this change.)

    Labels: -Patch-waiting Patch-needs_work

     
  • Google Importer

    Google Importer - 2012-05-11

    Originally posted by: k-ohara5...@oco.net

    Expect changes in the same set of regtests as listed in comment 12:
    part-combine dot-column-engraver test-output-distance collision-whole collision-dots partcombine-midi collision-dots-invert collision-heads collision-2 collision-harmonic-no-dots collision-merge-differently-headed
    New patch expands the regtest collision-whole to include the situation from comment 20.
    plroskin seems to have graciously offered in comment 22 to check that these expected changes are in fact desried changes.
    http://codereview.appspot.com/6189048/

    Labels: -Patch-needs_work Patch-new
    Cc: p...@Gmail.com

     
  • Google Importer

    Google Importer - 2012-05-11

    Originally posted by: pkx1...@gmail.com

    Patchy says LGTM. Attached redesigned reg test..

    Labels: -Patch-new Patch-review

     
  • Google Importer

    Google Importer - 2012-05-11

    Originally posted by: k-ohara5...@oco.net

    I had intended to put up the image of the cases where the constants (1.25, 1.35, 0.7 and 0.75) were applied.
    \relative c'' << { c1 c1 c2 c2 c4 c4 c4 c4} \\ { c2 c2 c4 c4 c4 c4 c1 c1} >>

    The constants appeared in the patch to issue 53, as correction factors for when colliding notes have different widths.  If chords or dots cause a different left-to-right order of the notes, however, we need different correction factors.  I am too lazy to compute factors for the full matrix of possible cases, and to test them against all note head styles and fonts.

    The old factors do not look "just right" anyway, so I am happy to take the generic algorithm.

     

    Related

    Issues: #53

1 2 > >> (Page 1 of 2)
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.