Subject: Re: \partcombine fait comme il le sent ?

From: "j-f.lucarelli" <[email-masked]>
Date: Fri, 15 Apr 2011 18:47:05 +0200

== 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...  :'( 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 :-P
>
>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 ? ;-)
>
>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
>[email-masked]
>http://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>
>

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

---

From: Éditions IN NOMINE<[email-masked]>
Date: Fri, 15 Apr 2011 19:00:32 +0200

> 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 d…
un petit \set Staff.printPartCombineTexts = ##f vire ces textes, et je 
cale les miens à l'occasion.
> 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
> ============================
>

---

From: Éditions IN NOMINE<[email-masked]>
Date: Tue, 19 Apr 2011 10:00:32 +0200

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 :-P

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", ...
>>   
>> 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.
>>   
>

---

From: Xavier Scheuer <[email-masked]>
Date: Tue, 19 Apr 2011 10:45:53 +0200

2011/4/15 Éditions IN NOMINE <[email-masked]>:
> quasiment pour la première fois de ma vie lilypondesque. Acte 1 scène 1 de
> Lohengrin, pour commencer en douceur...  :'( 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 :-P

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

-- 
Xavier Scheuer <[email-masked]>

---

From: Éditions IN NOMINE <[email-masked]>
Date: Tue, 19 Apr 2011 10:52:10 +0200

> \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.
> Donc en attendant que quelqu'un développe un  \partcombine  avec un
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