Subject: Quadrillage rythmique amélioré

From: Jean ABOU SAMRA <[email-masked]>
Date: Wed, 11 Sep 2019 20:53:53 +0200

Bonjour à tous,
Toujours plus loin dans les notations contemporaines avec LilyPond ! Après tout, lorsque l'on a été habitué à un logiciel qui peut tout faire…
Voici mon problème : j'aimerais aménager le quadrillage rythmique décrit sur lilypond.org/doc/latest/Documentation/notation/outside-the-staff#grid-lines <http://lilypond.org/doc/latest/Documentation/notation/outside-the-staff#grid-lines> afin de l'adapter selon les points suivants.

1. Les lignes s'étendent entre les portées, mais ne traversent pas les portées (un peu comme des barres de mesure mensurales, voir http://lilypond.org/doc/v2.18/Documentation/notation/displaying-staves.fr.html#grouping-staves <http://lilypond.org/doc/v2.18/Documentation/notation/displaying-staves.fr.html#grouping-staves> , l'exemple à la fin de la section).

2. Les lignes sont centrées horizontalement sur les têtes de notes. Je vois dans la documentation un \override NoteColumn.X-offset = #-0.5  mais à proprement parler cela décale les notes vers la gauche plutôt que de décaler les barres vers la droite (si je ne m'abuse)…

3. Si une tête de note grignote sur l'espace entre les portées, alors le mieux serait que les lignes se raccourcissent automatiquement.

4. J'aurais besoin de créer plus de deux portées avec ce système, donc plusieurs lignes disjointes.

Je joins une image du résultat auquel j'aimerais aboutir, à partir du code minimaliste suivant :
\version "2.21.0"
<<
  { c'1 c'1 c'1 a1 }
  { c'1 a''1 c'1 c'1 }
  { c'1 c'1 c'1 c'1 }

Merci d'avance pour votre aide — y compris incomplète — sur ce projet !

Cordialement,
Jean Abou Samra

---

From: Christophe Pochon <[email-masked]>
Date: Wed, 11 Sep 2019 22:02:06 +0200

Bonjour Jean,

Pour info, j'ai dû autoriser manuellement votre message parce que sa pièce
jointe pesait un peu plus lourd que ce qui est autorisé sur la liste.

Bonne soirée,

Christophe Pochon

Le mer. 11 sept. 2019 à 20:53, Jean ABOU SAMRA <[email-masked]> a
écrit :

> Bonjour à tous,
> Toujours plus loin dans les notations contemporaines avec LilyPond ! Après
> tout, lorsque l'on a été habitué à un logiciel qui peut tout faire…
> Voici mon problème : j'aimerais aménager le quadrillage rythmique décrit
> sur
> lilypond.org/doc/latest/Documentation/notation/outside-the-staff#grid-lines afin
> de l'adapter selon les points suivants.
>
> 1. Les lignes s'étendent entre les portées, mais ne traversent pas les
> portées (un peu comme des barres de mesure mensurales, voir
> http://lilypond.org/doc/v2.18/Documentation/notation/displaying-staves.fr.html#grouping-staves ,
> l'exemple à la fin de la section).
>
> 2. Les lignes sont centrées horizontalement sur les têtes de notes. Je
> vois dans la documentation un \override NoteColumn.X-offset = #-0.5  mais à
> proprement parler cela décale les notes vers la gauche plutôt que de
> décaler les barres vers la droite (si je ne m'abuse)…
>
> 3. Si une tête de note grignote sur l'espace entre les portées, alors le
> mieux serait que les lignes se raccourcissent automatiquement.
>
> _______________________________________________
> liste de diffusion lilypond-user-fr
> [email-masked]
> https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Thu, 12 Sep 2019 08:40:01 +0200

Bonjour Jean,
Une solution simple :

\version "2.21.0"
<<
  { c'1 c'1 c'1 a1 }
  { c'1 a''1 c'1 c'1 }
  { c'1 c'1 c'1 c'1 }

\layout {
  \context {
    \Staff
    \consists "Grid_point_engraver" %% active les guides
    gridInterval = #(ly:make-moment 1/4)
  }
  \context {
    \Score
    \consists "Grid_line_span_engraver"
     %% centre les lignes guides horizontalement sous les notes
     \override GridLine.X-offset = #.8
  }
}

Cordialement,
Pierre

Le mer. 11 sept. 2019 à 21:52, Jean ABOU SAMRA <[email-masked]> a

---

From: NOreply <[email-masked]>
Date: Thu, 12 Sep 2019 07:44:12 -0700 (MST)

Bonjour,
Vous chercher sans doute un code qui génére ces lignes de manière
automatique. 
En attendant, voici une méthode manuelle que vous propose:
http://lilybin.com/t4stjv/1

Le code:
%--------------------
\version "2.18.2"
ligne = _\markup { 
    \postscript #"
1 0 moveto
0.3 setlinewidth % épaisseur
1 0 0 setrgbcolor % couleur
0 -4 rlineto
stroke
"    }

%%%%%%%%%%%%
{ 
  <<
  { g'1_\ligne
    g'1_\markup { 
    \postscript #"
1 0 moveto
0.3 setlinewidth % épaisseur
1 0 0 setrgbcolor % couleur
0 -2 rlineto
stroke
"    }
    g'_\ligne 
    a_\markup { 
    \postscript #"
1 0 moveto
0.3 setlinewidth % épaisseur
1 0 0 setrgbcolor % couleur
0 -1.5 rlineto
stroke
"    } 
    
%% portée 2    
  }
  
  { g'1_\ligne
    a''1_\ligne
    g'1_\ligne
    g'1_\ligne }
  
%% portée 3 
  { g'1 g'1 g'1 g'1 }
}

% ; )

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

---

From: Jean ABOU SAMRA <[email-masked]>
Date: Thu, 12 Sep 2019 21:09:58 +0200

> Le 11 sept. 2019 à 22:02, Christophe Pochon <[email-masked]> a écrit :
> Bonjour Jean,
> Pour info, j'ai dû autoriser manuellement votre message parce que sa pièce jointe pesait un peu plus lourd que ce qui est autorisé sur la liste. 

Merci Christophe.

> Le 12 sept. 2019 à 08:40, Pierre Perol-Schneider <[email-masked]> a écrit :
> 

Très bien ! Cela répond proprement à mon point numéro 2 (documentation à mettre à jour ?).

> Le 12 sept. 2019 à 16:44, NOreply via lilypond-user-fr <[email-masked]> a écrit :
> 
> Vous cherchez sans doute un code qui génére ces lignes de manière
> automatique.

En effet. En attendant, créer les lignes directement en PostScript n'est certes pas idéal mais parfaitement possible.

Le point principal à régler pour moi reste les lignes brisées. En effet, il ne semble pas que le Grid_line_span_engraver accepte de graver des lignes discontinues.

Après diverses tentatives, je vois deux approches illustrées dans les morceaux de code suivants malheureusement encore incomplets. La première consiste à créer des contextes entre les portées chargés de tracer les guides, tandis que la deuxième essaye de masquer les guides sur l'espace des portées en rendant l'objet de portée blanc à l'intérieur, ce qui cache les lignes. Je joins mon fichier, le résultat étant aussi présent sur : http://lilybin.com/y6gx3v/5 <http://lilybin.com/y6gx3v/5>

Auriez-vous des idées ? La deuxième approche semble la plus prometteuse mais le code n'est pas encore tout à fait correct…
Merci pour vos efforts !

Cordialement,
Jean Abou Samra

---

From: NOreply <[email-masked]>
Date: Thu, 12 Sep 2019 23:48:49 -0700 (MST)

Postcript, un peu moins manuel:
http://lilybin.com/iwt9uz/1

Le code:
%--------------------
\version "2.18.2"
ligne-bas = \markup { 
    \postscript #"
1 0 moveto
ligne-haut = \markup { 
0 4 rlineto
stroke
"    }

%%%%%%%%%%%%
\layout {
   \override Staff.TextScript.layer = -1
   \override Staff.BarLine.layer = 1
   \override Staff.StaffSymbol.whiteout = ##t
}
{ 
  <<
 \new Staff { 
      g'1_\ligne-bas
    g'1
    g'_\ligne-bas 
    a_\ligne-bas
    
%% portée 2    
  }
  
  \new Staff { 

      g'1
    c'''1^\ligne-haut
    g'1
    g'1 }
  
}

---

From: Jean ABOU SAMRA <[email-masked]>
Date: Thu, 19 Sep 2019 19:05:10 +0200

Bonjour,
Je pensais y être arrivé mais pas tout à fait… Je poste mon code au cas où quelqu'un aurait l'opportunité de regarder.

\version "2.21.0"

<<
  { c'1 g'1 c'1 a1 }
  { c'1 a''1 c'1 c'1 }
  { c'1 c'1 c'1 c'1 }

\layout {
  \context {
    \Staff
    \consists "Grid_point_engraver"
    gridInterval = #(ly:make-moment 1)
  }
  \context {
    \Score
    \consists "Grid_line_span_engraver"
    \override GridLine.X-offset = #.88
    \override GridLine.layer = -3
    \override StaffSymbol.layer = -2
    \override NoteHead.layer = -1
    \override StaffSymbol.whiteout = ##t
    \override NoteHead.whiteout = 5
    \override NoteHead.whiteout-style = #'outline
  }
}

Le rendu ressemble à ce qui est attendu, mais le « whiteout » des NoteHead cache aussi la portée.
Existe-t-il un moyen que soit dessiné d'abord le StaffSymbol, puis le NoteHead, puis les whiteout de StaffSymbol et NoteHead ?
Merci,
Jean Abou Samra

> Le 13 sept. 2019 à 08:48, NOreply via lilypond-user-fr <[email-masked]> a écrit :
>