Comment éviter une collision pareil ?

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

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

Sans_titre__4___modifié__–_Frescobaldi.png

Quelle version utilisez-vous ?

Cordialement,

Capture d’écran 2021-07-11 à 10.19.45.png

···

Christophe Pochon

J'ai la version 2.20.0 téléchargé depuis ce lien 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 ?

···

Christophe Pochon

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

Bonjour,

Le 11/07/2021 12:02, Christophe Pochon répondait à Francisco Uberto :

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

[image: Sans_titre__4___modifié__–_Frescobaldi.png]

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.

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 : lilybin.com

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

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)

···

Le 11/07/2021 13:22, Christophe Pochon a écrit :

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 <****@****> a écrit :

Le 11/07/2021 13:22, Christophe Pochon a écrit :

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 : lilybin.com

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

lilybin.com

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)

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

···

Christophe Pochon

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

J'ai trouvé comment faire :heart:
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 <****@****> a écrit :

\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
}

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 :

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\<
   \once \override Accidental.glyph-name-alist =
     #'((0 . "accidentals.natural.arrowup"))
   e'!4~
  }
  e8-.\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

···

Le 11/07/2021 14:08, Francisco Uberto <****@****> a écrit :

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
}