Subject: Comment éviter une collision pareil ?

From: Francisco Uberto <[email-masked]>
Date: Sun, 11 Jul 2021 10:20:58 +0200

Bonjour à tous,
Parfois, avec l'utilisation des certains altérations il se génère une collision non desirable.
J'imagine que ce assez simple à gérer une fois qu'on connais comment.
Quelqu'un pourrait apporter de l'expérience ici s'il vous plaît ?

Merci d'avance

Francisco

---

From: Christophe Pochon <[email-masked]>
Date: Sun, 11 Jul 2021 12:02:44 +0200

Bonjour,

J'ai l'impression que c'est un problème de version de Lilypond, car quand
je reproduis votre exemple, je n'ai pas ce problème de collision

Quelle version utilisez-vous ?

Cordialement,

Christophe Pochon

---

From: Francisco Uberto <[email-masked]>
Date: Sun, 11 Jul 2021 12:08:19 +0200

J'ai la version 2.20.0 téléchargé depuis ce lien https://gitlab.com/marnen/lilypond-mac-builder/-/releases <https://gitlab.com/marnen/lilypond-mac-builder/-/releases>

J'aimerai bien avoir la toute dernier mais, perso, je ne trouve pas le liens pour les Mac OS 11.4 big sur

Quelqu'un a le lien de la version 2.23... pour big sur d'ailleurs ?

> Le 11 juil. 2021 à 12:02, Christophe Pochon <[email-masked]> a écrit :
> 
> Bonjour,
> 
> J'ai l'impression que c'est un problème de version de Lilypond, car quand je reproduis votre exemple, je n'ai pas ce problème de collision 
> 
> 
> Le dim. 11 juil. 2021 à 10:20, Francisco Uberto <[email-masked] <mailto:[email-masked]>> a écrit :
> Bonjour à tous,
> <Capture d’écran 2021-07-11 à 10.19.45.png>

---

From: Christophe Pochon <[email-masked]>
Date: Sun, 11 Jul 2021 13:22:29 +0200

Il n'y a plus de versions officielles pour MacOs depuis un moment. Pour
diverses raisons. Mais ça met en place petit à petit, le temps de mettre en
place une équipe qui s'en chargerait (j'en ferai peut-être partie aussi).
En attendant, Jean a posté un lien l'autre jour vers des versions récentes
pour MacOs. Il n'y a pas le 2.23, mais au moins la 2.22.1, ici :
https://github.com/hahnjo/lilypond-binaries/releases

Ça ne se présente pas sous forme de ".app", mais comme un dossier (comme
les versions Linux) et il faut fouiller dedans pour trouver le binaire.
Mais si tu travailles avec Frescobaldi, il suffit de lui indiquer le bon
chemin et c'est réglé.

Ceci dit, j'ai testé ton exemple en 2.20 chez moi, mais aussi en 2.18 et
2.19 sous Lilybin, sans problème : http://lilybin.com/85ilys/1

Peut-être qu'il y a quelque chose dans ton code qui provoque ces collisions
?

A+

Christophe Pochon

Le dim. 11 juil. 2021 à 12:08, Francisco Uberto <[email-masked]>
a écrit :

> J'ai la version 2.20.0 téléchargé depuis ce lien
> https://gitlab.com/marnen/lilypond-mac-builder/-/releases
>

---

From: Olivier Miakinen <[email-masked]>
Date: Sun, 11 Jul 2021 13:28:10 +0200

Bonjour,

> je reproduis votre exemple, je n'ai pas ce problème de collision

L'image est un peu petite, mais j'ai l'impression qu'il y a le même
problème (le bécarre recouvre un peu le chiffre 3), même s'il est
moins visible car il manque la flèche de l'altération spéciale.

---

From: Olivier Miakinen <[email-masked]>
Date: Sun, 11 Jul 2021 13:39:17 +0200

> 2.19 sous Lilybin, sans problème : http://lilybin.com/85ilys/1

\relative c' {
 \tuplet 3/2 {
     f8-.\f\<
	 \once \override Accidental.glyph-name-alist =
		 #'((0 . "accidentals.natural.arrowup"))
	 e'!4~
 }
 e8-.\f
}

http://lilybin.com/85ilys/2

> Peut-être qu'il y a quelque chose dans ton code qui provoque ces collisions

Oui : natural.arrowup (en tout cas c'est ce qui rend plus évidente la
collision)

---

From: Francisco Uberto <[email-masked]>
Date: Sun, 11 Jul 2021 14:08:40 +0200

C'est que j'allais dire : dans le code il faut considerer qu'il y a un quart de ton, et c'est ça qui produit la collision.
La question est : comment déplacer un petit peu vers le haut le crochet du triolet ? 

\relative c' {
 \tuplet 3/2 {
     f8-.\f\< 
	 \once \override Accidental.glyph-name-alist = #'((0 . "accidentals.natural.arrowup"))
	 e'!4~ 
 }
 e8-.\f
}

> Le 11 juil. 2021 à 13:39, Olivier Miakinen <[email-masked]> a écrit :
>

---

From: Christophe Pochon <[email-masked]>
Date: Sun, 11 Jul 2021 14:08:53 +0200

C'est juste ! Je n'avais pas remarqué la flèche !
Oups...

Christophe Pochon

---

From: Christophe Pochon <[email-masked]>
Date: Sun, 11 Jul 2021 14:12:49 +0200

Une solution :

\relative c' {
  \once \override Staff.TupletBracket.direction =  #DOWN
 \tuplet 3/2 {
     f8-.\f\<
         \once \override Accidental.glyph-name-alist =
                 #'((0 . "accidentals.natural.arrowup"))
         e'!4~
 }
 e8-.\f
}
Christophe Pochon

---

From: Francisco Uberto <[email-masked]>
Date: Sun, 11 Jul 2021 14:23:33 +0200

J'ai trouvé comment faire ❤️
Merci également, car sans votre aide j'aurai pas arrivé à la solution... 
À une prochaine...

Francisco 

% LilyBin
\score{
	{
		\relative c' {
   \once \override Staff.TupletBracket.Y-offset = #-1.5
 \tuplet 3/2 {
     f8-.\f\<
         \once \override Accidental.glyph-name-alist =
                 #'((0 . "accidentals.natural.arrowup"))
         e'!4~
 }
 e8-.\f
}
	}

	\layout{}
	\midi{}
}

> Le 11 juil. 2021 à 14:12, Christophe Pochon <[email-masked]> a écrit :
> 
> \relative c' {

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 12 Jul 2021 15:35:55 +0200 (CEST)

> Le 11/07/2021 14:08, Francisco Uberto <[email-masked]> a écrit :
> 
> 

Bonjour,

À part Y-offset, on peut aussi écrire du code Scheme
pour que le crochet de n-olet évite vraiment l'altération.
En fait, il s'agit d'un petit souci connu :

https://gitlab.com/lilypond/lilypond/-/issues/3766

Ma proposition :

\version "2.22.1"

\layout {
  \context {
    \Voice
    \consists
      #(lambda (context)
         (let ((brackets (make-hash-table))
               (ending-brackets '())
               (accidentals '()))
           (make-engraver
             (acknowledgers
               ((tuplet-bracket-interface engraver grob source-engraver)
                  (hashq-set! brackets grob #t))
               ((accidental-interface engraver grob source-engraver)
                  (set! accidentals (cons grob accidentals))))
             (end-acknowledgers
               ((tuplet-bracket-interface engraver grob source-engraver)
                  (set! ending-brackets (cons grob ending-brackets))))
             ((stop-translation-timestep engraver)
                (hash-for-each
                  (lambda (bracket dummy)
                    (for-each
                      (lambda (accidental)
                        (ly:pointer-group-interface::add-grob
                          bracket
                          'scripts
                          accidental))
                      accidentals))
                  brackets)
                (for-each
                  (lambda (bracket)
                    (hashq-remove! brackets bracket))
                  ending-brackets)
                (set! accidentals '())))))
    \override Accidental.Y-extent =
      #(grob-transformer 'Y-extent
         (lambda (grob original)
           (let* ((alteration (ly:grob-property grob 'alteration))
                  (glyph-name-alist (ly:grob-property grob 'glyph-name-alist))
                  (glyph-name (assv-ref glyph-name-alist alteration)))
             (or
               (assoc-ref
                 '(
                    ("accidentals.natural.arrowup" . (-1.4 . 2.5))
                    ; On peut ajouter d'autres entrées ici.
                  )
                 glyph-name)
               original))))
  }
}

%% Pour ajuster les dimensions pour un glyphe :
%\markup
%\box
%\with-dimensions #'(-5 . 5) #'(-1.4 . 2.5)
%\musicglyph "accidentals.natural.arrowup"

\relative c' {
  \tuplet 3/2 {
        f8-.\f\<

Inutile de dire que cela reste laborieux, et
probablement pas plus simple que de modifier
le Y-offset manuellement si le nombre de
cas reste limité dans la partition (mais cela
donne des idées pour résoudre le bug, ce qui m'a
poussé à fouiller un peu…).

Cordialement,
Jean