lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Grille harmonique 100% Lilypond


From: Jean Abou Samra
Subject: Re: Grille harmonique 100% Lilypond
Date: Sun, 8 May 2022 00:49:26 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1

Le 07/05/2022 à 20:02, Vincent Gay a écrit :
Le 07/05/2022 à 18:01, Jean Abou Samra a écrit :
Dans tes grilles, je vois le code

  startRepeatBarType = #"[|:"
  endRepeatBarType = #":|]"
  doubleRepeatBarType = #":|][|:"

Est-ce que c'est standard pour le jazz ? Cela aurait-il du sens
d'en faire les valeurs par défaut dans le context ChordGrid ?

Oui, absolument (selon moi). Mais le mieux n'est-il pas de ce qui est en vigueur justement via les \layout ?



Tu veux dire la variable \gridLayout ? Je vois qu'elle est présente dans
ton code, mais je n'ai pas sa définition exacte (pour info, le lien sur
https://myrealbook.vintherine.org/grille-harmonique.html renvoie vers
un fichier dont l'accès partagé est protégé par mot de passe). Après,
je me doute bien que c'est le

      \layout {
        indent = 0
        \context {
          \Score
          \override SpacingSpanner.strict-note-spacing = ##t
          proportionalNotationDuration = #(ly:make-moment 1/16)
          \consists #Recurring_break_engraver
          bars-per-line = 4
        }
        \context {
          \ChordGrid
          \override BarLine.bar-extent = #'(-5 . 5)
          \consists "Bar_engraver"
          \override StaffSymbol.line-positions = #'( -10 10 )
          \consists "Percent_repeat_engraver"
        }
        \context { \Score markFormatter = #format-mark-box-alphabet }
      }


Or, j'ai pu éliminer la plupart des commandes dans ce \layout, en
les mettant dans les valeurs par défaut du context ChordGrid (il
reste possible de les changer bien sûr, avec \layout ou \with).
Dans l'état actuel des choses, une grille s'écrit :

\paper {
  indent = 0
  system-system-spacing.padding = 2.5 % augmente un peu l'espacement entre les lignes
}

\new ChordGrid \chordmode {
  ...
}

Et c'est tout. Malheureusement, il y a encore du boulot pour régler les deux
variables restantes de manière automatique, car elles ne sont pas liées à
un contexte mais au \paper et ne peuvent donc pas être changées
dans la définition de ChordGrid (du moins pas sans hack). J'espère trouver
l'énergie de le faire un jour, cela ne doit pas être bien compliqué, et
puis la possibilité de modifier le system-system-spacing au niveau \score
et non \bookpart serait intéressante même sans grille d'accords.

Au fait, pour continuer à papoter : je risque à terme de devoir réintroduire
le Recurring_break_engraver et la variable bars-per-line, mais pour
des raisons techniques. (Pour ceux qui ne suivent pas : Vincent m'a
déconseillé de rendre les \break automatiques, en disant qu'il fallait
bien que la personne entre la chaise et le clavier serve à quelque chose :-)
Pourquoi ? Supposons que l'utilisateur cherche à créer une grille avec
8 cases par ligne (oui je sais que tu ne le recommandes pas ; par contre
je vois que le Baudoin le fait, j'imagine que c'est le cas pour certains).
Il faut alors ajuster la hauteur des cases pour éviter qu'elles ne
soient complètement distordues à cause de la largeur réduite. Pour
l'instant, je laisse l'utilisateur le faire avec \magnifyStaff et
\override GridChordName.font-size = ... Je ne détesterais pas que
ce soit automatique. Or, l'information qui provient des \break est
(en gros) déterminante au moment du calcul des sauts de ligne et
après. Problème : la hauteur des cases doit être connue avant les
sauts de ligne, car elle est nécessaire pour estimer combien de
systèmes tiendront sur une page. Résultat, les sauts de ligne dépendent
de la hauteur des cases et la hauteur des cases dépend des sauts
de ligne. D'où l'idée d'une propriété qui puisse être lue avant
les sauts de ligne.

Pour l'instant, je m'occupe d'un patch plus modeste qui ne fait pas
cela. D'ailleurs, je n'exclus pas de rendre ce Recurring_break_engraver
plus général pour lui donner le même genre de fonctionnalité que
tous les snippets qui circulent sur les listes qui permettent de
mettre des \break automatiques toutes les n mesures, ou bien d'écrire
#'((4 5 4) (5 6 5)) pour avoir deux pages avec respectivement
3 systèmes de 4, 5 et 4 mesures et 3 systèmes de 5, 6, 5 mesures, ...

Bref : du boulot en perspective.

Cordialement,
Jean





reply via email to

[Prev in Thread] Current Thread [Next in Thread]