Subject: Problème avec \repeat tremolo en \partcombine

From: Philhar <[email-masked]>
Date: Thu, 16 May 2013 09:55:54 -0700 (PDT)

Bonjour,

Dans une partition d'orchestre, les flûtes sont en tremolo, mais pour une
mesure, une des notes de la FlûteII est plus haute que la FlûteI . 
Pour les parties séparées, ça compile sans problème. Mais pour le
conducteur, donc en \partcombine, la compilation bloque sur le message "
Pré-traitement des éléments graphiques..." et signale "Avertissement : Aucun
trémolo à terminer ", précisément sur cette mesure de chevauchement.
Voici un exemple minimum (changer la note de la flûteII pour avoir le
problème):

\version "2.16.0"

FluteI = \relative c'' {
	\time 3/4
	\repeat tremolo 6 {c16 e}
	\repeat tremolo 6 {c16 e}
	}
	
FluteII = \relative c'' {
	\time 3/4
	\repeat tremolo 6 {g16 b}
	\repeat tremolo 6 {g16 b}		%% {g16 g'} ne compile pas
	}

\score {
<<
	\new Staff \FluteI
	\new Staff \FluteII
	\new Staff \partcombine \FluteI \FluteII
}      

Un bug de \partcombine ?

Michel

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Probleme-avec-repeat-tremolo-en-partcombine-tp7579661.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Eluze <[email-masked]>
Date: Fri, 17 May 2013 01:43:30 -0700 (PDT)

Philhar wrote
> Pré-traitement des éléments graphiques..." et signale "Avertissement :
> Aucun trémolo à terminer ", précisément sur cette mesure de chevauchement.

en mettant les ligatures explicitement dans les deux voix ça joue … (mais
avec 20 warning et 8 error pour ce petit bout de code!)

certainement un (ou plusieurs) bug(s)!

j'ai filé un rapport sur la liste bug:
http://lilypond.1069038.n5.nabble.com/crash-with-partcombine-repeat-tremolo-when-voices-cross-td146036.html

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Probleme-avec-repeat-tremolo-en-partcombine-tp7579661p7579664.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Seventies <[email-masked]>
Date: Fri, 17 May 2013 07:28:22 -0700 (PDT)

Voilà, je termine actuellement la 7ième symphonie de Dvorák pour laquelle
j'ai utilisé au maximum le \partcombine pour toute les parties bois et
cuivres. À ce sujet, je compte faire un résumé des inconvénients, et surtout
des avantages de cette commande. Mais ça va être assez long... ;-)

\partcombine se comporte généralement en accord avec les conventions des
graveurs du XIXième siècle, c'est déjà pas mal.

En résumant brièvement, \partcombine divise les parties à combiner en
segments, de manière assez automatique,et ça fonctionne généralement assez
bien.
L'utilisateur peut modifier ce mode de fonctionnement par les commandes
suivantes, placées dans une seule des deux voix, de préférence la première,
ou encore la voix soliste :

- \partcombineApart maintient les notes dans des voix séparées même si elles
peuvent se combiner en accord ou en unisson.
- \partcombineChords combine les notes en accords.
- \partcombineUnisono combine les voix en un « unisson ».
- \partcombineSoloI affiche exclusivement la première voix et l’affuble d’un
« Solo ».
- \partcombineSoloII affiche exclusivement la deuxième voix et l’affuble
d’un « Solo ».
- \partcombineAutomatic annule les effets des dérogations précédentes et
activent le comportement standard de la fonction \partcombine.

Plus de renseignements en
http://lilypond.org/doc/v2.16/Documentation/notation/multiple-voices#automatic-part-combining

Chacun de ces comportements peut recevoir le suffixe Once
(\partcombineApartOnce) pour être applicable uniquement à la note suivante.

Ces commandes n'ont aucune influence quand elles sont utilisées en dehors
d'un \partcombine, ce qui minimise les modifications pour la réalisation des
parties séparées ... mais je pense que tout ne sera jamais complètement
automatique et que de petites modifications resteront nécessaires - ce qui
reste plus simple que de réécrire trois fois le code.

\partcombineApart est utilisé automatiquement
- lorsque les deux voix ont des rythmes différents
- lorsque la seconde voix est placée au dessus de la première
- lorsque l'espace entre les voix dépasse l'octave

Voilà pour ce qui fonctionne bien.

Pour le reste :
- \partcombine refuse de fonctionner dès que des \tag sont présents.
- Le démarrage d'un mode particulier se fait parfois au milieu d'un silence
de l'une des voix (surtout les MultiMeasureRest), ce qui pose des problèmes
au démarrage de l'autre voix.
- \partcombine n'accepte que deux voix, mais son fonctionnement est
aléatoire en cas de \new Voice ou de la structure <<{ }\\{ }>>, en tout cas
si les deux voix utilisent simultanément ces structures.

- Et surtout, \partcombineApart utilise en interne la structure <<{ }\\{
}>>, ce qui signifie qu'à l'entrée tout comme à la sortie, il ne peut y
avoir aucune liaison en cours, aucune ligature, aucune ligne dynamique,
aucun trille, ...

Mais parfois, \partcombine utilise implicitement \partcombineApart sans que
les conditions soient remplies, avec comme conséquences des liaisons, des
trilles, des cresc qui ne se terminent jamais.

Dans ce cas, il faut utiliser \partcombineApart explicitement, en un endroit
où aucune liaison, ... n'est présente, et repasser à \partcombineAutomatic
en un endroit similaire.

Ceci n'est qu'un petit aperçu des avantages et inconvénients de la méthode,
il reste pas mal de choses à améliorer (sans doute pour la version 2.19 ?),
mais ma conclusion actuelle est que TOUT est possible, du moment de
"trafiquer" quelque peu le code.

Un exemple de changement de "mode" tandis qu'une liaison est active :

<http://lilypond-french-users.1298960.n2.nabble.com/file/n7579669/ChangementCombine.png> 

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Probleme-avec-repeat-tremolo-en-partcombine-tp7579661p7579669.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Jean-Charles Malahieude <[email-masked]>
Date: Fri, 17 May 2013 18:53:05 +0200

Le 17/05/2013 16:28, Seventies disait :
> [...]

Le fonctionnement est particulier, il est vrai, puisque j'y suis arrivé 
pour Arthur. Voici le début de ma construction de la passacaille :

\tocItem \DPassa
\score  { %  DB - PASSAGAGLIA
   \keepWithTag #'Full
   <<
     \new StaffGroup = "Vents" \with {
       systemStartDelimiter = #'SystemStartBrace }
     <<
       \new Staff = "Voix 1" <<
         \set Staff.instrumentName = \markup {
           \column { \line { \LPrimo \LViolin }
		    \line { & \LOboe } } }
         \clef treble
	\set Staff.soloText = \Lob
	\set Staff.soloIIText = \Lvn
	\set Staff.aDueText = ##f
	\partcombine
	{ \keepWithTag #'Full
	  << \include "B/global.ily" \include "B/oboeI.ily"
	     \include "B/indication.ily" >> }
	{ \keepWithTag #'Full
	  << \include "B/global.ily" \include "B/violonI.ily" >> }

Il est nécessaire de _rappeler_ le tag à l'intérieur des expressions à 
combiner.

@+
Jean-Charles

---

From: Seventies <[email-masked]>
Date: Fri, 17 May 2013 11:43:52 -0700 (PDT)

Ok, merci pour l'astuce. Ce sera bien utile pour la prochaine utilisation.

Dans mon cas, je ne vais pas retravailler un travail achevé à 99%, mais la
méthode que j'ai utilisée (fichiers différents pour les parties et pour le
\partcombine) est sujette à de nombreuses erreurs dans l'étape de la
relecture finale : toute correction effectuée sur un fichier doit l'être
dans l'autre ... ce qui n'est pas évident quand la fatigue pointe son nez
;-)

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Probleme-avec-repeat-tremolo-en-partcombine-tp7579661p7579674.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Philhar <[email-masked]>
Date: Fri, 17 May 2013 22:19:01 -0700 (PDT)

Merci pour ces explications. 

L'ajout de \partcombineApart résoud en effet le problème, sans pour autant
surcharger le code. Et l'utilisation en "switch" de \partcombineApart et
\partcombineAutomatic permet d'obtenir un conducteur plus propre.
Pour l'utilisation de \tag, j'avais trouvé aussi l'astuce de Jean-Charles,
en particulier pour filtrer les \markup.

Bon courage pour la 7e de Dvorak. De mon côté, je termine la Suite
d'orchestre dans le style ancien de Albéric Magnard.

Michel

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Probleme-avec-repeat-tremolo-en-partcombine-tp7579661p7579679.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.