Subject: Ne fonctionne plus sous lilypond 2.21

From: Gloops <[email-masked]>
Date: Thu, 28 May 2020 00:58:09 -0700 (MST)

%Bonjour !
%Visiblement la version 2.21 change la façon de faire les \note ou #:note...
%En effet elle n'appelle plus une string mais une duration !

%%%%
\version "2.20.0"
#(define-public (format-time-sig-note grob)
   (let* ((frac (ly:grob-property grob 'fraction))
          (num (if (pair? frac) (car frac) 4))
          (den (if (pair? frac) (cdr frac) 4))
          (m (markup #:override '(baseline-skip . 0.5)
                     #:center-column (#:number (number->string num)
                                               #:override '(style . default)
                                               #:note (number->string den)
DOWN))))
     (grob-interpret-markup grob m)))

\new Staff {
\override Staff.TimeSignature.stencil = #format-time-sig-note
  \time 3/8
  \relative c'' { c8 c c }
 }

%Pas d'erreur mais résultat incorrect
%%%%
% \version "2.21.0"
% #(define-public (format-time-sig-note grob)
%    (let* ((frac (ly:grob-property grob 'fraction))
%           (num (if (pair? frac) (car frac) 4))
%           (den (if (pair? frac) (cdr frac) 4))
%           (m (markup #:override '(baseline-skip . 0.5)
%                      #:center-column (#:number (number->string num)
%                                                #:override '(style .
default)
%                                                #:note (ly:make-duration
den) DOWN))))
%      (grob-interpret-markup grob m)))
% 
% \new Staff {
% \override Staff.TimeSignature.stencil = #format-time-sig-note
%   \time 3/8
%   \relative c'' { c8 c c }
%  }

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

---

From: Valentin Villenave <[email-masked]>
Date: Thu, 28 May 2020 10:46:59 +0200

> %En effet elle n'appelle plus une string mais une duration !

Oui, ça a été introduit il y a trois ans et c’est pris en charge par
convert-ly dans les cas simples.

Dans la fonction en question, il faut utiliser un logarithme base 2,
comme ceci :

    (ly:make-duration (ly:intlog2 den))

V.

---

From: Gloops <[email-masked]>
Date: Thu, 28 May 2020 01:55:33 -0700 (MST)

Wooawww quelle rapidité et efficacité Bravo et merci Valentin...

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Thu, 28 May 2020 11:02:38 +0200

Oui plus vite que l'éclair !
En revanche, je me pose deux questions:
--- pourquoi le baseline-skip à 0.5 ?
--- pourquoi le default style ?

\version "2.21.0"
#(define-public (format-time-sig-note grob)
   (let* ((frac (ly:grob-property grob 'fraction))
          (num (if (pair? frac) (car frac) 4))
          (den (if (pair? frac) (cdr frac) 2))
          (dur (ly:intlog2 den))
          (m (markup ;#:override '(baseline-skip . 0.5)
                 #:override '(baseline-skip . 0)
                 #:center-column
                     (#:number (number->string num)
                               ;#:override '(style . default)
                               #:note (ly:make-duration dur)
                               DOWN))))
     (grob-interpret-markup grob m)))

\new Staff {

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Thu, 28 May 2020 11:09:24 +0200

Oups, petite coquille, donc :

\version "2.21.0"
          (dur (ly:make-duration (ly:intlog2 den)))
                               #:note dur DOWN))))

\new Staff {

Ou ?

---

From: Gloops <[email-masked]>
Date: Thu, 28 May 2020 02:11:59 -0700 (MST)

Je suppose que la base line  c'est pour éviter l’écartement trop important,
et le style defaut pour être sûr d'avoir bonnes les tètes de note...
Sinon j'ai pris ça là !
http://lsr.di.unimi.it/LSR/Item?id=1107

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Thu, 28 May 2020 11:28:37 +0200

Ben non justement, 0,5 d'écartement ici n'a aucun sens.
Quant-aux têtes de notes, ça n'a aucun effet (malheureusement ai-je envie
d'ajouter...) :

\version "2.21.0"
          (num (car frac))
          (den (cdr frac))
          (m (markup
                               ;#:override '(style . cross)

\new Staff {
 \override NoteHead.style = #'cross
 \override Staff.TimeSignature.stencil = #format-time-sig-note
  \time 3/8
  \relative c'' {
    c8 c c }
}

Du coup, c'est peut-être intéressant de le garder justement pour mémoire...

---

From: Valentin Villenave <[email-masked]>
Date: Thu, 28 May 2020 11:38:14 +0200

> Quant-aux têtes de notes, ça n'a aucun effet (malheureusement ai-je envie

Euh Pierre, on parle bien de 2.21 ? Avec la nouvelle syntaxe ? Pour
autant que je puisse voir, 'baseline-skip et 'style fonctionnent comme
ils le devraient :

\version "2.21.0"
#(define-public (format-time-sig-note grob)
   (let* ((frac (ly:grob-property grob 'fraction))
          (num (if (pair? frac) (car frac) 4))
          (den (if (pair? frac) (cdr frac) 4))
          (m (markup ;#:override '(baseline-skip . 0.5)
                     #:center-column
                     (#:number (number->string num)
                               #:override '(style . cross)
                               #:note (ly:make-duration (ly:intlog2
den)) DOWN))))
     (display frac)
     (grob-interpret-markup grob m)))

\new Staff {

V.

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Thu, 28 May 2020 12:20:57 +0200

Oui Valentin, ils fonctionnent mais :
1. Quelle est la raison de spécifier '(style . default) ? Pour moi c'est
redondant ;
2. Quelle est la raison de spécifier un baseline-skip à 0.5 alors qu'on
souhaite ne pas mettre d'espace entre numérateur et dénominateur ?
D'autant plus qu'un (une?) tel(le) espace n'est visible qu'à partir d'une
taille de... -13 !
Ex. :

\markup\number\fontsize #-13 {
  \override #'(baseline-skip . 0)
  \center-column { 0 0 }
  \override #'(baseline-skip . .5)
  \center-column { 0 0 }
  \override #'(baseline-skip . 1)
  \center-column { 0 0 }
  \override #'(baseline-skip . 1.5)
  \center-column { 0 0 }
}

Le jeu. 28 mai 2020 à 11:38, Valentin Villenave <[email-masked]> a

---

From: Valentin Villenave <[email-masked]>
Date: Thu, 28 May 2020 18:12:29 +0200

> D'autant plus qu'un (une?) tel(le) espace n'est visible qu'à partir d'une

Aaah, je comprends. C’est peut-être une précaution pour le cas où ces
propriétés auraient été précédemment overridées dans le contexte ? En
tout cas ça ne nuit pas (sauf si on joue au golf).

V.

---

From: Gloops <[email-masked]>
Date: Sun, 31 May 2020 07:54:43 -0700 (MST)

Merci à tous pour votre participation !
Je voulais mettre [RESOLU] dans le sujet mais je n'y arrive pas es-ce
normal? 
Bien à vous Gilles