Subject: Flèches entre indications d'expression

From: SebastienVB <[email-masked]>
Date: Mon, 16 Nov 2020 04:07:08 -0700 (MST)

Bonjour à toutes et tous,

Dans une partition contemporaine, je dois indiquer les transitions continues
entre deux expressions, comme par exemple dans ce passage pour violoncelle:

<http://lilypond-french-users.1298960.n2.nabble.com/file/t395673/C1.jpg> 

Ce passage est écrit comme suit (solution trouvée à partir d'un forum
anglophone) :

/\version "2.20.0"
{
  \clef bass
  \relative c {
  \override TextSpanner.bound-details.left.stencil-align-dir-y = #0
  \override TextSpanner.bound-details.right.stencil-align-dir-y = #0.5
  \override TextSpanner.bound-padding = #1.0
  \override TextSpanner.style = #'line
  \override TextSpanner.bound-details.right.arrow = ##t
  
  \override TextSpanner.bound-details.left.text = #"sul pont."
  \override TextSpanner.bound-details.right.text = #"ord."
  
   <b! ees!>4:32\pp\startTextSpan 
   <b! ees!>4:32 
   <b! ees!>4:32 
   <b! ees!>4:32\stopTextSpan
  }
  }/

Cette solution comporte deux inconvénients que je ne parviens pas à
éliminer.

Le premier survient en cas de saut de ligne. Voici une situation où la
flèche démarre au bout d'une portée et devrait atteindre la mesure suivante
qui se trouve après un changement de portée:

<http://lilypond-french-users.1298960.n2.nabble.com/file/t395673/C2.jpg> 

La deuxième indication d'expression (/sul pont/) devrait passer à la portée
suivante, mais elle reste dans la marge. De plus, le point d'arrivée après
changement de portée est cacophonique:

<http://lilypond-french-users.1298960.n2.nabble.com/file/t395673/C3.jpg> 

Y a-t-il une solution robuste aux changements de portée (comme les pédales
du piano par exemple) ?

Le deuxième inconvénient est que je ne peux inscrire qu'une flèche à la
fois. Il y a parfois un double changement d'expressions qui nécessite
l'utilisation de deux flèches ne commençant ni ne terminant aux mêmes
endroits, et avec une possible superposition. La solution ci-dessus n'est
manifestement pas généralisable.

En vous remerciant de m'avoir lu jusqu'ici, et vous souhaitant une toute
belle semaine,

Sébastien.

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

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Mon, 16 Nov 2020 14:00:44 +0100

Bonjour Sébastien,
Une solution :

\version "2.20.0"

startPont =
#(define-event-function (fretnum partial) ()
    #{
      \tweak bound-details.left.text \markup "sul pont."
      \tweak style #'line
      \tweak bound-details.left.stencil-align-dir-y #0
      \tweak bound-details.left-broken.text ##f
      \tweak bound-details.left-broken.attach-dir -1
      \tweak bound-details.left-broken.padding 1.5

      \tweak bound-details.right.stencil-align-dir-y 0.5
      \tweak bound-details.right.text \markup "ord."
      \tweak bound-details.right.arrow ##t
      \tweak bound-details.right-broken.arrow ##f
      \tweak bound-details.right-broken.text ##f
      \startTextSpan
   #})

{
  \clef bass
  \relative c {
   <b! ees!>4:32\pp\startPont
   <b! ees!>4:32
   <b! ees!>4:32
   <b! ees!>4:32
   \break
   <b! ees!>4:32 \stopTextSpan
  }
}

Et on peut multiplier les \startPont en ajoutant des voix.
Cordialement,
Pierre

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Mon, 16 Nov 2020 14:04:54 +0100

Oups, coquille de copier/coller...
Donc :

\version "2.20.0"

startPont =
#(define-event-function ()()
    #{

{
  \clef bass
  \relative c {

Cordialement,
Pierre

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Mon, 16 Nov 2020 14:06:53 +0100

On peut même préciser :

\version "2.20.0"

startPont = #(define-event-function ()()
    #{

stopPont = \stopTextSpan

{
  \clef bass
  \relative c {
   <b! ees!>4:32 \stopPont
  }
}

Cordialement,
Pierre

---

From: SebastienVB <[email-masked]>
Date: Mon, 16 Nov 2020 15:16:45 -0700 (MST)

Merci pour cette solution qui fonctionne très bien !

Sébastien.