\partcombine fait comme il le sent ?

Bonjour à toute la troupe !

Je goûte aux doux plaisirs de la partition d'orchestre symphonique, quasiment pour la première fois de ma vie lilypondesque. Acte 1 scène 1 de Lohengrin, pour commencer en douceur... :cry: Je joue donc à \partcombine, tâchant, après avoir rentré chaque voix, de ne plus toucher aux notes.

Tout va bien quand il y a 2 instruments, puisque c'est fait pour ça et que ça le fait TRÈS bien !

Je cherche à amadouer \partcombine avec 3 instruments. Une voix en \voiceOne et le \partcombine en \voiceTwo.
Ca marche impec SAUF quand les deux voix du \partcombine ne sont pas tout à fait simultanées. Quand une voix ne trouve plus à se combiner avec sa partenaire, elle en change, visiblement... Lilypond a qque chose d'humain que j'aime bien :stuck_out_tongue:

Un exemple plutôt qu'un discours :

Ce qui fonctionne :

\version "2.13"
violonI = \relative c'' {c4 c c d e2 d c4 e d d c1}
violonII = \relative c'' {g4 g g g g2 g g4 g g g g1}
violonIII = \relative c' {e4 e e f e2 f e4 c d d e1}

\score {
  \new Staff <<
  \new Voice {\voiceOne \violonI}
  \new Voice{\partcombine
  {\voiceTwo \violonII}
  {\voiceTwo \violonIII}
}
>>
}

Ce qui ne fonctionne plus :

\version "2.13"

violonI = \relative c'' {R1*2 c4 c c d r2 d c4 e d d c1}
violonII = \relative c'' {R1*2 g4 g g g g2 g g4 g g g g1}
violonIII = \relative c' {R1*3 e2 f e4 c d d e1}

\score {
  \new Staff <<
  \new Voice {\voiceOne \violonI}
  \new Voice{\partcombine
  {\voiceTwo \violonII}
  {\voiceTwo \violonIII}
}
>>
}

Le partcombine passe par desuss les parenthèses pour aller flirter avec \violonI, ce que je ne souhaite pas du tout !
Any brilliant idea ? Un truc du genre \set passeParDessusLesAccoladesAutorise = ##f ? :wink:

Merci d'avance.

JMarc

== En réponse au message du 15-04-2011, 17:17:55 ==

Bonjour à toute la troupe !

Je goûte aux doux plaisirs de la partition d'orchestre symphonique,
quasiment pour la première fois de ma vie lilypondesque. Acte 1 scène 1
de Lohengrin, pour commencer en douceur... :cry: Je joue donc à
\partcombine, tâchant, après avoir rentré chaque voix, de ne plus
toucher aux notes.

Tout va bien quand il y a 2 instruments, puisque c'est fait pour ça et
que ça le fait TRÈS bien !

Je cherche à amadouer \partcombine avec 3 instruments. Une voix en
\voiceOne et le \partcombine en \voiceTwo.
Ca marche impec SAUF quand les deux voix du \partcombine ne sont pas
tout à fait simultanées. Quand une voix ne trouve plus à se combiner
avec sa partenaire, elle en change, visiblement... Lilypond a qque chose
d'humain que j'aime bien :stuck_out_tongue:

Un exemple plutôt qu'un discours :

Ce qui fonctionne :

\version "2.13"
violonI = \relative c'' {c4 c c d e2 d c4 e d d c1}
violonII = \relative c'' {g4 g g g g2 g g4 g g g g1}
violonIII = \relative c' {e4 e e f e2 f e4 c d d e1}

\score {
\new Staff <<
\new Voice {\voiceOne \violonI}
\new Voice{\partcombine
{\voiceTwo \violonII}
{\voiceTwo \violonIII}
}
>>
}

Ce qui ne fonctionne plus :

\version "2.13"

violonI = \relative c'' {R1*2 c4 c c d r2 d c4 e d d c1}
violonII = \relative c'' {R1*2 g4 g g g g2 g g4 g g g g1}
violonIII = \relative c' {R1*3 e2 f e4 c d d e1}

\score {
\new Staff <<
\new Voice {\voiceOne \violonI}
\new Voice{\partcombine
{\voiceTwo \violonII}
{\voiceTwo \violonIII}
}
>>
}

Le partcombine passe par desuss les parenthèses pour aller flirter avec
\violonI, ce que je ne souhaite pas du tout !
Any brilliant idea ? Un truc du genre \set
passeParDessusLesAccoladesAutorise = ##f ? :wink:

Merci d'avance.

JMarc

Une réponse qui n'en est pas une, mais pour apporter de l'eau au moulin : \partCombine manque encore de maturité. Même pour 2 voix, cette instruction demanderai à être complètement revue, complétée, pour mieux coller à la réalité des partitions existantes.
Ainsi, si les voix sont identiques, même sur une courte portion (1 ou 2 notes), Lily nous positionne un "a 2" ou similaire, alors que sur une partition classique, on place pour ces quelques notes deux hampes, l'une vers le haut l'autre vers le bas, pour éviter la succession des "a 2", "primo", ...
Il serait bon également de pouvoir imposer des silences de type R lorsqu'une voix se tait un court instant.

Ceci dit, je n'ai jamais tenté les 3 voix, mais je me doute que les difficultés doivent être bien pire encore.

Cordialement,

Jean-François

···

_______________________________________________
liste de diffusion lilypond-user-fr
lilypond-user-fr@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user-fr

========================================

j-f.lucarelli a écrit :

Une réponse qui n'en est pas une, mais pour apporter de l'eau au moulin : \partCombine manque encore de maturité. Même pour 2 voix, cette instruction demanderai à être complètement revue, complétée, pour mieux coller à la réalité des partitions existantes.
Ainsi, si les voix sont identiques, même sur une courte portion (1 ou 2 notes), Lily nous positionne un "a 2" ou similaire, alors que sur une partition classique, on place pour ces quelques notes deux hampes, l'une vers le haut l'autre vers le bas, pour éviter la succession des "a 2", "primo", ...
  

un petit \set Staff.printPartCombineTexts = ##f vire ces textes, et je cale les miens à l'occasion.

Il serait bon également de pouvoir imposer des silences de type R lorsqu'une voix se tait un court instant.

Ceci dit, je n'ai jamais tenté les 3 voix, mais je me doute que les difficultés doivent être bien pire encore.
  
Effectivmeent, je sens que je vais me faire une petite sauce perso que je vous communiquerai quand elle sera bien rodée...
Merci quand même !
JMArc

···

============================

Finalement, donc, j'ai opté pour la configuration à 3 suivante :

    \new Staff <<
      \new Voice {\combineHaut \trompetteI}
      \new Voice {\combineMilieu \trompetteII}
      \new Voice {\combineBas \trompetteIII}
    >>

avec

combineHaut = {
  \stemUp \tieUp \slurUp %à ajuster en fonction du résultat voulu : ici les trompettes jouent grave, donc StemUp...
  \override Voice.MultiMeasureRest #'staff-position = #0 % les silences multi en position \oneVoice
  \override Voice.Rest #'staff-position = #0 %idem pour les silences simples
  \override Voice.Script #'stencil = ##f % on efface de cette voix les signes d'interpétation pour les garder uniquement sur la III
}

combineMilieu = {%on ne garde que les têtes de notes et les Stem, on vire tout le reste : la voix du milieu se glisse entre la I et la III
  \stemUp
  \override Voice.Slur #'stencil = ##f
  \override Voice.Tie #'stencil = ##f
  \override Voice.PhrasingSlur #'stencil = ##f
  \override Voice.Rest #'stencil = ##f
  \override Voice.MultiMeasureRest #'stencil = ##f
  \override Voice.Stem #'flag-style = #'no-flag
  \override Voice.Beam #'stencil = ##f
  \override Voice.Script #'stencil = ##f
  \override Voice.TupletNumber #'stencil = ##f
}

combineBas = {% idem voix du milieu à part qu'on garde les liaisons et les indications d'interpétation (Script)
  \stemUp \tieDown \slurDown %idem voix I : à adapter en fonction du résultat voulu
  \override Voice.Rest #'stencil = ##f
  \override Voice.MultiMeasureRest #'stencil = ##f
  \override Voice.Stem #'flag-style = #'no-flag
  \override Voice.Beam #'stencil = ##f
  \override Voice.TupletNumber #'stencil = ##f
}

Ca reste quand même du bricolage complet, avec quasiment rien de systématique. Mais bon, ça permet de ne pas toucher au code des notes, et donc de cracher les parties séparées tranquillement.

Le souci 1er de cette solution et la superposition des Dots. On ne peut les supprimer que de temps en temps (quand au moins 2 vois se superposent sur ce genre de rythme, et donc l'ajustement se fait avec des bricolages encore plus honteux :stuck_out_tongue:

Retouche finale avec Gimp... >:o

A bientôt !
JMarc

Éditions IN NOMINE a écrit :

···

j-f.lucarelli a écrit :

Une réponse qui n'en est pas une, mais pour apporter de l'eau au moulin : \partCombine manque encore de maturité. Même pour 2 voix, cette instruction demanderai à être complètement revue, complétée, pour mieux coller à la réalité des partitions existantes.
Ainsi, si les voix sont identiques, même sur une courte portion (1 ou 2 notes), Lily nous positionne un "a 2" ou similaire, alors que sur une partition classique, on place pour ces quelques notes deux hampes, l'une vers le haut l'autre vers le bas, pour éviter la succession des "a 2", "primo", ...
  

un petit \set Staff.printPartCombineTexts = ##f vire ces textes, et je cale les miens à l'occasion.

Il serait bon également de pouvoir imposer des silences de type R lorsqu'une voix se tait un court instant.

Ceci dit, je n'ai jamais tenté les 3 voix, mais je me doute que les difficultés doivent être bien pire encore.
  
Effectivmeent, je sens que je vais me faire une petite sauce perso que je vous communiquerai quand elle sera bien rodée...
Merci quand même !
JMArc

  

Comme mentionné dans la doc
NR 1.5.2 Plusieurs voix > Regroupement automatique de parties >
Problèmes connus et avertissements :
\partcombine ne prend en charge que deux voix.

Et donc visiblement s'il y a plus de deux voix sur la portée de
\partcombine , ça le perturbe.

Comme l'a expliqué Reinhold sur une des liste (lilypond-dev je suppose),
le fonctionnement de \partcombine est très basique :
il prend deux arguments et les répartit sur une ou plusieurs voix,
dépendant de si les arguments jouent la même chose à un moment donné.
http://lists.gnu.org/archive/html/lilypond-devel/2011-02/msg00702.html

Donc en attendant que quelqu'un développe un \partcombine avec un
mécanisme plus puissant…

Cordialement,
Xavier

···

2011/4/15 Éditions IN NOMINE <****@****>:

Bonjour à toute la troupe !

Je goûte aux doux plaisirs de la partition d'orchestre symphonique,
quasiment pour la première fois de ma vie lilypondesque. Acte 1 scène 1 de
Lohengrin, pour commencer en douceur... :cry: Je joue donc à \partcombine,
tâchant, après avoir rentré chaque voix, de ne plus toucher aux notes.

Tout va bien quand il y a 2 instruments, puisque c'est fait pour ça et que
ça le fait TRÈS bien !

Je cherche à amadouer \partcombine avec 3 instruments. Une voix en \voiceOne
et le \partcombine en \voiceTwo.
Ca marche impec SAUF quand les deux voix du \partcombine ne sont pas tout à
fait simultanées. Quand une voix ne trouve plus à se combiner avec sa
partenaire, elle en change, visiblement... Lilypond a qque chose d'humain
que j'aime bien :stuck_out_tongue:

--
Xavier Scheuer <****@****>

Comme mentionné dans la doc
NR 1.5.2 Plusieurs voix > Regroupement automatique de parties >
Problèmes connus et avertissements :
\partcombine ne prend en charge que deux voix.

Et donc visiblement s'il y a plus de deux voix sur la portée de
\partcombine , ça le perturbe.
  

exact, j'ai oublié de mentionné que c'est un comportement normal de \partcombine, et que pour plus de 2 voix, il faut trouver autre chose.

Comme l'a expliqué Reinhold sur une des liste (lilypond-dev je suppose),
le fonctionnement de \partcombine est très basique :
il prend deux arguments et les répartit sur une ou plusieurs voix,
dépendant de si les arguments jouent la même chose à un moment donné.
http://lists.gnu.org/archive/html/lilypond-devel/2011-02/msg00702.html

Donc en attendant que quelqu'un développe un \partcombine avec un
mécanisme plus puissant…
  

yes. Je réaffirme mon contentement du partcombine à 2, par ailleurs comme toute chose perfectible.
Je vais examiner le code de part-combiner.scm avec un comain qui comprend la langue la semaine prochaine... on verra bien...

A bientôt
JMarc