Horizontal spacing algorithm
Dear all, Would anyone be interested in implementing this (simple?) improvement to Lilypond’s horizontal spacing algorithm? The math is all here: https://quod.lib.umich.edu/cgi/p/pod/dod-idx/improved-algorithm-for-spacing-a-line-of-music.pdf?c=icmc;idno=bbp2372.2002.097;format=pdf I wish I had the programming chops! C ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Horizontal spacing algorithm
Hello Chad, I am not aware that we currently have any developer working on or familiar enough with that area of the source code. Also, the assertion that implementing this would be simple is audacious to say the least: Even looking only at the examples given in that paper, it is by no means a given how much of that more proportional spacing is desirable (which the author even acknowledges himself). And in real life, there are very many other factors influencing spacing. Best, Simon On 25.08.19 22:46, Chad Linsley wrote: Dear all, Would anyone be interested in implementing this (simple?) improvement to Lilypond’s horizontal spacing algorithm? The math is all here: https://quod.lib.umich.edu/cgi/p/pod/dod-idx/improved-algorithm-for-spacing-a-line-of-music.pdf?c=icmc;idno=bbp2372.2002.097;format=pdf I wish I had the programming chops! C ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Horizontal spacing algorithm
Hi Simon, Hardly an assertion when I used brackets and a question mark around the word “simple”. Anyway, the paper points out that Lilypond uses a version of Gourlay’s algorithm which works great except in examples like the ones he gives (polyrhythms). I’m aware that you can use proportional notation and uniform stretching to fix these examples. However, I find it interesting that the proposed solution incorporates what Lilypond actually does already (which is why it might not be as complicated as it seems). Am I the only one that is curious about this? Why does the horizontal spacing of the now-ancient SCORE software still look so good (in my opinion)? C On Sun, Aug 25, 2019 at 6:04 PM Simon Albrecht wrote: > Hello Chad, > > I am not aware that we currently have any developer working on or > familiar enough with that area of the source code. Also, the assertion > that implementing this would be simple is audacious to say the least: > Even looking only at the examples given in that paper, it is by no means > a given how much of that more proportional spacing is desirable (which > the author even acknowledges himself). And in real life, there are very > many other factors influencing spacing. > > Best, Simon > > On 25.08.19 22:46, Chad Linsley wrote: > > Dear all, > > > > Would anyone be interested in implementing this (simple?) improvement > > to Lilypond’s horizontal spacing algorithm? The math is all here: > > > > > https://quod.lib.umich.edu/cgi/p/pod/dod-idx/improved-algorithm-for-spacing-a-line-of-music.pdf?c=icmc;idno=bbp2372.2002.097;format=pdf > > > > I wish I had the programming chops! > > > > C > > > > ___ > > lilypond-user mailing list > > lilypond-user@gnu.org > > https://lists.gnu.org/mailman/listinfo/lilypond-user > ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Horizontal spacing algorithm
Hi Chad, FWIW I also had assumed you claimed such a change would be simple. Anyway, have you actualliy tried the provided spacing examples given in the (old?) article with a current version of lilypond? Find attached my tests with the current (2 weeks old) git version. IMO the current version of Lilypond does not have most (if at all!) of the mentioned shortcomings, at least not at first glance. Kind regards, Michael -- Michael Gerdau email: m...@qata.de GPG-keys available on request or at public keyserver \version "2.21.0" \paper { ragged-right = ##f } musicOne = { e''8[ e''] a'2. | e''8[ e''] a'2. } musicTwo = { \tuplet 7/8 { a'32 a'8 a'16 } s2. | a'4 s2. } \score { << { \voiceOne \musicOne } \\ { \voiceTwo \musicTwo } >> } \score { << { \tuplet 3/2 { b'8 b' b' } r4 r2 } { b'16 b' b' b' r4 r2 } { \tuplet 5/4 { b'16 b' b' b' b' } r4 r2 } { \tuplet 7/4 { b'16 b' b' b' b' b' b' } r4 r2 } >> } \score { << \time 2/4 { b'8[ b' b' b'] \bar "|." } { b'32[ b' b' b' b'8 b' b'] \bar "|." } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/32) } } } \score { << \time 2/4 { \tuplet 3/2 { a'8 b' b' } a'4 \bar "|." } { \tuplet 11/8 { a'32[ a' a' a'8 a'16 a'] } a'4 \bar "|." } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/32) } } } \score { << \time 2/4 { \tuplet 3/2 { a'8 b' b' } a'4 \bar "|." } { a'16[ a'8.] a'4 \bar "|." } >> } improved-horizontal-spacing-examples.pdf Description: Adobe PDF document signature.asc Description: OpenPGP digital signature ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Horizontal spacing algorithm
Am 26.08.19 um 09:56 schrieb Michael Gerdau: Anyway, have you actualliy tried the provided spacing examples given in the (old?) article with a current version of lilypond? Find attached my tests with the current (2 weeks old) git version. For those who don’t want to compile from git themselves: It’s the same spacing in 2.19.83 and much better than in 2.18.2. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Horizontal spacing algorithm
Looks good to me in 2.19.83 [current highest dev release not from git.] Andrew On 26/8/19 5:56 pm, Michael Gerdau wrote: Find attached my tests with the current (2 weeks old) git version. IMO the current version of Lilypond does not have most (if at all!) of the mentioned shortcomings, at least not at first glance. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Horizontal spacing algorithm
On 26.08.19 09:56, Michael Gerdau wrote: Find attached my tests with the current (2 weeks old) git version. IMO the current version of Lilypond does not have most (if at all!) of the mentioned shortcomings, at least not at first glance. LOL ;-) Best, Simon ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user