Subject: \cresc entre parenthèses

From: "Daniel Bernair \(Belgacom.net\)" <[email-masked]>
Date: Sat, 7 Sep 2019 16:11:24 +0200

Bonjour à toutes et tous.

Dans mes outils j’ai enregistrer cette fonction qui permet
de mettre entre parenthèses un crescendo, decrescendo du
style \< …\ !  ou  \> …\ ! 

Cela fonctionne bien mais pas avec \cresc …\ !  ou \decr … \
!

Cela revient quelques fois dans ma partition Comment faire ?

Voici le code de la fonction :

hairpinBetweenText =

#(define-music-function (parser location leftText rightText)

      (markup? markup?)

    #{

    \once \override Hairpin #'stencil = #(lambda (grob)

         (let* ((orig (ly:grob-original grob))

                (siblings (if (ly:grob? orig)

                              (ly:spanner-broken-into orig)

                              '()))

                (hairpin-stencil (ly:stencil-aligned-to

                      (ly:hairpin::print grob) Y CENTER))

                (left-addition (ly:stencil-aligned-to

                      (grob-interpret-markup grob leftText)
Y CENTER))

                (right-addition (ly:stencil-aligned-to

                      (grob-interpret-markup grob rightText)
Y CENTER)))

         (if (or (null? siblings) (eq? grob (car siblings)))

               (set! hairpin-stencil

                     (ly:stencil-combine-at-edge

                      left-addition X RIGHT

                      hairpin-stencil

                      0)))

         (if (or (null? siblings)  (eq? grob (car (reverse
siblings))))

               (set! hairpin-stencil

                     (ly:stencil-combine-at-edge

                      hairpin-stencil X RIGHT

                      right-addition

                      0.6)))

                      hairpin-stencil))

    #})

parenthesizedHairpin = \hairpinBetweenText \markup \fontsize
#3 "( " \markup

\fontsize #3 ")" %adapter fontsize en fonction des goûts

\relative c''{

     \once \override Hairpin.extra-offset = #'(-0.4 . 0)

   c1~\< c\!

   \once \override Hairpin.extra-offset = #'(0.5 . -1)

   \parenthesizedHairpin

   a1\> b c4 b c a a1\!

   %il est possible que le

%0.5 puisse être inclus plus haut dans la définition

      \once \override Hairpin.extra-offset = #'(0.5 . -0)

   \parenthesizedHairpin

   c,1\< c d e\!

}

Merci de votre aide.

Daniel Bernair

This email has been scanned by BullGuard antivirus
protection.
For more info visit www.bullguard.com
<http://www.bullguard.com/tracking.aspx?affiliate=bullguard&
buyaffiliate=smtp&url=/>

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sat, 7 Sep 2019 19:30:38 +0200

Bonsoir Daniel,
Je n'ai pas le temps de suite mais jette un coup d’œil ici:
http://lilypond.1069038.n5.nabble.com/Hairpins-brackets-and-dynamics-td212153.html#a212156
Ce qui donne :

\version "2.19.81"

#(define (hairpin-between-text kern left-text right-text)
  (lambda (grob)
    (let* ((v-centered-left-text
             (ly:stencil-aligned-to
               (grob-interpret-markup grob left-text) Y CENTER))
           (left-text-x-ext (ly:stencil-extent v-centered-left-text X))
           (v-centered-right-text
             (ly:stencil-aligned-to
               (grob-interpret-markup grob right-text) Y CENTER))
           (right-text-x-ext (ly:stencil-extent v-centered-right-text X))
           (prev-shorten-pair
             (ly:grob-property grob 'shorten-pair '(0 . 0)))
           (thick
             (ly:grob-property grob 'thickness 1))
           (line-thick (ly:staff-symbol-line-thickness grob))
           (actual-thick (* thick line-thick))
           (shorten
             (+ (* 2 kern)
                (cdr right-text-x-ext)
                (cdr left-text-x-ext)
                (- (* 2 actual-thick)))))

      (ly:grob-set-property! grob 'shorten-pair
        (coord-translate
          prev-shorten-pair
          (cons 0 shorten)))

      (let* ((v-centered-hairpin
                   (ly:stencil-aligned-to
                     (ly:hairpin::print grob) Y CENTER))
             (hairpin-x-ext (ly:stencil-extent v-centered-hairpin X)))

        (ly:stencil-translate-axis
          (ly:stencil-add
            (ly:stencil-translate-axis
              v-centered-left-text
              (-
                (car hairpin-x-ext)
                (cdr left-text-x-ext)
                actual-thick)
              X)
            (ly:stencil-translate-axis
              v-centered-hairpin
              (- kern actual-thick)
              X)
            (ly:stencil-translate-axis
              v-centered-right-text
              (+
                (cdr hairpin-x-ext)
                (* 2 kern))
              X))
          (cdr left-text-x-ext)
          X)))))

hairpinBetweenText =
#(define-music-function (space text-left text-right)
  ((number? 0.6) markup? markup?)
  #{
     \once \override Hairpin.stencil =
       #(hairpin-between-text space text-left text-right)
  #})

% Ex :

\relative c''{
  \override Hairpin.to-barline = ##f
  %\override Hairpin.shorten-pair = #'(.4 . 0)  %% <= à ajuster

  \hairpinBetweenText "(" ")"
  c1~\< c\!

  \hairpinBetweenText "[" "]"
  a1\> b c4 b c a a1\!

  \hairpinBetweenText "(" ")"
  c,1\< c d e\!
}

Si j'ai le temps plus tard, je regarderai pour le \cresc  etc.
Cordialement,
Pierre

Le sam. 7 sept. 2019 à 16:11, Daniel Bernair (Belgacom.net) <
[email-masked]> a écrit :

> Dans mes outils j’ai enregistrer cette fonction qui permet de mettre entre
> parenthèses un crescendo, decrescendo du style \< …\ !  ou  \> …\ !
>
> Cela fonctionne bien mais pas avec \cresc …\ !  ou \decr … \ !
>
>                       (grob-interpret-markup grob leftText) Y CENTER))
>
>                       (grob-interpret-markup grob rightText) Y CENTER)))
>
>          (if (or (null? siblings)  (eq? grob (car (reverse siblings))))
>
>                (set! hairpin-stencil
>
> parenthesizedHairpin = \hairpinBetweenText \markup \fontsize #3 "( "
> \markup
>
> This email has been scanned by BullGuard antivirus protection.
> <http://www.bullguard.com/tracking.aspx?affiliate=bullguard&buyaffiliate=smtp&url=/>
> _______________________________________________
> liste de diffusion lilypond-user-fr
> [email-masked]
> https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>

---

From: "Daniel Bernair \(Belgacom.net\)" <[email-masked]>
Date: Sun, 8 Sep 2019 09:51:05 +0200

Merci pour les infos, Pierre, cependant si cela fonctionne bien avec \<  … \ ! ou \> … \ ! avec \cresc …\ ! et \decr .. \ ! les parentèses ne sont pas imprimées. 

Amicalement,

Daniel Bernair

De : Pierre Perol-Schneider 
Envoyé : samedi 7 septembre 2019 19:31
À : Daniel Bernair (Belgacom.net) <[email-masked]>
Cc : lilypond-user-fr <[email-masked]>
Objet : Re: \cresc entre parenthèses

Bonsoir Daniel,

Je n'ai pas le temps de suite mais jette un coup d’œil ici: http://lilypond.1069038.n5.nabble.com/Hairpins-brackets-and-dynamics-td212153.html#a212156

Ce qui donne :

\version "2.19.81"

hairpinBetweenText =

% Ex :

\relative c''{

  

Cordialement,

Pierre

Le sam. 7 sept. 2019 à 16:11, Daniel Bernair (Belgacom.net) <[email-masked] <mailto:[email-masked]> > a écrit :

Dans mes outils j’ai enregistrer cette fonction qui permet de mettre entre parenthèses un crescendo, decrescendo du style \< …\ !  ou  \> …\ ! 

hairpinBetweenText =

      (markup? markup?)

    #{

                              '()))

               (set! hairpin-stencil

                      left-addition X RIGHT

                      hairpin-stencil

                      0)))

               (set! hairpin-stencil

                      hairpin-stencil X RIGHT

                      right-addition

                      0.6)))

                      hairpin-stencil))

    #})

parenthesizedHairpin = \hairpinBetweenText \markup \fontsize #3 "( " \markup

\relative c''{

   c1~\< c\!

   \parenthesizedHairpin

   a1\> b c4 b c a a1\!

   %il est possible que le

   \parenthesizedHairpin

   c,1\< c d e\!

}

Merci de votre aide.

Daniel Bernair

For more info visit www.bullguard.com <http://www.bullguard.com/tracking.aspx?affiliate=bullguard&buyaffiliate=smtp&url=/> 

_______________________________________________
liste de diffusion lilypond-user-fr
[email-masked] <mailto:[email-masked]> 
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr

This email has been scanned by BullGuard antivirus protection.
For more info visit www.bullguard.com <http://www.bullguard.com/tracking.aspx?affiliate=bullguard&buyaffiliate=smtp&url=/>

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sun, 8 Sep 2019 11:09:03 +0200

Oui, c'est normal, il s'agit de deux fonctions bien différentes.
Une solution (simple) :

\version "2.19.83"

pCresc = #(define-event-function (parser location) ()
    #{
      \tweak bound-details.left.text \markup\concat { \lower #.1 "("
"cresc." }
      \tweak bound-details.right-broken.text ##f
      \tweak bound-details.left-broken.text ##f
      \tweak bound-details.right.text \markup \lower #.5 " )"
      \cresc
    #})

pDresc = #(define-event-function (parser location) ()
    #{
      \tweak bound-details.left.text \markup\concat { \lower #.1 "("
"decresc." }
      \tweak bound-details.right-broken.text ##f
      \tweak bound-details.left-broken.text ##f
      \tweak bound-details.right.text \markup \lower #.5 " )"
      \decresc
    #})

%% Tests :
{ c'1*10 \cresc \break c' c'1\! }
{ c'1*10 \pCresc \break c' c'1\! }
{ c'1*10 \decresc \break c' c'1\! }
{ c'1*10 \pDresc \break c' c'1\! }

Cordialement,
Pierre

Le dim. 8 sept. 2019 à 09:51, Daniel Bernair (Belgacom.net) <
[email-masked]> a écrit :

> Merci pour les infos, Pierre, cependant si cela fonctionne bien avec \<  …
> \ ! ou \> … \ ! avec \cresc …\ ! et \decr .. \ ! les parentèses ne sont pas
> imprimées.
>
> Amicalement,
>
> Daniel Bernair
>
>
>
> *De :* Pierre Perol-Schneider
> *Envoyé :* samedi 7 septembre 2019 19:31
> *À :* Daniel Bernair (Belgacom.net) <[email-masked]>
> *Cc :* lilypond-user-fr <[email-masked]>
> *Objet :* Re: \cresc entre parenthèses
>
>
>
> Bonsoir Daniel,
>

---

From: "Daniel Bernair \(Belgacom.net\)" <[email-masked]>
Date: Mon, 9 Sep 2019 08:11:50 +0200

Merci Pierre c’est ce que je devais faire. Parfait

Amcalement

Daniel Bernair

De : lilypond-user-fr De la part de Pierre Perol-Schneider
Envoyé : dimanche 8 septembre 2019 11:09
À : Daniel Bernair (Belgacom.net) <[email-masked]>
Cc : lilypond-user-fr <[email-masked]>
Objet : Re: \cresc entre parenthèses

Une solution (simple) :

\version "2.19.83"

      \tweak bound-details.left.text \markup\concat { \lower #.1 "(" "cresc." }

      \tweak bound-details.left.text \markup\concat { \lower #.1 "(" "decresc." }

%% Tests :

Cordialement,

Pierre

Le dim. 8 sept. 2019 à 09:51, Daniel Bernair (Belgacom.net) <[email-masked] <mailto:[email-masked]> > a écrit :

Amicalement,

Daniel Bernair

De : Pierre Perol-Schneider 
Envoyé : samedi 7 septembre 2019 19:31
À : Daniel Bernair (Belgacom.net) <[email-masked] <mailto:[email-masked]> >
Cc : lilypond-user-fr <[email-masked] <mailto:[email-masked]> >
Objet : Re: \cresc entre parenthèses

Bonsoir Daniel,

Ce qui donne :

\version "2.19.81"

hairpinBetweenText =

% Ex :

\relative c''{

  

Cordialement,

Pierre

hairpinBetweenText =

      (markup? markup?)

    #{

                              '()))

               (set! hairpin-stencil

                      left-addition X RIGHT

                      hairpin-stencil

                      0)))

               (set! hairpin-stencil

                      hairpin-stencil X RIGHT

                      right-addition

                      0.6)))

                      hairpin-stencil))

    #})

\relative c''{

   c1~\< c\!

   \parenthesizedHairpin

   a1\> b c4 b c a a1\!

   %il est possible que le

   \parenthesizedHairpin

   c,1\< c d e\!

}

Merci de votre aide.

Daniel Bernair

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Mon, 9 Sep 2019 08:58:01 +0200

Ajouté à la LSR : http://lsr.di.unimi.it/LSR/Item?id=1097
Amicalement,
Pierre

Le lun. 9 sept. 2019 à 08:11, Daniel Bernair (Belgacom.net) <
[email-masked]> a écrit :

> *De :* lilypond-user-fr *De la part de* Pierre Perol-Schneider
> *Envoyé :* dimanche 8 septembre 2019 11:09

---

From: "Daniel Bernair \(Belgacom.net\)" <[email-masked]>
Date: Mon, 9 Sep 2019 11:07:07 +0200

Merci Pierre. Tant qu’à faire on peut ajouter \dim dans la fonction. Pour moi, je le ferai dans ma boîte à outils. Merci

Daniel Bernair  

Envoyé : lundi 9 septembre 2019 08:58

Amicalement,

Pierre

Le lun. 9 sept. 2019 à 08:11, Daniel Bernair (Belgacom.net) <[email-masked] <mailto:[email-masked]> > a écrit :

Amcalement

Daniel Bernair

Une solution (simple) :

\version "2.19.83"

%% Tests :

Cordialement,

Pierre

Amicalement,

Daniel Bernair

Bonsoir Daniel,

Ce qui donne :

\version "2.19.81"

hairpinBetweenText =

% Ex :

\relative c''{

  

Cordialement,

Pierre

hairpinBetweenText =

      (markup? markup?)

    #{

                              '()))

               (set! hairpin-stencil

                      left-addition X RIGHT

                      hairpin-stencil

                      0)))

               (set! hairpin-stencil

                      hairpin-stencil X RIGHT

                      right-addition

                      0.6)))

                      hairpin-stencil))

    #})

\relative c''{

   c1~\< c\!

   \parenthesizedHairpin

   a1\> b c4 b c a a1\!

   %il est possible que le

   \parenthesizedHairpin

   c,1\< c d e\!

}

Merci de votre aide.

Daniel Bernair

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Mon, 9 Sep 2019 11:50:16 +0200

Et pourquoi pas plus simplement:

\version "2.19.83"

paren = #(define-event-function (arg) (markup?)
    #{
      \tweak bound-details.left.text \markup\concat { \lower #.1 "(" #arg }
      \tweak bound-details.left.attach-dir #-2
      \tweak bound-details.right-broken.text ##f
      \tweak bound-details.left-broken.text ##f
      \tweak bound-details.right.text \markup\lower #.5 " )"
      \tweak bound-details.right.attach-dir # .5
      \cresc
    #})

%% Test:
{
  c'1*10 \paren "cresc." \break
  s1*5 c'1\! c'1*5 \paren "decresc." \break
  s1*5 c'1\! c'1*5 \paren "dim." \break
  s1*5 c'1\! c'1*5 \paren "rit." \break
  s1*10 c'1\! \bar "."
}

???

Le lun. 9 sept. 2019 à 11:07, Daniel Bernair (Belgacom.net) <
[email-masked]> a écrit :

> Merci Pierre. Tant qu’à faire on peut ajouter \dim dans la fonction. Pour
> moi, je le ferai dans ma boîte à outils. Merci
>
> Daniel Bernair
>
>
>
> *Envoyé :* lundi 9 septembre 2019 08:58

---

From: Jean ABOU SAMRA <[email-masked]>
Date: Mon, 9 Sep 2019 18:11:23 +0200

> Le 7 sept. 2019 à 16:11, Daniel Bernair (Belgacom.net) <[email-masked]> a écrit :
> 
> Dans mes outils j’ai enregistré cette fonction qui permet de mettre entre parenthèses un crescendo, decrescendo du style \< …\ !  ou  \> …\ ! 

Au passage, pensez à supprimer « parser location », cela est inutile à présent (2.19.83) et ne fonctionnera plus dans des versions ultérieures.

---

From: Olivier Miakinen <[email-masked]>
Date: Tue, 10 Sep 2019 00:22:21 +0200

>       \tweak bound-details.right.attach-dir # .5
        ^^^^^^

>   s1*5 c'1\! c'1*5 \paren "decresc." \break
                            ^^^^^^^^^^

Est-ce que ça ne risque pas de poser des problèmes si on fait en
réalité un \cresc tout en croyant faire un decresc ?

---

From: Olivier Miakinen <[email-masked]>
Date: Tue, 10 Sep 2019 00:24:56 +0200

> Au passage, pensez à supprimer « parser location », cela est inutile à présent (2.19.83) et ne fonctionnera plus dans des versions ultérieures.

A-t-on maintenant des infos sur la date de sortie de la 2.20 ?

Entre autres choses, ça permettrait peut-être qu'elle soit adoptée
par Wikipédia au lieu d'une 2.18...