lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Glissandi et bends


From: Vincent Gay
Subject: Glissandi et bends
Date: Wed, 7 Mar 2018 13:46:03 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0

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/

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]