Subject: la Batterie avec lilyjazz

From: Christian LE BARS <[email-masked]>
Date: Fri, 9 Sep 2022 15:46:52 +0200

bonjour a tous.

Depuis un certain temps je cherche a écrire des partitions de batterie 
sous lilyjazz.

Voila j'ai bidouillé le code ci-dessous qui me donne satisfaction.

Il a noté que je ne comprend pas ma fonction Crash que j'ai recopié 
bêtement de la doc!

Si quelqu'un peut me l'expliquer, ce serait la bien venue.

Par avance merci

\version "2.22.1"
\include "lilyjazz.ily"
%-----------------------------------
Crash =
{
  \once \override NoteHead.stencil = #ly:text-interface::print
  \once \override NoteHead.text =
  \markup
   {
    \combine
    \halign #-0.6 \draw-circle #0.60 #0.2 ##f
    \musicglyph "noteheads.s2cross"
   }
}

%--------------------------------------
Nom =
\lyricmode
  {
   crash   cymr   hh   hhc    hho  hhp  bd   sn
   ss   tomml  toml  tomfh  tomfl
  }
%------------------------------------
Note =
\drummode
  {
    \Crash cymr
   cymr hh    hhc  hho hhp  bd
   sn  ss tomml  toml tomfh tomfl 1
}
%----------------------------------------
\score
  {
   <<
    \new DrumStaff
     \with
      {
       \hide Stem
       \override Stem.Y-extent = ##f
      }
     \Note
     \new Lyrics \Nom
   >>
   \layout
    {
     \context
      {
       \Score
       \override LyricText.font-family = #'typewriter

      }
    }
}

---

From: Jean Abou Samra <[email-masked]>
Date: Fri, 9 Sep 2022 16:05:56 +0200

Le 09/09/2022 à 15:46, Christian LE BARS a écrit :
> [...]

Bonjour Christian,

C'est une technique assez utile, qui permet de faire qu'un objet
quelconque s'affiche grâce à un markup. Quand tu fais note^\markup ...
cela crée un objet graphique TextScript. La propriété stencil d'un
objet détermine la manière dont il s'affiche, et dans le cas de TextScript,
cette propriété vaut ly:text-interface::print, une fonction qui crée
un stencil à partir du markup dans la propriété text. En faisant
\override NoteHead.stencil = #ly:text-interface::print,
tu donnes à NoteHead le même comportement, c'est à dire qu'au lieu
de s'afficher comme une tête de note normale, avec la fonction
normale de stencil de tête de note, la NoteHead s'affiche avec
le markup dans sa propriété text.

Donc, en règle générale, si tu veux changer la manière dont absolument
n'importe quel objet s'affiche, tu peux faire

   \override Contexte.NomDeLObjet.stencil = #ly:text-interface::print
   \override Context.NomDeLObjet.text = \markup { \ce \que \tu \veux }

Cordialement,
Jean

---

From: Christian LE BARS <[email-masked]>
Date: Fri, 9 Sep 2022 16:06:27 +0200

Ah! je viens de m’apercevoir qu'il me manque la queue des notes.

Pas facile de contourner Lily;

j'y retourne.

---

From: Jean Abou Samra <[email-masked]>
Date: Fri, 9 Sep 2022 16:08:47 +0200

> Pas facile de contourner Lily;

Normal, Lily n'a fait qu'obéir à ton code, plus précisément cette partie :

    \new DrumStaff
     \with
      {
       \hide Stem

Il suffit d'enlever tout ce \with.

---

From: Christian LE BARS <[email-masked]>
Date: Fri, 9 Sep 2022 16:13:00 +0200

Merci Jean

je ne maitrise pas les fonctions que j'utilise.

Mais grâce a toi je comprend mieux.