Ne fonctionne plus sous lilypond 2.21

%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/

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.

···

On 5/28/20, Gloops via LilyPond French-speaking list <lilypond-user-fr@gnu.org> wrote:

%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 !

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

···

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

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 {
\override Staff.TimeSignature.stencil = #format-time-sig-note
\time 3/8
\relative c'' { c8 c c }
}

···

Le jeu. 28 mai 2020 à 10:55, Gloops via LilyPond French-speaking list <lilypond-user-fr@gnu.org> a écrit :

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

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

Oups, petite coquille, donc :

\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))
(dur (ly:make-duration (ly:intlog2 den)))
(m (markup ;#:override '(baseline-skip . 0.5)
#:override '(baseline-skip . 0)
#:center-column
(#:number (number->string num)
;#:override '(style . default)
#:note dur DOWN))))
(grob-interpret-markup grob m)))

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

Ou ?

···

Le jeu. 28 mai 2020 à 11:02, Pierre Perol-Schneider <****@****> a écrit :

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 {
\override Staff.TimeSignature.stencil = #format-time-sig-note
\time 3/8
\relative c'' { c8 c c }
}

Le jeu. 28 mai 2020 à 10:55, Gloops via LilyPond French-speaking list <lilypond-user-fr@gnu.org> a écrit :

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

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

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

···

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

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"
#(define-public (format-time-sig-note grob)
(let* ((frac (ly:grob-property grob 'fraction))
(num (car frac))
(den (cdr frac))
(dur (ly:make-duration (ly:intlog2 den)))
(m (markup
#:override '(baseline-skip . 0)
#:center-column
(#:number (number->string num)
;#:override '(style . cross)
#:note dur DOWN))))
(grob-interpret-markup grob m)))

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

···

Le jeu. 28 mai 2020 à 11:14, Gloops via LilyPond French-speaking list <lilypond-user-fr@gnu.org> a écrit :

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

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

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 {
  \override Staff.TimeSignature.stencil = #format-time-sig-note
  \time 3/8
  \relative c'' { c8 c c }
}

V.

···

On 5/28/20, Pierre Perol-Schneider <****@****> wrote:

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...) :

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

On 5/28/20, Pierre Perol-Schneider <****@****> wrote:

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...) :

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 {
\override Staff.TimeSignature.stencil = #format-time-sig-note
\time 3/8
\relative c'' { c8 c c }
}

V.

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.

···

On 5/28/20, Pierre Perol-Schneider <****@****> wrote:

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 !

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

···

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