Re: segmented glissando lines
On 2020-02-09 2:39 pm, dtsmarin wrote: Is it possible to change the thickness of the fancy-gliss line? Perhaps change... (layout-line-thickness grob) ;line-width ...to... (* (layout-line-thickness grob) (ly:grob-property grob 'thickness 1)) ;line-width Then you can set the thickness property of the Glissando grob. -- Aaron Hill
Re: segmented glissando lines
Is it possible to change the thickness of the fancy-gliss line? -- Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html
Re: segmented glissando lines
2015-01-12 0:39 GMT+01:00 Urs Liska u...@openlilylib.org: Am 12.01.2015 um 00:37 schrieb Thomas Morley: 2015-01-12 0:06 GMT+01:00 Urs Liska u...@openlilylib.org: Hi Harm, this is terrific! I'm about to collect a number of examples why LilyPond rocks for engraving contemporary music, and this should definitely be part of it. Hi Urs, glad you like it. Though, there's the problem I mentioned and it needs some real life testing. Yes, I know. But as usual with advertising I think we can generously ignore that :-/ Best Urs Cheers, Harm Hi Urs, I could verify that's not my coding triggering the weird output. Looks like a bug in our source. I just wrote a bug-report about it: http://lilypond.1069038.n5.nabble.com/bug-with-combination-of-glissando-bar-quot-quot-dotted-whole-note-and-time-4-4-td170423.html Cheer, Harm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: segmented glissando lines
Nice Harm ! Thanks for the code. Cheers, Pierre 2015-01-12 0:39 GMT+01:00 Urs Liska u...@openlilylib.org: Am 12.01.2015 um 00:37 schrieb Thomas Morley: 2015-01-12 0:06 GMT+01:00 Urs Liska u...@openlilylib.org: Hi Harm, this is terrific! I'm about to collect a number of examples why LilyPond rocks for engraving contemporary music, and this should definitely be part of it. Hi Urs, glad you like it. Though, there's the problem I mentioned and it needs some real life testing. Yes, I know. But as usual with advertising I think we can generously ignore that :-/ Best Urs Cheers, Harm ___ 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: segmented glissando lines
Hi Pierre, Urs, that's excellent and very instructional, thanks! -- Orm Am Samstag, den 10. Januar 2015 um 23:56:03 Uhr (+0100) schrieb Pierre Perol-Schneider: Hi Orm, How about : \version 2.19.15 #(define (add-gliss m) (case (ly:music-property m 'name) ((NoteEvent) (set! (ly:music-property m 'articulations) (append (ly:music-property m 'articulations) (list (make-music (quote GlissandoEvent) m) (else #f))) addGliss = #(define-music-function (parser location music) (ly:music?) (map-some-music add-gliss music)) \relative c'' { \override Glissando.thickness = #2 \override Glissando.bound-details =#'( (right (attach-dir . 1) (padding . 0)) (left (attach-dir . 1) (padding . 0))) \override NoteHead.no-ledgers = ##t \addGliss { d,2 \omit Stem \override NoteHead.transparent = ##t f' d, f' e, g' d, f' } } Cheers, Pierre ___ 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: segmented glissando lines
2015-01-12 0:06 GMT+01:00 Urs Liska u...@openlilylib.org: Hi Harm, this is terrific! I'm about to collect a number of examples why LilyPond rocks for engraving contemporary music, and this should definitely be part of it. Hi Urs, glad you like it. Though, there's the problem I mentioned and it needs some real life testing. Cheers, Harm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: segmented glissando lines
2015-01-11 10:28 GMT+01:00 Orm Finnendahl orm.finnend...@selma.hfmdk-frankfurt.de: Hi Pierre, Urs, that's excellent and very instructional, thanks! -- Orm Am Samstag, den 10. Januar 2015 um 23:56:03 Uhr (+0100) schrieb Pierre Perol-Schneider: Hi Orm, How about : \version 2.19.15 #(define (add-gliss m) (case (ly:music-property m 'name) ((NoteEvent) (set! (ly:music-property m 'articulations) (append (ly:music-property m 'articulations) (list (make-music (quote GlissandoEvent) m) (else #f))) addGliss = #(define-music-function (parser location music) (ly:music?) (map-some-music add-gliss music)) \relative c'' { \override Glissando.thickness = #2 \override Glissando.bound-details =#'( (right (attach-dir . 1) (padding . 0)) (left (attach-dir . 1) (padding . 0))) \override NoteHead.no-ledgers = ##t \addGliss { d,2 \omit Stem \override NoteHead.transparent = ##t f' d, f' e, g' d, f' } } Cheers, Pierre Below my own attempt. It has some advantages and limitations compared with Pierre's coding. There is one thing I have no clue about: If the function is applied to a dotted whole note some very strange things may happen and a warning is printed: Loose column does not have right side to attach to. If someone has an idea how to fix, I'd love to hear it. (Look out for %% ! if you want to test) \version 2.19.15 %#(use-modules (ice-9 pretty-print)) lengthen-gliss = #(define-music-function (parser loation nmbr)(number?) #{ \once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods \once \override Glissando.minimum-length = #nmbr #}) fancy-gliss = #(define-music-function (parser location pts-list)(list?) #{ \once \override Glissando.after-line-breaking = #(lambda (grob) (let ((stil (ly:line-spanner::print grob))) (if (ly:stencil? stil) (let* ((left-bound-info (ly:grob-property grob 'left-bound-info)) (left-bound (ly:spanner-bound grob LEFT)) (y-off (assoc-get 'Y left-bound-info)) (padding (assoc-get 'padding left-bound-info)) (note-column (ly:grob-parent left-bound X)) (note-heads (ly:grob-object note-column 'note-heads)) (ext-X (if (null? note-heads) '(0 . 0) (ly:relative-group-extent note-heads grob X))) (dot-column (ly:note-column-dot-column note-column)) (dots (if (null? dot-column) '() (ly:grob-object dot-column 'dots))) (dots-ext-X (if (null? dots) '(0 . 0) (ly:relative-group-extent dots grob X))) (factor (/ (interval-length (ly:stencil-extent stil X)) (car (take-right (last pts-list) 2 (new-stil (make-connected-path-stencil (map (lambda (e) (cond ((= (length e) 2) (cons (* (car e) factor) (cdr e))) ((= (length e) 6) (list (* (car e) factor) (cadr e) (* (third e) factor) (fourth e) (* (fifth e) factor) (sixth e))) (else (ly:error Some element(s) of the given list do not fit pts-list) (layout-line-thickness grob) ;line-width 1 ;scaling 1 ;scaling #f #f))) (ly:grob-set-property! grob 'stencil (ly:stencil-translate new-stil (cons (+ (interval-length ext-X) (interval-length dots-ext-X) padding) y-off (begin (ly:warning Cannot find stencil. Please set 'minimum-length accordingly) #f #}) #(display \n\tLimitations: \t-Does not work with line-break \t-dotted notes with glissando may return a warning for unknown reasons, \t strange things may happen) %% EXAMPLE \paper { indent = 28 } \header { title = Fancy Glissando } music = \new Staff \with { instrumentName = fancy-gliss } \relative c' { \set Score.defaultBarType = # %% If spacing is very tight Glissando sometimes is omitted. %% Use 'lengthen-gliss' with an apropiate value in this case. %\lengthen-gliss #10 \fancy-gliss #'( (1 3) (2 0) (3 3) (4 1) (5 3.5) (6
Re: segmented glissando lines
Hi Harm, this is terrific! I'm about to collect a number of examples why LilyPond rocks for engraving contemporary music, and this should definitely be part of it. Best Urs Am 12.01.2015 um 00:00 schrieb Thomas Morley: 2015-01-11 10:28 GMT+01:00 Orm Finnendahl orm.finnend...@selma.hfmdk-frankfurt.de: Hi Pierre, Urs, that's excellent and very instructional, thanks! -- Orm Am Samstag, den 10. Januar 2015 um 23:56:03 Uhr (+0100) schrieb Pierre Perol-Schneider: Hi Orm, How about : \version 2.19.15 #(define (add-gliss m) (case (ly:music-property m 'name) ((NoteEvent) (set! (ly:music-property m 'articulations) (append (ly:music-property m 'articulations) (list (make-music (quote GlissandoEvent) m) (else #f))) addGliss = #(define-music-function (parser location music) (ly:music?) (map-some-music add-gliss music)) \relative c'' { \override Glissando.thickness = #2 \override Glissando.bound-details =#'( (right (attach-dir . 1) (padding . 0)) (left (attach-dir . 1) (padding . 0))) \override NoteHead.no-ledgers = ##t \addGliss { d,2 \omit Stem \override NoteHead.transparent = ##t f' d, f' e, g' d, f' } } Cheers, Pierre Below my own attempt. It has some advantages and limitations compared with Pierre's coding. There is one thing I have no clue about: If the function is applied to a dotted whole note some very strange things may happen and a warning is printed: Loose column does not have right side to attach to. If someone has an idea how to fix, I'd love to hear it. (Look out for %% ! if you want to test) \version 2.19.15 %#(use-modules (ice-9 pretty-print)) lengthen-gliss = #(define-music-function (parser loation nmbr)(number?) #{ \once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods \once \override Glissando.minimum-length = #nmbr #}) fancy-gliss = #(define-music-function (parser location pts-list)(list?) #{ \once \override Glissando.after-line-breaking = #(lambda (grob) (let ((stil (ly:line-spanner::print grob))) (if (ly:stencil? stil) (let* ((left-bound-info (ly:grob-property grob 'left-bound-info)) (left-bound (ly:spanner-bound grob LEFT)) (y-off (assoc-get 'Y left-bound-info)) (padding (assoc-get 'padding left-bound-info)) (note-column (ly:grob-parent left-bound X)) (note-heads (ly:grob-object note-column 'note-heads)) (ext-X (if (null? note-heads) '(0 . 0) (ly:relative-group-extent note-heads grob X))) (dot-column (ly:note-column-dot-column note-column)) (dots (if (null? dot-column) '() (ly:grob-object dot-column 'dots))) (dots-ext-X (if (null? dots) '(0 . 0) (ly:relative-group-extent dots grob X))) (factor (/ (interval-length (ly:stencil-extent stil X)) (car (take-right (last pts-list) 2 (new-stil (make-connected-path-stencil (map (lambda (e) (cond ((= (length e) 2) (cons (* (car e) factor) (cdr e))) ((= (length e) 6) (list (* (car e) factor) (cadr e) (* (third e) factor) (fourth e) (* (fifth e) factor) (sixth e))) (else (ly:error Some element(s) of the given list do not fit pts-list) (layout-line-thickness grob) ;line-width 1 ;scaling 1 ;scaling #f #f))) (ly:grob-set-property! grob 'stencil (ly:stencil-translate new-stil (cons (+ (interval-length ext-X) (interval-length dots-ext-X) padding) y-off (begin (ly:warning Cannot find stencil. Please set 'minimum-length accordingly) #f #}) #(display \n\tLimitations: \t-Does not work with line-break \t-dotted notes with glissando may return a warning for unknown reasons, \t strange things may happen) %% EXAMPLE \paper { indent = 28 } \header { title = Fancy Glissando } music = \new Staff \with { instrumentName = fancy-gliss } \relative c' { \set Score.defaultBarType = #
Re: segmented glissando lines
Am 12.01.2015 um 00:37 schrieb Thomas Morley: 2015-01-12 0:06 GMT+01:00 Urs Liska u...@openlilylib.org: Hi Harm, this is terrific! I'm about to collect a number of examples why LilyPond rocks for engraving contemporary music, and this should definitely be part of it. Hi Urs, glad you like it. Though, there's the problem I mentioned and it needs some real life testing. Yes, I know. But as usual with advertising I think we can generously ignore that :-/ Best Urs Cheers, Harm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: segmented glissando lines
Am 10.01.2015 um 22:22 schrieb Orm Finnendahl: Hi, I can't find documentation about how to write segmented glissando lines, like in the attached png. The line segments have to get notated with precise rhythms, so I'm looking for something similar to glissando notation but without noteheads. I tried this: \new Staff \relative c'' { \hide NoteHead \hide Stem d,8 \glissando f' \glissando d, \glissando f' \glissando e, \glissando g' \glissando d, \glissando f' \glissando } But this only makes the NoteHeads invisible. Removing the Note_heads_engraver makes the glissandolines disappear. Does anybody know how to achieve this? Can't test right now, but what about \omit NoteHead? Urs -- Orm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user -- Urs Liska www.openlilylib.org ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
segmented glissando lines
Hi, I can't find documentation about how to write segmented glissando lines, like in the attached png. The line segments have to get notated with precise rhythms, so I'm looking for something similar to glissando notation but without noteheads. I tried this: \new Staff \relative c'' { \hide NoteHead \hide Stem d,8 \glissando f' \glissando d, \glissando f' \glissando e, \glissando g' \glissando d, \glissando f' \glissando } But this only makes the NoteHeads invisible. Removing the Note_heads_engraver makes the glissandolines disappear. Does anybody know how to achieve this? -- Orm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: segmented glissando lines
Am 10.01.2015 um 23:02 schrieb Orm Finnendahl: Hi Urs, Am Samstag, den 10. Januar 2015 um 22:22:15 Uhr (+0100) schrieb Urs Liska: Can't test right now, but what about \omit NoteHead? same problem, glissandolines aren't drawn at all if NoteHeads are omitted: And making the NoteHead infinitely small? \override NoteHead #'stencil = #point-stencil ??? Can't one override the extent of a grob to be zero? AFAIK this is usually done to deliberately avoid collision handling but couldn't this be used in conjunction with \hide to achieve what you want? HTH Urs % \version 2.19 \new Staff \relative c'' { \omit NoteHead d,2 \glissando f' \glissando d, \glissando f' \glissando e, \glissando g' \glissando d, \glissando f' \glissando } \paper { ragged-right = ##f } % ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user -- Urs Liska www.openlilylib.org ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: segmented glissando lines
Hi Urs, Am Samstag, den 10. Januar 2015 um 22:22:15 Uhr (+0100) schrieb Urs Liska: Can't test right now, but what about \omit NoteHead? same problem, glissandolines aren't drawn at all if NoteHeads are omitted: % \version 2.19 \new Staff \relative c'' { \omit NoteHead d,2 \glissando f' \glissando d, \glissando f' \glissando e, \glissando g' \glissando d, \glissando f' \glissando } \paper { ragged-right = ##f } % ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: segmented glissando lines
Hi Orm, How about : \version 2.19.15 #(define (add-gliss m) (case (ly:music-property m 'name) ((NoteEvent) (set! (ly:music-property m 'articulations) (append (ly:music-property m 'articulations) (list (make-music (quote GlissandoEvent) m) (else #f))) addGliss = #(define-music-function (parser location music) (ly:music?) (map-some-music add-gliss music)) \relative c'' { \override Glissando.thickness = #2 \override Glissando.bound-details =#'( (right (attach-dir . 1) (padding . 0)) (left (attach-dir . 1) (padding . 0))) \override NoteHead.no-ledgers = ##t \addGliss { d,2 \omit Stem \override NoteHead.transparent = ##t f' d, f' e, g' d, f' } } Cheers, Pierre ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user