Re: segmented glissando lines

2020-02-09 Thread Aaron Hill

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

2020-02-09 Thread dtsmarin
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-13 Thread Thomas Morley
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

2015-01-12 Thread Pierre Perol-Schneider
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

2015-01-11 Thread Orm Finnendahl
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-11 Thread 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.

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 Thread 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 = #
  %% 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

2015-01-11 Thread Urs Liska

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

2015-01-11 Thread Urs Liska


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

2015-01-10 Thread Urs Liska

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

2015-01-10 Thread 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?

--
Orm
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: segmented glissando lines

2015-01-10 Thread Urs Liska

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

2015-01-10 Thread 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:

%
\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

2015-01-10 Thread 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