ras de 4

Bonsoir,

Je souhaiterais modifier l'apparence du ras de 4 (\appoggiatura {sn16 sn sn} sn8) ci-dessous :

up= \drummode {
\time 4/4
\tempo 2 = 120

\set Timing.beamExceptions = #'()

\slurDown
\appoggiatura {sn16 sn sn} sn8 bd \appoggiatura sn8 sn8 bd8 r \tuplet 3/2{sn16 sn sn} sn8 bd

}

\score {
\new DrumStaff
<<
\set DrumStaff.drumStyleTable= #(alist->hash-table mydrums)
\new DrumVoice { \voiceOne \up }

\layout {
indent = 0
}
}

  1. Comment faire en sorte que les 3 doubles croches soient sur la même ligne que la caisse claire ?

  2. Comment modifier la liaison pour qu'elle s'accroche entre la 3ème double et la croche (et non pas la 1ère double et la croche) ?

J'ai mis en PJ le pdf généré chez moi

Bonne soirée à tous

ex.pdf (59.3 KB)

···

Cdt,


Sébastien RICHARD

Bonjour,

Notez que votre exemple ne compile pas, il manque la définition de mydrums.

1. Comment faire en sorte que les 3 doubles croches soient sur la même ligne que la caisse claire ?

Si vous faites l'expérience de remplacer la ligne

\set DrumStaff.drumStyleTable= #(alist->hash-table mydrums)

par

\time 3/4

vous allez tout de suite comprendre le problème : avec cette
syntaxe << >>, le \set arrive au premier moment *après les notes
d'ornement initiales*. La plupart des gens appellent ça le bug #34.
Pour ma part je considère que ce n'est pas vraiment un bug,
mais passons. Avec cette syntaxe, ça ira mieux :

  \new DrumStaff \with {
    drumStyleTable= #(alist->hash-table mydrums)
  } {
    \new DrumVoice { \voiceOne \up }
  }

2. Comment modifier la liaison pour qu'elle s'accroche entre la 3ème double et la croche (et non pas la 1ère double et la croche) ?

Remplacez

\appoggiatura {sn16 sn sn} sn8

par

\grace { sn16 sn sn( } sn8)

Cordialement,
Jean

Bonjour,

Merci Jean pour ton aide.

Navré pour le "mydrums", c'est une include que j'ai oublié d'enlever dans mon exemple.

Pas certain d'avoir compris l'explication pour le positionnement des caisses claires (c'est toute la différence entre un mécanicien et un conducteur) mais merci tout de même pour cette solution

Bon WE à tous

···

Cdt,


Sébastien RICHARD

Pas certain d'avoir compris l'explication pour le positionnement des
caisses claires (c'est toute la différence entre un mécanicien et un
conducteur) mais merci tout de même pour cette solution

Je vais essayer de l'expliquer de manière plus claire.

La source du problème, c'est que vous utilisez la construction << >>,
ce qui est bizarre ici (il n'y a aucune raison). Cette construction est
faite pour mettre des choses en parallèle. Par exemple, si vous
compilez

\version "2.24.2"

\new Voice <<
  { c'4 4 8 8 4 }
  { c4 4 8 8 4 }

vous obtenez une suite de do en octaves. Maintenant, modifions un peu
la situation :

\version "2.24.2"

\new Voice <<
  { \once \override Staff.NoteHead.color = red c'4 4 8 8 4 }
  { \grace b,8 c4 4 8 8 4 }

J'ai rajouté un \grace b,8 dans la partie du bas et un \once \override
dans la partie du haut. Là, LilyPond est confrontée à un problème fondamental,
à savoir qu'il est impossible de savoir si vous voulez que le \override
du haut s'applique avant ou après l'appoggiature du bas. Dans ce cas,
avec NoteHead, on a plutôt envie de dire « après », mais avec un

\once \override Staff.Clef.color = red

on a plutôt envie de dire « avant ».

Donc, LilyPond est obligée de faire un choix, et ce choix (qui n'est ni meilleur
ni pire que l'autre) est de mettre le \override après. C'est pour ça que les
notes coloriées en rouge dans mon exemple sont les deux premiers do, et pas le
si juste avant.

Modifions encore un peu l'exemple :

\version "2.24.2"

\new Voice <<
  { \once \override Staff.NoteHead.color = red c'4 }
  { \grace b,8 c4 4 8 8 4 }

J'ai juste enlevé des notes dans la partie du haut. Rien de très spécial,
LilyPond gère parfaitement les << >> où toutes les parties n'ont pas la
même durée. Et si on pousse la chose plus loin ?

\version "2.24.2"

\new Voice <<
  \once \override Staff.NoteHead.color = red
  { \grace b,8 c4 4 8 8 4 }

Là, ça devient plus contre-intuitif que ce soit le do et pas le si qui est
colorié en rouge, mais c'est juste la prolongation logique des exemples
ci-dessus.

Moralité : quand vous faites

  \new DrumStaff
  <<
    \set DrumStaff.drumStyleTable= #(alist->hash-table mydrums)
    \new DrumVoice { \voiceOne \up }
  >>

le \set ne s'applique qu'après les notes d'ornement, pour la même raison
que mon \once \override NoteHead.color = red affecte la première note
après l'ornement. Donc les notes d'ornement utilisent la drumStyleTable
par défaut, pas celle que vous avez définie.

La manière standard de forcer LilyPond à choisir l'autre possibilité en
gardant la construction << >> est de rajouter un silence invisible en note
d'ornement, comme ceci :

  \new DrumStaff
  <<
    {
      \set DrumStaff.drumStyleTable= #(alist->hash-table mydrums)
      \grace { s16 s16 s16 }
    }
    \new DrumVoice { \voiceOne \up }
  >>

mais c'est franchement inutile ici, vu que si c'est juste pour un \set,
il est plus simple et naturel de faire

  \new DrumStaff \with {
    drumStyleTable= #(alist->hash-table mydrums)
  } {
    \new DrumVoice { \voiceOne \up }
  }

Re Bonjour Jean,

Un grand merci à toi pour ces exemples, je comprends mieux ce qui se passait.

Juste pour la petite histoire j'utilise toujours les << >> car j'ai souvent 2 voix à gérer.

Voici un nouvel exemple réduit (toujours avec le mydrums) de ce que j'ai fait dans ma transcription pour avoir les 2 voix et le ras de 4 correctement écrit

up= \drummode {
\time 4/4
\slurDown
\grace { sn16 sn sn( } sn4) sn sn sn

}
down = \drummode {
bd4 bd bd bd
}

\score {
\new DrumStaff \with
{ drumStyleTable= #(alist->hash-table mydrums) }
{ <<
\new DrumVoice { \voiceOne \up }
\new DrumVoice { \voiceTwo \down }

}
\layout {
indent = 0
}
}

···

Bon dimanche ensoleillé


Sébastien RICHARD