Re: incomplete tuplets in non-standard time signatures
Am 02.12.2020 um 11:24 schrieb Michael Käppler: Am 02.12.2020 um 09:26 schrieb Michael Käppler: Am 30.11.2020 um 09:20 schrieb Michael Käppler: Am 30.11.2020 um 08:29 schrieb Lukas-Fabian Moser: Hi Michael, I just filed a bug report http://lilypond.1069038.n5.nabble.com/Wrongly-read-property-with-MetronomeMark-td237659.html 2c2908c905ba822ef656b06b1cc4f0ca33960c9c is the first bad commit commit 2c2908c905ba822ef656b06b1cc4f0ca33960c9c Author: Malte Meyn Date: Sun Sep 29 10:10:35 2019 +0200 That does not make sense to me. 2.20.0 was released on March 1, 2020 and Harm reported that 2.20.0 is fine. I think bisecting must start with 2.20.0., then. It's well possible that I got this all wrong, but I was under the impression that, as not all changes added during the 2.19.xx cycle were cherry-picked into 2.20, it's quite possible for a commit that was added to master before the release of 2.20.0 to only end up in 2.21.xx. You are right, I got this wrong. Sorry for the noise. Michael Added to the tracker: https://gitlab.com/lilypond/lilypond/-/issues/6067 I think I have a fix ready for this See https://gitlab.com/lilypond/lilypond/-/merge_requests/534
Re: incomplete tuplets in non-standard time signatures
Am 02.12.2020 um 09:26 schrieb Michael Käppler: Am 30.11.2020 um 09:20 schrieb Michael Käppler: Am 30.11.2020 um 08:29 schrieb Lukas-Fabian Moser: Hi Michael, I just filed a bug report http://lilypond.1069038.n5.nabble.com/Wrongly-read-property-with-MetronomeMark-td237659.html 2c2908c905ba822ef656b06b1cc4f0ca33960c9c is the first bad commit commit 2c2908c905ba822ef656b06b1cc4f0ca33960c9c Author: Malte Meyn Date: Sun Sep 29 10:10:35 2019 +0200 That does not make sense to me. 2.20.0 was released on March 1, 2020 and Harm reported that 2.20.0 is fine. I think bisecting must start with 2.20.0., then. It's well possible that I got this all wrong, but I was under the impression that, as not all changes added during the 2.19.xx cycle were cherry-picked into 2.20, it's quite possible for a commit that was added to master before the release of 2.20.0 to only end up in 2.21.xx. You are right, I got this wrong. Sorry for the noise. Michael Added to the tracker: https://gitlab.com/lilypond/lilypond/-/issues/6067 I think I have a fix ready for this.
Re: incomplete tuplets in non-standard time signatures
Am 30.11.2020 um 09:20 schrieb Michael Käppler: Am 30.11.2020 um 08:29 schrieb Lukas-Fabian Moser: Hi Michael, I just filed a bug report http://lilypond.1069038.n5.nabble.com/Wrongly-read-property-with-MetronomeMark-td237659.html 2c2908c905ba822ef656b06b1cc4f0ca33960c9c is the first bad commit commit 2c2908c905ba822ef656b06b1cc4f0ca33960c9c Author: Malte Meyn Date: Sun Sep 29 10:10:35 2019 +0200 That does not make sense to me. 2.20.0 was released on March 1, 2020 and Harm reported that 2.20.0 is fine. I think bisecting must start with 2.20.0., then. It's well possible that I got this all wrong, but I was under the impression that, as not all changes added during the 2.19.xx cycle were cherry-picked into 2.20, it's quite possible for a commit that was added to master before the release of 2.20.0 to only end up in 2.21.xx. You are right, I got this wrong. Sorry for the noise. Michael Added to the tracker: https://gitlab.com/lilypond/lilypond/-/issues/6067 Cheers, Michael
Re: incomplete tuplets in non-standard time signatures
Am 30.11.2020 um 08:29 schrieb Lukas-Fabian Moser: Hi Michael, I just filed a bug report http://lilypond.1069038.n5.nabble.com/Wrongly-read-property-with-MetronomeMark-td237659.html 2c2908c905ba822ef656b06b1cc4f0ca33960c9c is the first bad commit commit 2c2908c905ba822ef656b06b1cc4f0ca33960c9c Author: Malte Meyn Date: Sun Sep 29 10:10:35 2019 +0200 That does not make sense to me. 2.20.0 was released on March 1, 2020 and Harm reported that 2.20.0 is fine. I think bisecting must start with 2.20.0., then. It's well possible that I got this all wrong, but I was under the impression that, as not all changes added during the 2.19.xx cycle were cherry-picked into 2.20, it's quite possible for a commit that was added to master before the release of 2.20.0 to only end up in 2.21.xx. You are right, I got this wrong. Sorry for the noise. Michael
Re: incomplete tuplets in non-standard time signatures
Hi Michael, I just filed a bug report http://lilypond.1069038.n5.nabble.com/Wrongly-read-property-with-MetronomeMark-td237659.html 2c2908c905ba822ef656b06b1cc4f0ca33960c9c is the first bad commit commit 2c2908c905ba822ef656b06b1cc4f0ca33960c9c Author: Malte Meyn Date: Sun Sep 29 10:10:35 2019 +0200 That does not make sense to me. 2.20.0 was released on March 1, 2020 and Harm reported that 2.20.0 is fine. I think bisecting must start with 2.20.0., then. It's well possible that I got this all wrong, but I was under the impression that, as not all changes added during the 2.19.xx cycle were cherry-picked into 2.20, it's quite possible for a commit that was added to master before the release of 2.20.0 to only end up in 2.21.xx. Also, Malte's commit contains the following change in lily/bracket.cc: index bc7ad67680..63ab1fcafa 100644 @@ -77,8 +77,9 @@ Bracket::make_bracket (Grob *me, // for line properties. m.add_stencil (Line_interface::line (me, straight_corners[LEFT], straight_corners[RIGHT])); - if (scm_is_number (me->get_property ("dash-fraction"))) - me->set_property ("dash-fraction", scm_from_double (1.0)); + if (scm_is_eq (me->get_property ("style"), ly_symbol2scm ("dashed-line")) + && !to_boolean (me->get_property ("dashed-edge"))) + me->set_property ("style", ly_symbol2scm ("line")); for (LEFT_and_RIGHT (d)) m.add_stencil (Line_interface::line (me, straight_corners[d], flare_corners[d])); I haven't even tried to understand the scope and logic of Malte's changes, but to me it seems very plausible that this change could lead to a behaviour as discovered by Harm. (And actually, my bisect started as follows: git bisect start # good: [b39b2e652fc4bcf282bb8b826e81070a77bc93db] Release: bump Welcome versions. git bisect good b39b2e652fc4bcf282bb8b826e81070a77bc93db # bad: [65932b8fde202a95b7fbf9f400c01c75fa53519f] Add version to Japanese snippet git bisect bad 65932b8fde202a95b7fbf9f400c01c75fa53519f b39b2e is release/2.20.0-1, 65932b8 is release/2.21.0-1.) Lukas
Re: incomplete tuplets in non-standard time signatures
Am Sonntag, dem 29.11.2020 um 22:24 +0100 schrieb Michael Käppler: > Am 29.11.2020 um 21:09 schrieb Lukas-Fabian Moser: > > Hi Harm, > Hi Harm and Lukas, > > > > > I just filed a bug report > > > http://lilypond.1069038.n5.nabble.com/Wrongly-read-property-with-MetronomeMark-td237659.html > > > > > 2c2908c905ba822ef656b06b1cc4f0ca33960c9c is the first bad commit > > commit 2c2908c905ba822ef656b06b1cc4f0ca33960c9c > > Author: Malte Meyn > > Date: Sun Sep 29 10:10:35 2019 +0200 > > > > Issue 5563: make edges of brackets dashable > > > > The new boolean grob property dashed-edge controls whether the > > edges of > > a dashed bracket are solid or dashed. > > > > > That does not make sense to me. 2.20.0 was released on March 1, 2020 and > Harm reported > that 2.20.0 is fine. I think bisecting must start with 2.20.0., then. It does very much make sense: 2.20.0 was not released from master; instead stable/2.20 was branched in August 2017. All commits since then until April 2020 first appeared in 2.21.0 (unless backported for 2.20). Jonas signature.asc Description: This is a digitally signed message part
Re: incomplete tuplets in non-standard time signatures
Am 29.11.2020 um 21:09 schrieb Lukas-Fabian Moser: Hi Harm, Hi Harm and Lukas, I just filed a bug report http://lilypond.1069038.n5.nabble.com/Wrongly-read-property-with-MetronomeMark-td237659.html 2c2908c905ba822ef656b06b1cc4f0ca33960c9c is the first bad commit commit 2c2908c905ba822ef656b06b1cc4f0ca33960c9c Author: Malte Meyn Date: Sun Sep 29 10:10:35 2019 +0200 Issue 5563: make edges of brackets dashable The new boolean grob property dashed-edge controls whether the edges of a dashed bracket are solid or dashed. That does not make sense to me. 2.20.0 was released on March 1, 2020 and Harm reported that 2.20.0 is fine. I think bisecting must start with 2.20.0., then. Cheers, Michael
Re: incomplete tuplets in non-standard time signatures
Hi Harm, I just filed a bug report http://lilypond.1069038.n5.nabble.com/Wrongly-read-property-with-MetronomeMark-td237659.html 2c2908c905ba822ef656b06b1cc4f0ca33960c9c is the first bad commit commit 2c2908c905ba822ef656b06b1cc4f0ca33960c9c Author: Malte Meyn Date: Sun Sep 29 10:10:35 2019 +0200 Issue 5563: make edges of brackets dashable The new boolean grob property dashed-edge controls whether the edges of a dashed bracket are solid or dashed. Lukas
Re: incomplete tuplets in non-standard time signatures
Am Fr., 27. Nov. 2020 um 17:21 Uhr schrieb 98123981293 1293812397123 : > > Dear list, > > On list thread Apr 6 2020, Harm provided a Scheme workaround for half-dashed > tuplet brackets in non-standard time signatures in version 2.20. However, in > using his solution in 2.21.6, if a /tempo marking is included in any staff, I > observe that, for the first staff in the score, the custom stencil will > always engrave as a fully dashed instead of half-dashed tuplet (and no matter > where the /tempo statement occurs, all tuplets in that first staff are > affected). Half-dashed tuplet stencils engrave as expected in all other > staves regardless of any /tempo statements. Can anyone give any insight as to > why? Compare output of the following three examples below. > > (Or is there an easier way to do this now altogether in ver 2.21.6? Harm > hinted at such features possibly becoming available in future releases.) > > Thank you, > Kyle > > \version "2.21.6" > > %%%SCHEME FUNCTIONS:%%% > > #(define (translated-dashed-line->draw-line bool lst) > ;; lst is supposed to be a list retrieved from a stencil-expression, p.e. > ;; (translate-stencil > ;; (17.1123059321317 . 0.0) > ;; (dashed-line > ;; 0.16 <- thick > ;; 0.409629549559636 <- on > ;; 0.61324339455 <- off > ;; -7.5781485327 <- x-destination > ;; 0.0 <- y-destination > ;; 0.0 <- phase > ;; )) > ;; This procedure will transform it into: > ;; (drawline > ;; thick > ;; x-start > ;; y-start > ;; x-end > ;; y-end) > > (if (and bool >(>= (length lst) 3) >(not (eq? (car lst) 'draw-line))) > (let* ((translate (list-ref lst 1)) > (dashed-line (last lst)) > (thick (list-ref dashed-line 1)) > (x-dest (list-ref dashed-line 4)) > (y-dest (list-ref dashed-line 5))) > (list > 'draw-line > thick > (car translate) > (cdr translate) > (+ x-dest (car translate)) > (+ y-dest (cdr translate > lst)) > > #(define (half-solid-tuplet-bracket bool-pair) > (lambda (grob) > (if (and ;; continue if the TupletBracket is dashed >(eq? (ly:grob-property grob 'style) 'dashed-line) >;; continue if left or right part should become solid >(or (car bool-pair) (cdr bool-pair)) >;; don't continue, if TupletBracket is omitted >(not (ly:stencil-empty? (ly:grob-property grob 'stencil))) >;; don't continue, if the whole TupletBracket should be dashed >(not (and (car bool-pair) (cdr bool-pair > ;; make left or right part solid > (let* ((stil (ly:grob-property grob 'stencil)) > (x-ext (ly:stencil-extent stil X)) > (y-ext (ly:stencil-extent stil Y)) > (stil-expr (ly:stencil-expr stil)) > (translate (list-ref stil-expr 1)) > (combined-stil (last stil-expr)) > (new-stencil-expr >(list > 'translate-stencil > translate > (cons 'combine-stencil > (map > (lambda (i) > (translated-dashed-line->draw-line > (if (odd? i) > (cdr bool-pair) > (car bool-pair)) > (list-ref combined-stil i))) > (iota 4 1 1)) > (ly:grob-set-property! grob 'stencil > (ly:make-stencil > new-stencil-expr > x-ext > y-ext)) > > halfSolidTupletBracket = > #(define-music-function (pair)(pair?) > #{ > \override TupletBracket.after-line-breaking = > #(half-solid-tuplet-bracket pair) > #}) > > %%%FAILS:%%% > > \score { > << > \new Staff > { > \override TupletBracket.bracket-visibility = ##t > \once \halfSolidTupletBracket #'(#t . #f) > \once \override TupletBracket.style = #'dashed-line > \once \override TupletBracket.edge-height = #'(0.7 . 0) > \tempo 4 = 60 > \time 2/5 > \times 4/5 { c'16 c'8. c'16 c'16 c'8 } | > } > > \new Staff > { > \override TupletBracket.bracket-visibility = ##t > \once \halfSolidTupletBracket #'(#t . #f) > \once \override TupletBracket.style = #'dashed-line > \once \override TupletBracket.edge-height = #'(0.7 . 0) > \tempo 4 = 60 > \time 2/5 > \times 4/5 { c'16 c'8. c'16 c'16 c'8 } | > } > >> > } > > %%% ALSO FAILS:%%% > > \score { > << > \new Staff > { > \override TupletBracket.bracket-visibility = ##t > \once \halfSolidTupletBracket #'(#t . #f) > \once \override TupletBracket.style = #'dashed-line > \once \override TupletBracket.edge-height = #'(0.7 . 0) > \time 2/5 > \times
Re: incomplete tuplets in non-standard time signatures
Dear list, On list thread Apr 6 2020, Harm provided a Scheme workaround for half-dashed tuplet brackets in non-standard time signatures in version 2.20. However, in using his solution in 2.21.6, if a /tempo marking is included in *any* staff, I observe that, for the *first* staff in the score, the custom stencil will *always* engrave as a fully dashed instead of half-dashed tuplet (and no matter where the /tempo statement occurs, all tuplets in that first staff are affected). Half-dashed tuplet stencils engrave as expected in all other staves regardless of any /tempo statements. Can anyone give any insight as to why? Compare output of the following three examples below. (Or is there an easier way to do this now altogether in ver 2.21.6? Harm hinted at such features possibly becoming available in future releases.) Thank you, Kyle \version "2.21.6" %%%SCHEME FUNCTIONS:%%% #(define (translated-dashed-line->draw-line bool lst) ;; lst is supposed to be a list retrieved from a stencil-expression, p.e. ;; (translate-stencil ;; (17.1123059321317 . 0.0) ;; (dashed-line ;; 0.16 <- thick ;; 0.409629549559636 <- on ;; 0.61324339455 <- off ;; -7.5781485327 <- x-destination ;; 0.0 <- y-destination ;; 0.0 <- phase ;; )) ;; This procedure will transform it into: ;; (drawline ;; thick ;; x-start ;; y-start ;; x-end ;; y-end) (if (and bool (>= (length lst) 3) (not (eq? (car lst) 'draw-line))) (let* ((translate (list-ref lst 1)) (dashed-line (last lst)) (thick (list-ref dashed-line 1)) (x-dest (list-ref dashed-line 4)) (y-dest (list-ref dashed-line 5))) (list 'draw-line thick (car translate) (cdr translate) (+ x-dest (car translate)) (+ y-dest (cdr translate lst)) #(define (half-solid-tuplet-bracket bool-pair) (lambda (grob) (if (and ;; continue if the TupletBracket is dashed (eq? (ly:grob-property grob 'style) 'dashed-line) ;; continue if left or right part should become solid (or (car bool-pair) (cdr bool-pair)) ;; don't continue, if TupletBracket is omitted (not (ly:stencil-empty? (ly:grob-property grob 'stencil))) ;; don't continue, if the whole TupletBracket should be dashed (not (and (car bool-pair) (cdr bool-pair ;; make left or right part solid (let* ((stil (ly:grob-property grob 'stencil)) (x-ext (ly:stencil-extent stil X)) (y-ext (ly:stencil-extent stil Y)) (stil-expr (ly:stencil-expr stil)) (translate (list-ref stil-expr 1)) (combined-stil (last stil-expr)) (new-stencil-expr (list 'translate-stencil translate (cons 'combine-stencil (map (lambda (i) (translated-dashed-line->draw-line (if (odd? i) (cdr bool-pair) (car bool-pair)) (list-ref combined-stil i))) (iota 4 1 1)) (ly:grob-set-property! grob 'stencil (ly:make-stencil new-stencil-expr x-ext y-ext)) halfSolidTupletBracket = #(define-music-function (pair)(pair?) #{ \override TupletBracket.after-line-breaking = #(half-solid-tuplet-bracket pair) #}) %%%FAILS:%%% \score { << \new Staff { \override TupletBracket.bracket-visibility = ##t \once \halfSolidTupletBracket #'(#t . #f) \once \override TupletBracket.style = #'dashed-line \once \override TupletBracket.edge-height = #'(0.7 . 0) \tempo 4 = 60 \time 2/5 \times 4/5 { c'16 c'8. c'16 c'16 c'8 } | } \new Staff { \override TupletBracket.bracket-visibility = ##t \once \halfSolidTupletBracket #'(#t . #f) \once \override TupletBracket.style = #'dashed-line \once \override TupletBracket.edge-height = #'(0.7 . 0) \tempo 4 = 60 \time 2/5 \times 4/5 { c'16 c'8. c'16 c'16 c'8 } | } >> } %%% ALSO FAILS:%%% \score { << \new Staff { \override TupletBracket.bracket-visibility = ##t \once \halfSolidTupletBracket #'(#t . #f) \once \override TupletBracket.style = #'dashed-line \once \override TupletBracket.edge-height = #'(0.7 . 0) \time 2/5 \times 4/5 { c'16 c'8. c'16 c'16 c'8 } | } \new Staff { \override TupletBracket.bracket-visibility = ##t \once \halfSolidTupletBracket #'(#t . #f) \once \override TupletBracket.style = #'dashed-line \once \override TupletBracket.edge-height = #'(0.7 . 0) \tempo 4 = 60 \time 2/5 \times 4/5
Re: incomplete tuplets in non-standard time signatures
Am So., 5. Apr. 2020 um 19:59 Uhr schrieb 98123981293 1293812397123 : > > Dear list, > > In the following example, I would like to: > 1) In the first voice: make the tuplet line to the right of the number into a > dashed straight line. > 2) In the second voice: fix the appearance of the last tuplet in the measure > so that the number does not clash with the bracket, and the bracket is not > horizontally flipped. Once this is accomplished, I would like to apply the > same appearance with dotted right lines from step one. I've attached a .png > drawing of roughly how I want it to look. > > This thread > (https://www.mail-archive.com/lilypond-user@gnu.org/msg89110.html) addresses > these types of alterations, but affects the whole bracket; is there any way > to adjust the left and right sides of the bracket independently? If this has > already been addressed elsewhere please let me know so that I may consult the > relevant documentation/snippet/archive. > > Thank you for your time, > -Kyle Hi, ad 2) A TupletBracket needs bounds to the left and the right, which must be _not_ the same. You need a workaround, see example-code below. ad 1) For your request one needs to recreate the stencil. Below my own take on it. It relies heavily on how the stencil is created currently, this may vary in future version. Then the code will break. Furthermore, in 2.20.0 the bracket edges are always solid, In the hopefully upcoming soon 2.21.0 there will be the dashed-edge-property for customizing them. Below relies on a dashed TupletBracket, making parts of it solid. 'edge-height may be set separately. Cheers, Harm \version "2.20.0" #(define (translated-dashed-line->draw-line bool lst) ;; lst is supposed to be a list retrieved from a stencil-expression, p.e. ;; (translate-stencil ;; (17.1123059321317 . 0.0) ;; (dashed-line ;; 0.16 <- thick ;; 0.409629549559636 <- on ;; 0.61324339455 <- off ;; -7.5781485327 <- x-destination ;; 0.0 <- y-destination ;; 0.0 <- phase ;; )) ;; This procedure will transform it into: ;; (drawline ;; thick ;; x-start ;; y-start ;; x-end ;; y-end) (if (and bool (>= (length lst) 3) (not (eq? (car lst) 'draw-line))) (let* ((translate (list-ref lst 1)) (dashed-line (last lst)) (thick (list-ref dashed-line 1)) (x-dest (list-ref dashed-line 4)) (y-dest (list-ref dashed-line 5))) (list 'draw-line thick (car translate) (cdr translate) (+ x-dest (car translate)) (+ y-dest (cdr translate lst)) #(define (half-solid-tuplet-bracket bool-pair) (lambda (grob) (if (and ;; continue if the TupletBracket is dashed (eq? (ly:grob-property grob 'style) 'dashed-line) ;; continue if left or right part should become solid (or (car bool-pair) (cdr bool-pair)) ;; don't continue, if TupletBracket is omitted (not (ly:stencil-empty? (ly:grob-property grob 'stencil))) ;; don't continue, if the whole TupletBracket should be dashed (not (and (car bool-pair) (cdr bool-pair ;; make left or right part solid (let* ((stil (ly:grob-property grob 'stencil)) (x-ext (ly:stencil-extent stil X)) (y-ext (ly:stencil-extent stil Y)) (stil-expr (ly:stencil-expr stil)) (translate (list-ref stil-expr 1)) (combined-stil (last stil-expr)) (new-stencil-expr (list 'translate-stencil translate (cons 'combine-stencil (map (lambda (i) (translated-dashed-line->draw-line (if (odd? i) (cdr bool-pair) (car bool-pair)) (list-ref combined-stil i))) (iota 4 1 1)) (ly:grob-set-property! grob 'stencil (ly:make-stencil new-stencil-expr x-ext y-ext)) halfSolidTupletBracket = #(define-music-function (pair)(pair?) #{ \override TupletBracket.after-line-breaking = #(half-solid-tuplet-bracket pair) #}) %% %% Examples %% \paper { ragged-right = ##f } { \once \halfSolidTupletBracket #'(#t . #f) \once \override TupletBracket.style = #'dashed-line %% set edges \once \override TupletBracket.edge-height = #'(0.7 . 0) \times 2/3 { b4 4 4 } %% default \times 2/3 { b4 4 4 } \once \override TupletBracket.dash-period = #0.5 \once \override TupletBracket.dash-fraction = #1/6 \once \override TupletBracket.style = #'dashed-line \halfSolidTupletBracket #'(#t . #f) %% available with hopefully upcoming soon 2.21.0: %% with 2.20.0 edges
incomplete tuplets in non-standard time signatures
Dear list, In the following example, I would like to: 1) In the first voice: make the tuplet line to the right of the number into a dashed straight line. 2) In the second voice: fix the appearance of the last tuplet in the measure so that the number does not clash with the bracket, and the bracket is not horizontally flipped. Once this is accomplished, I would like to apply the same appearance with dotted right lines from step one. I've attached a .png drawing of roughly how I want it to look. This thread ( https://www.mail-archive.com/lilypond-user@gnu.org/msg89110.html) addresses these types of alterations, but affects the whole bracket; is there any way to adjust the left and right sides of the bracket independently? If this has already been addressed elsewhere please let me know so that I may consult the relevant documentation/snippet/archive. Thank you for your time, -Kyle \version "2.18.2" \header { subsubtitle = "incomplete tuplets in non-standard time sigs" } \score { << \new Staff { \clef treble \key c \major \set subdivideBeams = ##t \set strictBeatBeaming = ##t \override TupletBracket.bracket-visibility = ##t \time 8/24 \times 2/3 { bes'16[ \set stemLeftBeamCount =2 \set stemRightBeamCount =2 d''16 b'16] } \times 2/3 { cis''8[ f''16] } \times 2/3 { d''16[ e''16] } } \new Staff { \clef bass \key c \major \set subdivideBeams = ##t \set strictBeatBeaming = ##t \override TupletBracket.bracket-visibility = ##t \time 8/24 a8~ \times 2/3 { a8[ g16~] } \times 2/3 { g8 } } >> }