Subject: Taille de l'accords avec l'extension "/bass"

From: Ya Gloops <[email-masked]>
Date: Fri, 2 Dec 2022 09:28:35 +0000 (UTC)

Bonjour !
J'ai vu une fonction de Jean, sur la liste anglaise, qui m'intéresse mais pas pour la même raison…
Je l'ai donc transformé pour l'adapter mais elle crée une erreur!
En effet j'aimerais que, dans un chordname, l'extention antislash et bass soit systématiquement un peu plus petit que le root!

Donc voici ci-dessous une version qui fonctionne mais qui n'ai pas automatique...

\version "2.23.81"

t =
#(define-music-function () ()
   #{
     \once \set chordNameFunction =
       #(lambda (sorted-pitches bass inversion context)
          (let* ((root (first sorted-pitches))
                 (root-namer
                  (ly:context-property context 'chordRootNamer))
                 (root-markup (root-namer root #f))
                 (after-slash (if (ly:pitch? inversion)
                                  inversion
                                  bass))
                 (after-slash-markup
                  (if (ly:pitch? after-slash)
                      #{ \markup { / #(root-namer after-slash #f) } #}
                      "")))
            #{ \markup { #root-markup \fontsize #-1  #after-slash-markup } #}))
   #})

myChordNames =
\chords {
  c1
  \t  d1/g
}

<<
  \myChordNames
  \transpose c d \myChordNames

Et ci-dessous un version qui ne fonctionne pas mais qui pourrais être automatique...

%\version "2.23.82"

% \layout {
%   \context {
%     \ChordNames
%     chordNameFunction =
%     #(lambda (sorted-pitches bass inversion context)
%        (let* ((root (first sorted-pitches))
%               (root-namer
%                (ly:context-property context 'chordRootNamer))
%               (root-markup (root-namer root #f))
%               (after-slash (if (ly:pitch? inversion)
%                                inversion
%                                bass))
%               (after-slash-markup
%                (if (ly:pitch? after-slash)
%                    #{ \markup { / #(root-namer after-slash #f) } #}
%                    "")))
%          #{ \markup { #root-markup \fontsize #-1 #after-slash-markup } #}))
%   }
% }
% 
% \chords {
%   c1
%   d1/g
% }

Gilles

---

From: Jean Abou Samra <[email-masked]>
Date: Fri, 2 Dec 2022 12:00:31 +0100

> En effet j'aimerais que, dans un chordname, l'extention antislash et bass soit systématiquement un peu plus petit que le root!

Bonjour,

Voici la solution la plus simple à mon avis :

\version "2.23.82"

\layout {
   \context {
     \Score
     chordNameFunction =
       #(lambda (sorted-pitches bass inversion context)
          (let* ((name-root (ly:context-property context 'chordRootNamer))
                 (slash-sep (ly:context-property context 
'slashChordSeparator))
                 (after-slash (cond
                               ((ly:pitch? bass) bass)
                               ((ly:pitch? inversion) inversion)
                               (else #f)))
                 (before-slash-markup
                  (ignatzek-chord-names sorted-pitches '() '() context))
                 (slash-and-after-markup
                  (if after-slash
                      #{ \markup \fontsize #-2 { #slash-sep #(name-root 
after-slash #f) } #}
                      "")))
            #{ \markup { #before-slash-markup #slash-and-after-markup } #}))
   }
}

myChordNames =
\chords {
   c1 d1:7/g
}

<<
   \myChordNames

Cordialement,
Jean

---

From: Ya Gloops <[email-masked]>
Date: Fri, 2 Dec 2022 11:11:48 +0000 (UTC)

Génial merci Jean !
Est-ce important que chordNameFunction se trouve dans le context Score par rapport au ChordNames ?
Les deux on l'air de fonctionner mais peut-être il y a t-il une subtilité !
Gilles

Le vendredi 2 décembre 2022 à 12:00:35 UTC+1, Jean Abou Samra <[email-masked]> a écrit : 

Bonjour,

\version "2.23.82"

\layout {
  \context {
    \Score
    chordNameFunction =

myChordNames =
\chords {
  c1 d1:7/g
}

<<
  \myChordNames

Cordialement,

Jean

---

From: Jean Abou Samra <[email-masked]>
Date: Fri, 2 Dec 2022 12:15:23 +0100

> Les deux on l'air de fonctionner mais peut-être il y a t-il une subtilité !

C'est plus ou moins équivalent. Si tu as deux \layout avec l'un une 
modification dans Score et l'autre une modification dans ChordNames, 
c'est le second qui aura la priorité, quel que soit l'ordre.

Cordialement,
Jean

---

From: Ya Gloops <[email-masked]>
Date: Fri, 2 Dec 2022 11:18:59 +0000 (UTC)

Ok donc si j'ai bien compris, si je veux que cette fonction soit principalement utilisée je la met dans le ChordNames !
Merci Encore Jean...

Le vendredi 2 décembre 2022 à 12:15:29 UTC+1, Jean Abou Samra <[email-masked]> a écrit : 

Cordialement,
Jean