Notes pas centrées sur la portée après mesures de traits obliques

Bonjour à tous,

je relance le sujet Traits obliques pour partition de batterie, cette fois pour une partition avec de la vraie musique :wink:

Comme on peut le constater avec l'ECM suivant (et l'image correspondante en-dessous), malgré l'astuce \oneVoice ... \voiceOne (lignes 38 et 40) donnée dans Traits obliques pour partition de batterie - #7 par Christophe_Pochon1, les notes (mesure 3) qui suivent les traits (mesure 2) ne sont pas centrées sur la portée de la main gauche du piano.

\version "2.24.4"

comp = #(define-music-function (count) (integer?)
          #{
            \override Rest.stencil = #ly:percent-repeat-interface::beat-slash
            \override Rest.thickness = #0.48
            \override Rest.slope = #0.7
             \oneVoice \repeat unfold $count { \repeat unfold 4 { r4 } } \voiceOne
            \revert Rest.stencil
          #}
          )

\layout {
  \context {
    \Voice
    \consists "Melody_engraver"
  }
}

global = {
  \key c \major
  \time 4/4
}

right = \relative c' {
  \global
  % En avant la musique !
  c1 1 1 
}

left = \relative c {
  \global
  % En avant la musique !
  r2 f
  \oneVoice
  \comp #1
  \voiceOne
  r2 f
}

\score {
  \new PianoStaff \with {
  } <<
    \new Staff = "right" \with {
    } \right
    \new Staff = "left" \with {
    } { \clef bass \left }
  >>
  \layout { }
}

Pour ceux que ça intéresse, mon cas d'usage réel est le morceau de jazz Second Thoughts de Mulgrew Miller dont je mets ci-dessous le code complet (si la compilation échoue à cause des accords, je peux fournir ma version personnalisée de jazzchords.ily mais il suffit aussi de mettre en commentaire la ligne121). Malgré l'astuce \oneVoice ... \voiceOne (lignes 77 et 81), les notes (à partir de la mesure 21) qui suivent les traits (mesures 9 à 20) ne sont pas centrées sur la portée de la main gauche du piano.

\version "2.24.4"
\include "jazzchords.ily"
\include "lilyjazz.ily"
\include "jazzextras.ily"

comp = #(define-music-function (count) (integer?)
          #{
            \override Rest.stencil = #ly:percent-repeat-interface::beat-slash
            \override Rest.thickness = #0.48
            \override Rest.slope = #0.7
             \oneVoice \repeat unfold $count { \repeat unfold 4 { r4 } } \voiceOne
            \revert Rest.stencil
          #}
          )

\paper {
    indent = 0\mm
}

\header {
  title = "Second Thoughts"
  composer = "Mulgrew Miller"
}

\layout {
  \context {
    \Voice
    \consists "Melody_engraver"
  }
}

global = {
  \key c \major
  \time 4/4
  \tempo 4=100
}

right = \relative c' {
  \global
  % En avant la musique !
  \repeat volta 2 {
    f1 g aes bes \break
    b cis d e\break
    \sectionLabel "Afro Cuban"
    f2 ees4 c8 bes~
    2 c4 ees
    f2 ees4 c8 bes~
    2 c4 ees\break
    ees2 r8 des bes aes~
    2 r8 f' des ees~
    2 r8 des bes aes~
    2. r4\break
    \sectionLabel "Swing"
    a2 r8 fis d e~
    2 r8 fis g a
    bes8 c16 bes a8 g fis4 d8 bes~
    2 r8 fis' d e~\break
    2 r4 e'8 cis~
    2 r4 a8 fis~
    2 r4 d'8 b~
    2. r4
  }
}

left = \relative c {
  \global
  % En avant la musique !
  \repeat volta 2 {
    r4. f8~ 2
    r4. f8~ 2
    r4. f8~ 2
    r4. f8~ 2
    r4. f8~ 2
    r4. f8~ 2
    r4. f8~ 2
    r4. f8~ 2
    \oneVoice
    \comp #4
    \comp #4
    \comp #4
    \voiceOne
    r4. f8~ 2
    r4. f8~ 2
    r4. f8~ 2
    r4. f8~ 2
  }
}

theChords = \chordmode {
  \repeat "volta" 2 {
    bes1:m7+
    aes:m7+
    ges:m7+
    f:sus
    e:sus4.7
    d:7
    c:7.11+
    b:m7
    bes1:m7/ees
    aes1:m/ees
    bes1:m7/ees
    aes1:m/ees
    aes1:m7/des
    ges1:m/des
    aes1:m7/des
    ges1:m/des
    e:m7
    fis:m7
    g:m7+
    a:7.9-
    b:m7
    e:m7
    b:m7
    c:maj7.11+
  }
}

\score {
  \new PianoStaff \with {
  } <<
    \new ChordNames \theChords
    \new Staff = "right" \with {
      midiInstrument = "percussive organ"
    } \right
    \new Staff = "left" \with {
      midiInstrument = "acoustic bass"
    } { \clef bass \left }
  >>
  \layout { }
  \midi { }
}

Bonjour,

C'est normal, c'est l'effet du \voiceOne.
Si tu veux dans la mesure 3 main gauche la demi-pause centrée (sur la 3e ligne) et la hampe du fa "neutre" (i.e. vers le bas) il ne faut rien (ou juste un \oneVoice).

Le \voiceOne était présent dans l'autre discussion car il y avait plusieurs voix sur le portée.

Cordialement,
Xavier

1 « J'aime »

Merci mais, euh... si je supprime \oneVoice et \voiceOne dans l'ECM, je subis la même punition :

\version "2.24.4"

comp = #(define-music-function (count) (integer?)
          #{
            \override Rest.stencil = #ly:percent-repeat-interface::beat-slash
            \override Rest.thickness = #0.48
            \override Rest.slope = #1.7
             \oneVoice \repeat unfold $count { \repeat unfold 4 { r4 } } \voiceOne
            \revert Rest.stencil
          #}
          )

\header { tagline = "" }

\layout {
  \context {
    \Voice
    \consists "Melody_engraver"
  }
}

global = {
  \key c \major
  \time 4/4
}

right = \relative c' {
  \global
  % En avant la musique !
  c1 1 1
}

left = \relative c {
  \global
  % En avant la musique !
  r2 f
  \comp #1
  r2 f
}

\score {
  \new PianoStaff \with {
  } <<
    \new Staff = "right" \with {
    } \right
    \new Staff = "left" \with {
    } { \clef bass \left }
  >>
  \layout { }
  \midi { }
}

Ah, les mains gauche et droite du piano ne sont pas considérées comme plusieurs voix ?

Ah, je viens de comprendre que tu parlais du \voiceOne dans la définition de la fonction comp. En l'y supprimant, ça fonctionne en effet : merci !