[Top][All Lists]

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

Re: Subdivised beams bug

From: Urs Liska
Subject: Re: Subdivised beams bug
Date: Thu, 6 Sep 2018 22:28:52 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1

Hi foxfanfare,

Am 06.09.2018 um 21:39 schrieb foxfanfare:
Malte Meyn-3 wrote
The result (using LilyPond 2.19.82) is exactly what I would’ve expected.
I suppose your expectation is different so what did you expect?
The automatic subdivised beam is 16th instead of 8th. Here is the problem
and what I would have expected:

\relative c'' {
   \set subdivideBeams = ##t

   % Set beam sub-group length to an eighth note
   \set baseMoment = #(ly:make-moment 1/8)
   \set beatStructure = 2,2,2,2
   c32[^"OK" c c c c c c c]
c32[^"OK" c r c c r c c]

   c32[ c c c c^"BUG" c c] r
c32[ c c \set stemRightBeamCount = #1 c
   \set stemLeftBeamCount = #1 c^"FIXED" c c] r

beams.JPG <http://lilypond.1069038.n5.nabble.com/file/t5604/beams.JPG>

you're right, LilyPond's behaviour is incorrect. Although I must admit it has explicitly been made to behave like this. This is because we (well, I) misunderstood the section in Gould's book (which is slightly misleading and especially lacks an example). BTW Dorico exposes the same bug, at least it did at the time when I realized it. Maybe they found the time to fix it in the meantime (but don't start talking about the other commercial "competitors", they're totally at a loss in that area ;-) ).

The problem is that the matter is really complex and the existing code needs a complete rewrite. When you start looking at subdivisions in tuplets you'll see that it doesn't work properly at all (and in fact automatic beaming suffers from the same issues). I've (re-)attached a document that I compiled half a year ago investigating the problem. I *think* that it is quite thorough and correct, to the point where it stops. I couldn't finish it at the time, and I started it because I knew I wouldn't be able to go ahead and fix the issue (so there should be at least some documentation left behind). It was too complex for me to tackle (given my spare time), matters are complicated through the fact that I don't really know C++, and finally it turned out that you can't fix the beaming subdivisions on their own but have to fix LilyPond's notion of tuplets at the same time.

TL;DR: it's a known issue, and there's no reasonable hope to have it fixed soon.


Attachment: beam-subdivisions.pdf
Description: Adobe PDF document

reply via email to

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