Subject: Glissandi et bends

From: Vincent Gay <[email-masked]>
Date: Wed, 7 Mar 2018 13:46:03 +0100

J'ai récemment trouvé quelques commandes ou propriétés que je ne
connaissais pas encore (Score.SpacingSpanner.spacing-increment,
afterGrace...). Cela m'a amené à revoir certaines solutions concernant
les glissandi et les bends qui ne me donnaient pas entièrement
satisfaction. Et donc je partage ça ici autant pour me servir de mémo
que dans l'espoir que cela puisse servir à d'autres.

Lilypond gère les glissandi et les bends de façon très classique (comme
à l'accoutumé) ce qui ne convient pas tout à fait à l'écriture des
partitions de jazz. Voici quelques solutions à mes problèmes les plus
courants.

    Les glissandi

Par défaut le glissando est représenté par une ligne droite. Pour
l'avoir en zig-zag :

[ \once ]  \override Glissando.style = #'zigzag

ou dans le layout :

\layout {
  \context {
    \Score
    \override Glissando #'style = #'zigzag
  }
}

Normalement un glissando relie 2 notes mais il peut arriver que la note
d’arrivée (ou de départ) d’un glissando soit absente de la partition.
Pour ce faire la documentation Lilypond propose de passer par une note
cachée et une cadence
Source :
http://lilypond.org/doc/v2.18/Documentation/notation/expressive-marks-as-lines#glissando

Glissando01.jpg

\relative c'' {
  \time 3/4
  \override Glissando.style = #'zigzag
  c4 c
  \cadenzaOn
  c4\glissando
  \hideNotes
  c,,4
  \unHideNotes
  \cadenzaOff
  \bar "|"
}

Attention : du fait de la cadence le décompte de la mesure ne sera pas
incrémentée : le rectifier avec \set Score.currentBarNumber = #[N° de la
mesure]. Penser également à gérer les autres voix, les ligatures ([ et ]
derrière les notes concernées).

Une autre solution, sans ces désagréments quoique tout aussi compliquée,
consiste à passer par des grâces notes invisible et à gérer l'espace
soit par Score.SpacingSpanner.spacing-increment (doc :
http://lilypond.org/doc/v2.18/Documentation/notation/new-spacing-area)
dans le cas d'un glissando avant, soit avec #(define afterGraceFraction
(cons x y)) (doc :
http://lilypond.org/doc/v2.18/Documentation/notation/special-rhythmic-concerns#grace-notes)
dans le cas d'un glissando après.

\relative c'' {
  \override Glissando.style = #'zigzag
  c2 c |
  \newSpacingSection
  \once \override Score.SpacingSpanner.spacing-increment = #2.5
  \hideNotes \grace c,8 \glissando \unHideNotes
  \newSpacingSection
  c'2 c |
  r2
  \newSpacingSection
  \once \override Score.SpacingSpanner.spacing-increment = #2.5
  \hideNotes \grace c,8 \glissando \unHideNotes
  \newSpacingSection
  c'2 |
  c c
  #(define afterGraceFraction (cons 99 100))
  c \afterGrace c \glissando
  {
    \hideNotes c,8
    \unHideNotes 
  }
  \afterGrace c'2 \glissando
  {
    \hideNotes c,8
    \unHideNotes 
  }
  r2
}

    Les bends

        BendAfter

Lilypond utilise les sauts et chutes après une note avec la commande
\bendAfter #±VALEUR, où valeur est positive pour une courbe vers le haut
et négative pour une courbe vers le bas

\version "2.18.2"
\relative c'' {
  c2\bendAfter #+4
  c2\bendAfter #-4
  c2\bendAfter #+6.5
  c2\bendAfter #-6.5
  c2\bendAfter #+8
  c2\bendAfter #-8
}

        bendBefore

Par contre il n'est pas prévu à l'origine de courbes avant la note(
\bendBefore) et il faut pour cela utiliser une fonction additionnelle
(que m'avait indiqué Mike Solomon sur cette liste)  mais la solution
trouvée ne fonctionne que dans un sens et n'est pas paramétrable. De
plus à l'usage la gestion de l'espace n'est pas irréprochable :

bend03.jpg

\version "2.18.2"
  #(define (scoop-stencil grob)
    (ly:stencil-add
    (ly:note-head::print grob)
    (grob-interpret-markup grob
    (markup #:with-dimensions '(0 . 0) '(0 . 0)
    #:translate '(-0.2 . -0.5)
    #:path 0.25 '((moveto 0 0)
    (curveto 0 -1 -1 -1.5 -1.5 -1.5))))))

  scoop = \once \override NoteHead #'stencil = #scoop-stencil

\relative c'' {
  \scoop c2
}

une autre solution consiste à faire un bendAfter inverse sur une grâce
note invisible et de gérer l'espace avec
Score.SpacingSpanner.spacing-increment (doc :
http://lilypond.org/doc/v2.18/Documentation/notation/new-spacing-area)

\version "2.18.2"
\relative c'' {
  c2\bendAfter #+4
  c\bendAfter #-4 |
  \newSpacingSection
  \once \override Score.SpacingSpanner.spacing-increment = #3.5
  \hideNotes \grace f,8 \bendAfter #4 \unHideNotes
  \newSpacingSection
  \once \override Score.SpacingSpanner.spacing-increment = #0.3
  c'2
  \newSpacingSection
  \once \override Score.SpacingSpanner.spacing-increment = #3
  \hideNotes \grace g'8 \bendAfter #-4 \unHideNotes
  \newSpacingSection
  c,2
}

Hoping this helps

-- 
Vincent Gay
Envoyé depuis mon saxo-phone :)
http://blog.vintherine.org/ - http://photos.vintherine.org/

---

From: gegeours <[email-masked]>
Date: Thu, 8 Mar 2018 01:15:19 -0700 (MST)

Bonjour,

Je viens d'utiliser tes solutions sur les *bends *avec la non utilisation du
repeatTie.
Voir image c-dessous :
http://lilybin.com/8jy48x/1

Merci beaucoup pour ton étude appronfondie.

Bonne journée

--
Sent from: http://lilypond-french-users.1298960.n2.nabble.com/

---

From: Vincent Gay <[email-masked]>
Date: Thu, 08 Mar 2018 11:50:01 +0100

Arf... je n'avais pas pensé à utiliser des bends pour simuler des liaisons. Ça a l'air de marcher pas mal.

Le 8 mars 2018 09:15:19 GMT+01:00, gegeours <[email-masked]> a écrit :
>_______________________________________________
>liste de diffusion lilypond-user-fr
>[email-masked]
>https://lists.gnu.org/mailman/listinfo/lilypond-user-fr

-- 
Envoyé depuis mon saxo-phone
http://blog.vintherine.org
http://photos.vintherine.org