Subject: grille harmonique 100% Lilypond (suite)

From: Vincent Gay <[email-masked]>
Date: Sat, 26 Oct 2019 13:43:46 +0200

Bonjour à toutes et à tous,
*
**Propos liminaires :*
ceci est la suite d'un sujet évoqué ici
(http://lilypond-french-users.1298960.n2.nabble.com/grille-d-accords-100-Lilypond-td7586093.html)
et là
(http://lilypond-french-users.1298960.n2.nabble.com/mesures-d-egale-longueur-td7586848.html).
Il n’intéresse (paraît-il) que les frenchies qui seraient les seuls à
utiliser ce système de notation. Pour ma part cette présentation m'a été
réclamée par mon bassiste et mon guitariste qui, comme nombre de leurs
congénères, ne savent pas lire une portée (beau lancé de troll,
n'est-ce-pas ?). L'alternative est de présenter les accords entre de
simples barres de mesures comme décrit ici
<http://lilypond.org/doc/v2.19/Documentation/notation/displaying-chords.fr.html#customizing-chord-names>.

*De quoi s'agit-il ?*
D'une grille d'accords chiffrés façon jazz, 4 mesures par lignes. Voir
sur Wikipédia (https://fr.wikipedia.org/wiki/Grille_harmonique)

*Un exemple avec le code qui va bien :*
Voilà ! http://lilybin.com/3avdnt/8

*Comment ça marche ?
*Les cases dans lesquelles apparaissent les accords sont constitués
d'une portée de 2 lignes et des barres de mesures. Toutes les mesures
sont d'égales longueurs.
Quand il n'y a qu'un accord par case il n'y a rien besoin d'autre. S'il
y en a plusieurs il faut faire appel à une fonction qui :
  - 1) ajustera la position des accords
  - 2) dessinera et positionnera une ligne servant à diviser la case
Le code de l'exemple ci-dessus a été *simplifié* pour un *maximum de 2
accords par mesures*, ce qui correspond à 99% de mes besoins. *Pour 3 ou
4 accords* par mesures (c'est possible) se référer aux messages
précédents. Le code est largement *commenté* à fins didactiques*.*
*
**Les ultimes difficultés :*
- l'espacement entre les lignes dépend de la présence ou non de
rehearsalmarks (repères) utilisés dans la fonction de division des
mesures en cas de plusieurs accords. J'ai résolu inélégamment le
problème en introduisant un repère caché dans une mesure simple (à 1
accord) de certaines lignes.
- du fait de l'utilisation des repères (\mark) dans la fonction de
division des mesures il n'est pas possible de les utiliser pour indiquer
les différentes sections de la partition (\mark #1 par exemple). D'où
une portée vide avec des \markup. Cela aussi est inélégant mais je n'ai
pas trouvé mieux.
- le positionnement de la diagonale de division d'une mesure n'est pas
aussi parfait que je l'aurais souhaité et surtout les éventuels
décalages semblent aléatoires (barres de mesures ? Rehearsalmarks ?).

*LSR*
Dans un poste précédent Valentin m'a suggéré de mettre ça dans le LSR
<http://lilypond.org/doc/v2.19/Documentation/snippets/index.html>. Le
code en référence avec les commentaires traduits en anglais
conviendrait-il ?

-- 
Vincent Gay
Envoyé depuis mon saxo-phone :)
http://blog.vintherine.org/ - http://photos.vintherine.org/

---

From: Denis Bitouzé <[email-masked]>
Date: Sat, 26 Oct 2019 15:07:16 +0200

Le 26/10/19 à 13h43, Vincent Gay a écrit :

> Le code en référence avec les commentaires traduits en anglais
> conviendrait-il ?

Selon moi, oui. Bravo pour ce travail (qui est encore plus beau quand
on utilise LilyJazz) !
-- 
Denis

---

From: Vincent Gay <[email-masked]>
Date: Sat, 26 Oct 2019 15:10:50 +0200

> Selon moi, oui. Bravo pour ce travail (qui est encore plus beau quand

Oui, c'est ce que je fais, mais j'imagine que c'est pas possible avec
lilybin ? (polices, fichiers inclus, tout ça...)

À propos, est-il possible d'inclure des fichiers préalablement
enregistrés avec lilybin ?

---

From: NOreply <[email-masked]>
Date: Sun, 27 Oct 2019 01:24:20 -0700 (MST)

Bonjour,
Il est tout à fait possible d'utiliser lilyjazz dans Lilybin. Voici un
exemple:  http://lilybin.com/1uifdn/1
%%%%%%%%%%%%%%%
\version "2.19.48"
#(set-global-staff-size 16) 
%----------------------------------------------
\paper 
 {
  oddFooterMarkup = \markup {\override #'(font-name .
"LilyJAZZText")\fontsize #3 \fill-line { \fromproperty #'header:title  } }
  print-page-number = ##t  
 
   % ------ ecriture Jazz  ------
     #(define fonts
     (set-global-fonts
      #:music "lilyjazz"
      #:brace "lilyjazz"
      #:roman "lilyjazz-text"
      #:sans "lilyjazz-chord"
      #:factor (/ staff-height pt 20)
      ))
 }
 %----------------------------------------------
Global=
{
 \numericTimeSignature 
 \set Score.markFormatter = #format-mark-box-alphabet
 \time 4/4
 \key d\major
}
%------------------------------------
LesAccords =
\chords 
  {
   \override ChordNames.ChordName.font-name = "musejazz"
   \override ChordNames . ChordName #'font-size = #1
   \set chordChanges = ##t 
   \set Score.majorSevenSymbol = \markup {Maj7}
   \set chordNameSeparator = \markup { "/" }
   \set minorChordModifier = \markup{"-"}
    d2 b:m 
  }
 %---------------------------------------
 guitare = 
 \relative c
 {
  \Global  
  \improvisationOn
   g'8^\markup \fret-diagram #"6-x;5-o;4-o;3-2;2-3;1-2;" 
   g g g g ^\markup \fret-diagram# "6-2;5-2;4-4;3-4;2-3;1-2;"
 
  \improvisationOff
 }
%------------------------------------
\score
{
  <<
    \LesAccords
     \new Staff
      \with   {\override StringNumber.stencil = ##f }
       {       
        \clef "G_8" 
        \guitare 
       }

  \layout {}  
}

% ; )

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

---

From: Valentin Villenave <[email-masked]>
Date: Mon, 28 Oct 2019 19:29:30 +0000

On 10/26/19, Vincent Gay <[email-masked]> wrote:
> conviendrait-il

Hello Vincent,
Joli hack en effet ; j’ajouterais juste une petite astuce pour que la
barre diagonale ait automatiquement les bonnes dimensions, et qui
permet de se passer d’un \gridPath codé en dur :

%%%%%%%%%%%%%%

"\\/" =
#(define-music-function
  (parser location mus1 mus2) ( ly:music? ly:music? )
  #{
    \stopStaff
    \once \override Staff.StaffSymbol.stencil =
    $(lambda (grob)
       (let* ((staff (ly:staff-symbol::print grob))
              (X-ext (ly:stencil-extent staff X))
              (Y-ext (ly:stencil-extent staff Y)))
         (ly:grob-set-property! grob 'layer -10)
         (ly:stencil-add
          (make-line-stencil
           (ly:staff-symbol-line-thickness grob)
           (car X-ext) (car Y-ext) (cdr X-ext) (cdr Y-ext))
          staff)))
    \startStaff
    \once \override ChordName.extra-offset = #'(1 . .5)
    $mus1
    \once \override ChordName.extra-offset = #'(3 . -3)
    $mus2
    \stopStaff
    \startStaff
  #})

%%%%%%%%%%%%%%%

D’ailleurs pour simplifier encore davantage, il y aurait un moyen de
définir un seul contexte, basé sur \Staff, qui accepte les ChordNames
(ou l’inverse). À réfléchir.

Pour ce qui est du LSR, oui bien sûr toutes les contributions sont les
bienvenues ; toutefois il vaut mieux montrer un court exemple (sans
violation de droit «d’auteur», au passage), plutôt que tout ce code.

Par ailleurs…

On 10/27/19, NOreply via LilyPond French-speaking list
<[email-masked]> wrote:
> Il est tout à fait possible d'utiliser lilyjazz dans Lilybin.

Eurf, oui et non :-/

Ça marche sur LilyBin (et encore, uniquement avec la fonte de glyphes
musicaux, non avec celle du texte) parce que manifestement la personne
responsable du serveur a installé la police en question au bon
endroit. Ce qui n’est pas _du tout_ le cas du LSR, qui tourne tout
seul -- pas abandonné mais presque -- sur un petit coin d’un serveur
de l’université de Milan (comme son nom l’indique). De fait, si la
fonte n’est pas présente cela empêchera tout simplement le code de
compiler.

Cordialement,
V.