la Batterie avec lilyjazz

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

  \}
\}

}

Le 09/09/2022 à 15:46, Christian LE BARS a écrit :

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

[...]
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"
}
}

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

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

Pas facile de contourner Lily;

j'y retourne.

Le 09/09/2022 à 16:06, Christian LE BARS a écrit :

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

Pas facile de contourner Lily;

j'y retourne.

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

\\new DrumStaff
 \\with
  \{
   \\hide Stem
   \\override Stem\.Y\-extent = \#\#f
  \}

Il suffit d'enlever tout ce \with.

Merci Jean

je ne maitrise pas les fonctions que j'utilise.

Mais grâce a toi je comprend mieux.