fusion de parties dans un conducteur

Bonjour,
J'ai essayé de me concentrer en lisant le paragraphe sur partCombine mais j'ai fini par me rabattre sur une simple polyphonie de voix qui me sort quelque chose de pas plus lisible avec en plus plein de warnings "ce contexte de voix requiert un réglage \voiceXx ou \shiftXx"
J'ai extrait de ma partition ce qui concerne les cors. Si je résous mon problème avec eux, je devrais y arriver avec les 3 trompettes, les deux hautbois, etc.
Désolé pour les puristes, les voix ne sont pas encore transposées.
Pour résumer, chaque voix sera seule sur la partition de l’instrumentiste concerné, mais fusionne avec au moins une autre sur le conducteur.
J'avais commencé en essayant de mettre les 4 voix sur une seule ligne mais j'ai vite abandonné. J'ai au moins compris que partCombine ne prenait que deux variables à la fois.
J'ai toujours une voix \structure qui contient les changements de mesure, de tonalité (heu, non. C'est une ânerie, ça), de tempo qui vient se superposer à la première voix du conducteur.
Je joins mon dernier essai sans partCombine (ou partCombineChords qui ne s'en sortait pas mieux).
Comment peut-on rendre ça lisible?

\version "2.24.0"
structure_A = {
\key e \major
\tempo 4 = 120
\time 4/4
s1 * 13 \bar "||"
\time 3/2
\tempo 4 = 122
s1. * 4
\time 2/2
s2 * 2
\bar "|."
}
cor_a = \relative {
R1 * 13 |
% 3/2
c''4. e,8 e2. e4 |
g4. d8 d2 d4 e |
f4. a,8 a2 a4 d |
e4. a,8 a2 a4 b |
% 2/2
c2. c4 |
b4-> r r2 |
}
cor_b = \relative {
R1 * 13 |
% 3/2
e'4. c8 c2. c4 |
b4. b8 b2 g4 g4 |
a4. f8 f2 f4 f |
a4. e8 e2 e4 e4 |
% 2/2
f2. f4 |
f4-> r r2 |
}
cor_c = \relative {
R1 * 13 |
% 3/2
g4. e8 e2. e4 |
d4. d8 d2 b4 c4 |
c4. a8 a2 a4 a |
c4. a8 a2 a4 b4 |
% 2/2
c2. c4 |
gis4-> r r2 |
}
cor_d = \relative {
R1 * 13 |
% 3/2
g4. g8 g2. g4 |
g4. g8 g2 d4 e |
f4. f8 f2 d4 d |
e4. e8 e2 e4 e |
% 2/2
f2. f4 |
d4-> r r2 |
}

\score {
<<
\new StaffGroup \with {
instrumentName = "F Horns"
shortInstrumentName = #"Hn"
}
<<
\new Staff \with {
instrumentName = \markup
\center-column { "1"
\line {"2"}}
shortInstrumentName = \markup
\center-column { "1"
\line {"2"}}
}
<<
\new Voice \structure_A
\new Voice \cor_a
\new Voice \cor_b
>>
\new Staff \with {
instrumentName = \markup
\center-column { "3"
\line {"4"}}
shortInstrumentName = \markup
\center-column { "3"
\line {"4"}}
}
<<
\new Voice \cor_c
\new Voice \cor_d
>>
>>

}

Bonjour
est-ce que ceci est ce que vous souhaitez obtenir ?

voici le code

\version "2.24"
structure_A = {
  \key e \major
  \tempo 4 = 120
  \time 4/4
  s1 * 13 \bar "||"
  \time 3/2
  \tempo 4 = 122
  s1. * 4
  \time 2/2
  s2 * 2
  \bar "|."
}

cor_a = \relative {
  R1 * 13 |
  % 3/2
  c''4. e,8 e2. e4 |
  g4. d8 d2 d4 e |
  f4. a,8 a2 a4 d |
  e4. a,8 a2 a4 b |
  % 2/2
  c2. c4 |
  b4-> r r2 |
}

cor_b = \relative {
  R1 * 13 |
  % 3/2
  e'4. c8 c2. c4 |
  b4. b8 b2 g4 g4 |
  a4. f8 f2 f4 f |
  a4. e8 e2 e4 e4 |
  % 2/2
  f2. f4 |
  f4-> r r2 |
}

cor_c = \relative {
  R1 * 13 |
  % 3/2
  g''4. e8 e2. e4 |
  d4. d8 d2 b4 c4 |
  c4. a8 a2 a4 a |
  c4. a8 a2 a4 b4 |
  % 2/2
  c2. c4 |
  gis4-> r r2 |
}

cor_d = \relative {
  R1 * 13 |
  % 3/2
  g'4. g8 g2. g4 |
  g4. g8 g2 d4 e |
  f4. f8 f2 d4 d |
  e4. e8 e2 e4 e |
  % 2/2
  f2. f4 |
  d4-> r r2 |
}

\score {
  \new StaffGroup \with {
    instrumentName = "F Horns"
    shortInstrumentName = #"Hn"
  }
  <<
    \new Staff \with {
      instrumentName = \markup
      \center-column { "1" "2"} 
      shortInstrumentName = \markup
      \center-column { "1" "2"}
    }
    \new Voice    <<
      { \cor_a  }
      \\
      { \cor_b  }
     \\
     \structure_A
    >>

    \new Staff \with {
      instrumentName = \markup
      \center-column { "3" "4"} 
      shortInstrumentName = \markup
      \center-column {"3" "4"} 
    }
    \new Voice  <<
      {  \cor_c }
      \\
     {   \cor_d } 
   >>
  >>
}


sinon envoyé un bout de copie écran de votre partition papier .
Cordialement

Oui, c'est bien ça. Mais je voudrais comprendre.
Au lieu de créer directement plusieurs voix sous le contexte Staff il faut créer une seule voix qui contient une polyphonie?

Et question subsidiaire: peut-on regrouper les 4 parties sur une seule portée en gardant la lisibilité?

Déjà merci pour ce pas de géant (en ce qui me concerne).

oui voilà on fait une portée avec plusieurs voix.
en Polyphonie.
Avec LilyPond il y a toujours plusieurs façon de faire.
soit ainsi

 <<
\new voice  {  \voiceOne}
 \new voice  {  \voiceTwo }
etc..
>>

ou bien avec "\" ce que je préfère

  {  les notes   }
\\
 {  les notes   }
etc..
>>

Exemples :

\layout {
  \context {
    \Score
    fingeringOrientations = #'(right )
  }
}

\new Staff 
<<
  \new Voice= "Une"  \relative {  \voiceOne <c''-1>1 }
  \new Voice= "Deux"   \relative { \voiceTwo <g'-2>1  }
  \new Voice= "trois"   \relative { \voiceThree <e'-3> }
  \new Voice= "quatre"   \relative { \voiceFour <c'-4>1  }
>>


\new Staff 
<<
  \relative {   <c''-1>1 }
  \\
  \relative {  <g'-2>1  }
  \\
  \relative {  <e'-3> }
  \\
  \relative {  <c'-4>1  }
>>

il y a aussi partcombine mais j'ai très vite abandonné.
Pour maitriser faut essayer sur des petites phrases.
Et si besoin demander de l'aide.

Cordialement

Ca me rassure que je ne sois pas le seul à avoir jeté l'éponge avec le partCombine.
Mais je ne vois pas trop la différence entre la première solution et ce que j'avais fait. Ce sont juste les accolades autour de la variable cor_x qui font tant de différence?

Et sinon, j’étais tout fier de m'être rappelé de l'existence de Merge_rests_engraver, mais il y a un équivalent pour les nuances? Je m'aperçois que j'ai tout en double...

Bonjour,

Le même avec \partCombine :

\version "2.24"
structure_A = {
   \key e \major
   \tempo 4 = 120
   \time 4/4
   s1 * 13 \bar "||"
   \time 3/2
   \tempo 4 = 122
   s1. * 4
   \time 2/2
   s2 * 2
   \bar "|."
}

cor_a = \relative {
   R1 * 13 |
   % 3/2
   c''4. e,8 e2. e4 |
   g4. d8 d2 d4 e |
   f4. a,8 a2 a4 d |
   e4. a,8 a2 a4 b |
   % 2/2
   c2. c4 |
   b4-> r r2 |
}

cor_b = \relative {
   R1 * 13 |
   % 3/2
   e'4. c8 c2. c4 |
   b4. b8 b2 g4 g4 |
   a4. f8 f2 f4 f |
   a4. e8 e2 e4 e4 |
   % 2/2
   f2. f4 |
   f4-> r r2 |
}

cor_c = \relative {
   R1 * 13 |
   % 3/2
   g''4. e8 e2. e4 |
   d4. d8 d2 b4 c4 |
   c4. a8 a2 a4 a |
   c4. a8 a2 a4 b4 |
   % 2/2
   c2. c4 |
   gis4-> r r2 |
}

cor_d = \relative {
   R1 * 13 |
   % 3/2
   g'4. g8 g2. g4 |
   g4. g8 g2 d4 e |
   f4. f8 f2 d4 d |
   e4. e8 e2 e4 e |
   % 2/2
   f2. f4 |
   d4-> r r2 |
}

\score {
   <<
      \new Devnull \structure_A 
      \new StaffGroup \with {
         instrumentName = "F Horns"
         shortInstrumentName = #"Hn"
      }
      <<
         \new Staff \with {
            instrumentName = \markup \center-column { "1" "2"} 
            shortInstrumentName = \markup \center-column { "1" "2"}
            \consists Merge_rests_engraver
         }
         { \compressEmptyMeasures \partCombine \cor_a \cor_b }

         \new Staff \with {
            instrumentName = \markup \center-column { "1" "2"} 
            shortInstrumentName = \markup \center-column { "1" "2"}
         }
         { \partCombine  \cor_c  \cor_d  }
      >>
   >>
}

On peut ajouter un\partCombineApart au début du corA pour reproduire le visuel précédent.

Je me sers très souvent de \partCombine pour éditer les partitions des pupitres.

Cordialement,
Frédéric

Bonjour,
effectivement, ça revient pas tout à fait à

<<{  VxH } \\ {  \VxB }>>

c'est simple, j'avais du me mélanger les pattes au début .
Merci de l'exemple

Bravo pour le partCombine. Maintenant que c'est écrit, ça paraît évident.
Je n'ai pas compris ce qu'est le "visuel précédent". Quand je joue avec partCombineApart j'obtiens des décalages horizontaux qui ne sont sûrement pas l'effet cherché.

Ce qui est chouette c'est que le partCombine fusionne aussi les nuances.
J'avais commencé à chercher à masquer les nuances des cors 2 et 4 dans ma première version, mais je n'ai pas trouvé la propriété de DynamicText à modifier pour arrver à ce résultat. Quelqu'un peut me donner la solution, que j'apprenne encore quelque chose?

\partCombineApart s'utilise dans la musique (cf. Automatic part combining (LilyPond Notation Reference) pour les détails et options)

cor_a = \relative {
   \partCombineApart
% etc...

Pour que les deux voix ne fusionnent pas, comme dans l'exemple précédent.

Pour les nuances, il y a une jolie fonction de Valentin Villenave qui doit traîner sur les internets, je joins le fichier.
enlever nuances.ly (807 Octets)

Exemple un peu longuet :

\version "2.25.14"

%%%%%%%%%%

#(define (dynamic? x)
    (let ((name (ly:music-property x 'name)))
       (or
        (eq? name 'DynamicEvent)
        (eq? name 'AbsoluteDynamicEvent)
        (eq? name 'CrescendoEvent)
        (eq? name 'DecrescendoEvent)
        (eq? name 'SpanDynamicEvent))))

enleverNuances =
#(define-music-function (m) (ly:music?)
    (music-filter
     (lambda (x)
        (let ((tags (ly:music-property x 'tags))
              (dir (ly:music-property x 'direction)))
           (not (and
                 (dynamic? x)
                 (not (memq 'ici tags))
                 (null? dir)))))
     m))

%%% Décommenter pour exemple 
%{
%musique = { c'1\< c'\f c'_\pp c'\fff c' \tag #'ici \sfz }
musique = { c'1\< c'\f c'_\pp c'\fff c' -\tag ici \sfz f' }

{
  \enleverNuances \musique
}
{ \musique }
%%%%%%%%%%%
%}

\layout {
   \context {
      \Score
      \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/20)
   }
}

cor_a = \relative { c''4. \f e,8 \mf e4 \mp e4 \p }
cor_b = \relative { e'4. \f c8 \mf c4 \mp c4 \p }
cor_c = \relative { g''4. \f e8 \mf e4 \mp e4 \p }
cor_d = \relative { g'4. \f g8 \mf g4 \mp g4 \p }

<<
   \new Staff { \partCombine \cor_a \cor_b }
   \new Staff { \partCombine \cor_c \cor_d }
>>

<<
   \new Staff { \enleverNuances { \partCombine \cor_a \cor_b } }
   \new Dynamics \cor_a
   \new Staff { \enleverNuances { \partCombine \cor_c \cor_d } }
>>

hth
Frédéric