Subject: Problèmes avec partcombine

From: "Nicolas Hussein" <[email-masked]>
Date: Mon, 18 Apr 2011 21:28:50 +0200 (Paris, Madrid (heure d'�t�))

Bonsoir à tous,

Je rencontre actuellement deux difficultés qui semblent venir de
\partcombine, en version 2.13.60 :

- un avertissement est généré lorsque je superpose des duolets dans les
deux expressions du \partcombine (1), mais le résultat est finalement
conforme ;

- plus préoccupant, sur une mesure (mesure 30 dans l'essai), je dois
superposer un silence normal et une série de doubles-croches à la première
voix, et un silence de mesure entière à la voix 2... le silence normal
n'apparaît pas et le silence mesure entière vient se superposer sur les
notes (2) ; le problème n'apparaît pas si je remplace le code entre mesure
20 et mesure 30 par R2.*10 dans les deux voix : le bug est peut-être avant
cette mesure 30 ; aucun avertissement n'est généré.

Auriez-vous une idée pour arranger tout ça ?

Merci d'avance,
Bonne soirée,
Nicolas Hussein

-- 
Professionnels et passionnés des transports publics
d'Île-de-France - <http://www.metro-pole.net>

---

From: Xavier Scheuer <[email-masked]>
Date: Mon, 18 Apr 2011 23:30:05 +0200

> deux expressions du \partcombine (1), mais le résultat est finalement

Bonsoir,

Le premier bug n'est pas propre à la version 2.13.60.
Il existe depuis bien plus longtemps : plus de 4 ans d'après le tracker.
http://code.google.com/p/lilypond/issues/detail?id=245

> cette mesure 30 ; aucun avertissement n'est généré.

Bug reporté il y a plus de 4 ans également.
http://code.google.com/p/lilypond/issues/detail?id=261

Mais ici bonne nouvelle, il y a moyen — depuis peu — de faire apparaître
les deux silences en mettant  \partcombineApartOnce  au début de la
mesure 30 de "clarinetteI" et "clarinetteI".

Cela dit le résultat n'est pas encore au top et je conseillerais de
jouer avec
  \once \override Rest #'staff-position = #0
et
  \once \override MultiMeasureRest #'staff-position = #-6

> Auriez-vous une idée pour arranger tout ça ?

Le système de  \partcombine  reste assez rudimentaire, même si certaines
nouvelles fonctionnalités utiles ont été ajoutées il y a peu.

L'idéal serait qu'un développeur s'attarde sur ce problème et développe
un tout nouveau "partcombine" avec un mécanisme bien plus puissant,
comme le nouveau système d'espacement vertical a été réécrit récemment.
Des volontaires ?  Non ?  Des généreux mécènes peut-être ?  Non plus ?

Cordialement,
Xavier

-- 
Xavier Scheuer <[email-masked]>

---

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

Bonjour.

En plein dedans itou. Fonctionne très bien avec les regroupements de 2 
parties, et les trucs indiqués par Xavier. Erreur aussi du n-olet, mais 
finalement, on s'en fiche :-P

J'ai tenté aussi la combine à 3 de plusieurs façons, y compris avec 
partcombine de la façon suivante :

\new Voice {\voiceOne \voixI}
\new Voice \voiceTwo {\partcombine{\voixII}{v\voixIII}}

avec l'inconvénient rédhibitoire suivant : quand voixIII se tait, voix I 
se combine avec voixI et c'est affreux...

Pour conclure avec un traditionnel :

<<
\new Voice {\fonctionVoixHaut \voixI}
\new Voice {\fonctionVoixMilieu \voixII}
\new Voice {\fonctionVoixBas \voixIII}

(le détail dans le fil précédent sur un sujet similaire, quand j'aurai 
fini ce post)

qui ma fois, fonctionne très bien.

J'aimerais pouvoir faire ce que suggère Xavier, mais il me faut 
comprendre le contenu de ../current/scm/part-combiner.scm, (9 pages de 
Scheme et très peui de commentaires...) et là, j'ai de francs doutes sur 
mes capacités... :-[

A bientôt !
JMarc

---

From: "Nicolas Hussein" <[email-masked]>
Date: Tue, 19 Apr 2011 11:41:41 +0200 (Paris, Madrid (heure d'été))

Bonjour,

Merci pour ces explications et pistes intéressantes.

J'ai finalement appliqué partcombineApartOnce, remis le soupir pointé à sa
place avec staff-position = 0, et au lieu de décaler la pause en dessous
je l'ai effacée avec stencil = ##f (puisque Lilypond indique "solo" pour
la clarinette I).

Tout fonctionne parfaitement, j'ai exactement le rendu souhaité.

Merci à la liste !
Nicolas

>> Bonsoir Ã  tous,
>> Je rencontre actuellement deux difficultÃ©s qui semblent venir de
>> - un avertissement est gÃ©nÃ©rÃ© lorsque je superpose des duolets dans
>> les
>> deux expressions du \partcombine (1), mais le rÃ©sultat est finalement
>> conforme ;
>
> Bonsoir,
>
> Le premier bug n'est pas propre Ã  la version 2.13.60.
> Il existe depuis bien plus longtemps : plus de 4 ans d'aprÃ¨s le tracker.
>> - plus prÃ©occupant, sur une mesure (mesure 30 dans l'essai), je dois
>> superposer un silence normal et une sÃ©rie de doubles-croches Ã  la
>> premiÃ¨re
>> voix, et un silence de mesure entiÃ¨re Ã  la voix 2... le silence normal
>> n'apparaÃ®t pas et le silence mesure entiÃ¨re vient se superposer sur
>> les
>> notes (2) ; le problÃ¨me n'apparaÃ®t pas si je remplace le code entre
>> mesure
>> 20 et mesure 30 par R2.*10 dans les deux voix : le bug est peut-Ãªtre
>> avant
>> cette mesure 30 ; aucun avertissement n'est gÃ©nÃ©rÃ©.
>
> Bug reportÃ© il y a plus de 4 ans Ã©galement.
> Mais ici bonne nouvelle, il y a moyen â€” depuis peu â€” de faire
> apparaÃ®tre
> les deux silences en mettant  \partcombineApartOnce  au dÃ©but de la
> Cela dit le rÃ©sultat n'est pas encore au top et je conseillerais de
> jouer avec
>> Auriez-vous une idÃ©e pour arranger tout Ã§a ?
>
> Le systÃ¨me de  \partcombine  reste assez rudimentaire, mÃªme si certaines
> nouvelles fonctionnalitÃ©s utiles ont Ã©tÃ© ajoutÃ©es il y a peu.
>
> L'idÃ©al serait qu'un dÃ©veloppeur s'attarde sur ce problÃ¨me et
> dÃ©veloppe
> un tout nouveau "partcombine" avec un mÃ©canisme bien plus puissant,
> comme le nouveau systÃ¨me d'espacement vertical a Ã©tÃ© rÃ©Ã©crit
> rÃ©cemment.
> Des volontaires ?  Non ?  Des gÃ©nÃ©reux mÃ©cÃ¨nes peut-Ãªtre ?  Non plus
> ?
>
> Cordialement,
> Xavier
>
> --

---

From: Xavier Scheuer <[email-masked]>
Date: Tue, 19 Apr 2011 11:54:50 +0200

> Tout fonctionne parfaitement, j'ai exactement le rendu souhaité.

Si tu voulais uniquement le soupir pointé à sa place et ne pas imprimer
la pause en dessous, alors un simple

  \partcombineSoloIOnce

dans la partie de "clarinetteI" (mesure 30), rien dans la partie
"clarinetteII" et plus besoin ni de  #'staff-position = #0 , ni de
#'stencil = ##f .

Cordialement,
Xavier

---

From: "j-f.lucarelli" <[email-masked]>
Date: Tue, 19 Apr 2011 12:42:14 +0200

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

>"clarinetteII" et plus besoin ni de  #'staff-position = #0 , ni de

Pour un \partCombine idéal, je verrais les propositions suivantes :

- en mode "A 2", pouvoir forcer l'écriture polyphonique (même si le rythme est identique ou même les notes identiques)
- garder évidemment le mode "1" ou "2" (et les remplacer éventuellement par "3" ou "4", mais ça, c'est possible sans soucis)
- forcer les silences sur une voix qui se tait (en mode "A 2")
- si les voix se croisent, passer automatiquement en mode polyphonique (il est possible que ça fonctionne actuellement, je n'ai jamais essayé)
- cerise sur le gâteau, mais conformément aux partitions modernes, faire un rappel du "1", "2" ou "A 2" lors d'un saut de  système.

Qu'en pensez-vous ? Il me semble qu'avec ça, toutes les solutions classiques seraient faisables. Et surtout, ça éviterait de devoir réécrire complètement les parties, vu la faiblesse actuelle de cette instruction.

Malheureusement, il faudrait un as du Scheme pour implémenter tout ça :-/

Cordialement,

Jean-François

>_______________________________________________
>liste de diffusion lilypond-user-fr
>[email-masked]
>http://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>
>

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

---

From: Xavier Scheuer <[email-masked]>
Date: Tue, 19 Apr 2011 13:06:46 +0200

2011/4/19 j-f.lucarelli <[email-masked]>:
> - en mode "A 2", pouvoir forcer l'écriture polyphonique (même si le
> rythme est identique ou même les notes identiques)

Je pense que la nouvelle commande  \partcombineApart  fait exactement
cela.

> - garder évidemment le mode "1" ou "2" (et les remplacer
> éventuellement par "3" ou "4", mais ça, c'est possible sans soucis)

Tu entends quoi par mode "1" et "2" ("3" et "4") ?

> - forcer les silences sur une voix qui se tait (en mode "A 2")

Il faut corriger le bug #261 mais les nouvelles commandes permettent des
"workarounds" en attendant.

> - si les voix se croisent, passer automatiquement en mode polyphonique
> (il est possible que ça fonctionne actuellement, je n'ai jamais essayé)

Je n'ai pas essayé non plus.

> - cerise sur le gâteau, mais conformément aux partitions modernes,
> faire un rappel du "1", "2" ou "A 2" lors d'un saut de  système.

OK, ça ça n'y est pas.

> Qu'en pensez-vous ? Il me semble qu'avec ça, toutes les solutions
> classiques seraient faisables. Et surtout, ça éviterait de devoir
>  réécrire complètement les parties, vu la faiblesse actuelle de cette
> instruction.

Sais pas.
Je n'ai pas encore vraiment regardé tout ce qu'il était possible de
faire avec les nouvelles commandes.  Ni ce qui pose toujours problème.

> Malheureusement, il faudrait un as du Scheme pour implémenter tout ça :-/

Avant d'implémenter une discussion avec les utilisateurs de la liste
internationale pour savoir ce que veulent les utilisateurs en terme de
fonctionnalités (et comment) ainsi qu'une discussion sur lilypond-devel
serait une bonne idée.

Mais avant bien regarder ce qui existe pour le moment.
NR 1.5.2 Multiple voices > Automatic part combining
EN ANGLAIS !!! (pas encore traduit en FR pour les nouvelles commandes)
\partcombineApart, \partcombineApartOnce
\partcombineChords, \partcombineChordsOnce
\partcombineUnisono, \partcombineUnisonoOnce
\partcombineSoloI, \partcombineSoloIOnce
\partcombineSoloII, \partcombineSoloIIOnce
\partcombineAutomatic, \partcombineAutomaticOnce
http://lilypond.org/doc/v2.13/Documentation/notation/multiple-voices.html#automatic-part-combining

Je savais que ma demande pour que ces commandes soient documentées dans
le manuel de notation serait utile !  :D

Cordialement,
Xavier

---

From: "Nicolas Hussein" <[email-masked]>
Date: Tue, 19 Apr 2011 18:27:21 +0200 (Paris, Madrid (heure d'été))

Ah ben oui, c'est encore plus simple ! Merci beaucoup !

>> Merci pour ces explications et pistes intÃ©ressantes.
>>
>> J'ai finalement appliquÃ© partcombineApartOnce, remis le soupir pointÃ©
>> Ã  sa
>> place avec staff-position = 0, et au lieu de dÃ©caler la pause en
>> dessous
>> je l'ai effacÃ©e avec stencil = ##f (puisque Lilypond indique "solo"
>> pour
>> la clarinette I).
>>
>> Tout fonctionne parfaitement, j'ai exactement le rendu souhaitÃ©.
>
> Si tu voulais uniquement le soupir pointÃ© Ã  sa place et ne pas imprimer