lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Séparation automatique de voix sur plusie urs portées


From: Édouard Gilbert
Subject: Re: Séparation automatique de voix sur plusie urs portées
Date: Thu, 12 Feb 2009 18:50:15 +0100

Le 11 févr. 09 à 00:57, Gilles THIBAULT a écrit :


Je me demandais s’il était possible d’automatiser un comportement
similaire avec Lilypond, en précisant à la main les passages à
répartir nécessairement sur deux portées mais en lui laissant la
possibilité de dupliquer les voix si cela s’avère préférable pour le
calcul des portées.

Si ce sont des accords (genre : <c e g>), tu as la fonction : extractNote
donnée par ce snippet :
http://lsr.dsi.unimi.it/LSR/Item?id=545

Si ce sont des voix séparées, (genre : music = << musicA \\ musicB>> ), j'utilise une fonction : extractVoice, que je n'ai pas encore mis sur le LSR, mais dont le code se trouve dans le fichier joint.
\extractVoice #1 \music  te donnera \musicA et
\extractVoice #2 \music  te donnera \musicB

Tu peux combiner ces 2 fonctions pour extraire par exemple toute la voix supérieure ou toute la voix inférieure, comme cela a été fait dans les fonctions
\extractPartUpper et \extractPartLower, ci-jointes également.
(Note : ces 2 fonctions supposent que les notes des accords ont été écrites de la plus grave à la plus aigu.
Si ce n'est pas le cas il faut réecrire ces fonctions).

Au pire tu peux diviser ta musique en tranche selon qu'il y a des accords ou des voix séparées, en utilisant
http://lsr.dsi.unimi.it/LSR/Item?u=1&id=542
(C'est la mise à jour de la fonction de la fonction \extractMusic de http://lsr.dsi.unimi.it/LSR/Item?id=531, mais qui n'a pas été validée encore.
Pourtant elle est plus courte et marche dans plus de cas...)

Merci, tout ça m’a l’air intéressant dans l’optique de ce que je veux faire, mais je doute que cela suffise. Comme mes propos sont loin d’être clairs, je vous renvoie vers une illustration de mes objectifs : la partition de violoncelle de Peer Gynt, Suite N1 Opus 46 de Grieg. Le fichier ci-dessous est passé dans le domaine public d’après le site qui la propose. J’espère que c’est bien le cas.

http://imslp.info/files/imglnks/usimg/6/62/IMSLP26381-PMLP02533- Grieg_-_Peer_Gynt_Suite_No1_Op46__cello-part_a.pdf

Dans le deuxième mouvement, les lignes 4 et 5 sont doublées, les violoncelles jouant trois voix à ce moment. À partir de A, vers le milieu de la portée 5, ils recommencent à jouer à l'unisson. Toutefois, les deux portées demeurent distinctes jusqu’à la fin de la ligne. Je pense pouvoir reproduire le même comportement à la main. Grâce aux fonctions vers lesquels tu me diriges, je dois même pouvoir écrire la musique d’une traite avant de devoir gérer ces problèmes.

Mais si je laisse LilyPond se charger des changement de lignes de façon automatique les deux portées fusionneront à A, même si A se situe au milieu d’une ligne. Je ne peux pas forcer le passage de une à deux portées au changement de ligne effectif avant le calcul de ces changements.

Dans le cas présent, une solution serait :
1) de préciser les changements de nombre de portées aux endroits où la musique l’impose
        2) de laisser LilyPond calculer les changement de ligne
3) de déplacer à la main les changements de nombres de portées pour coller aux changements de ligne proposés par LilyPond (\extractMusic sera utile ici) 4) d'espèrer que ces modifications ne changent pas la mise en page de LilyPond. Ce n’est probablement pas trop en demander, vu que la place sera de toute façon disponible.

Je me demandais s'il était possible d'automatiser l'étape 3. Mieux, s’il était possible d’influer sur l’étape 2 pour que l’étape 4 ne pose jamais problème.

Dans le sens inverse, (une mesure où il serait préférable de scinder les portées, mais le changement de ligne se faisant peu après, on tolère une mesure moins lisible et laisse les voix regroupées temporairement), l’étape 4), par contre, risque d’être plus difficile à passer.

Peut-être devrais-je me concentrer sur les problèmes simples avant de m’attaquer aux problèmes compliqués ?

Merci de vos suggestions en tout cas,
Édouard





reply via email to

[Prev in Thread] Current Thread [Next in Thread]