| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Collisions of objects
| 4.6.1 Déplacement d’objets | ||
| 4.6.2 Correction des collisions d’objets | ||
| 4.6.3 Exemple concret |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Moving objects
Aussi surprenant que cela puisse paraître, LilyPond n’est pas parfait. Certains éléments sur la partition peuvent se chevaucher, ce qui est regrettable mais, le plus souvent, facile à corriger. En général, quand on déplace des objets, c’est pour des raisons de lisibilité ou d’esthétique – ils rendraient mieux avec un peu plus ou un peu moins d’espace autour d’eux.
Il y a trois façons de résoudre les problèmes de chevauchement. Il est préférable de les aborder dans l’ordre suivant :
\override. Il y a
deux avantages à changer ces propriétés : (a) d’autres objets
pourront être déplacés automatiquement si nécessaire pour faire de la
place et (b) la même retouche peut s’appliquer à toutes les occurrences
du même type d’objet. Ces propriétés sont :
direction
Ce point a déjà été traité en détails – voir Objets inclus dans la portée.
padding, right-padding, staff-padding
Au moment de positionner un objet, la valeur de sa propriété
padding détermine l’espace à laisser libre entre celui-ci et le
coin le plus proche de l’objet à côté duquel il est placé. Vous
remarquerez que c’est la valeur padding de l’objet à
placer qui compte ; la valeur padding de l’objet déjà placé
est ignorée. Les espaces libres déterminés par padding
s’appliquent à tous les objets associés à la
side-position-interface.
Le positionnement de groupes d’altérations est contrôlé par
right-padding, et non plus padding. Cette propriété
appartient à l’objet AccidentalPlacement qui, vous le
remarquerez, prend place dans le contexte Staff. Dans le
processus de composition, les têtes de notes sont disposées en premier,
puis les altérations, s’il y en a, sont ajoutées à gauche des têtes de
note suivant la propriété right-padding qui détermine
l’espacement par rapport aux têtes de note. C’est pourquoi seule la
propriété right-padding de l’objet AccidentalPlacement
joue sur le positionnement des altérations.
La propriété staff-padding est très proche de la propriété
padding : padding contrôle l’espace minimum entre un
objet qui accepte la side-position-interface et l’objet le plus
proche (généralement une note ou une ligne de portée) ;
staff-padding ne s’applique qu’aux objets qui sont toujours
placés au-dehors de la portée – il contrôle l’espace minimum à insérer
entre la portée et l’objet extérieur. Attention : staff-padding
concerne les objets positionnés par rapport à la portée et n’a aucun
effet sur les objets qui sont positionnés par rapport à une note ; tout
aménagement qui lui serait apporté ne provoquera pas d’erreur, mais sera
ignoré.
Pour trouver quelle propriété padding employer pour l’objet que
vous cherchez à repositionner, il vous faut consulter les propriétés de
l’objet dans la Référence des propriétés internes. Prenez garde que les
propriétés padding ne sont pas forcément traitées dans l’objet en
question ; il faut alors regarder les objets qui semblent s’en
rapprocher.
Toutes les valeurs padding sont exprimées en espace de portée.
Pour la plupart des objets, la valeur par défaut est aux alentours de
1,0 et parfois moins (cela dépend de chaque objet). Il est possible de
la modifier lorsqu’on a besoin d’un espace vide plus grand (ou plus
petit).
self-alignment-X
Cette propriété sert à aligner les objets sur la gauche, sur la droite
ou à les centrer par rapport au point de référence des objets parents.
Elle peut être utilisée avec tous les objets qui acceptent la
self-alignment-interface. Il s’agit, en général, des objets qui
contiennent du texte. Les valeurs admises sont LEFT,
RIGHT et CENTER. On peut aussi attribuer à
la place une valeur numérique entre -1 et +1,
où -1 signifie alignement sur la gauche, +1
alignement sur la droite, et les nombres intermédiaires déplacent
progressivement le texte de la gauche vers la droite. Des valeurs
numériques supérieures à 1 sont également admises
pour déplacer le texte encore plus loin vers la gauche, ou des
valeurs inférieures à -1 pour déplacer le texte encore
plus loin vers la droite. Un écart de 1 en valeur
correspond à un déplacement de la moitié de la longueur du
texte.
extra-spacing-width
Cette propriété est utilisée pour tous les objets qui acceptent la
item-interface. Elle reçoit deux nombres, le premier étant
ajouté au bord gauche et le second au bord droit. Des nombres
négatifs déplacent le coin vers la gauche, des nombres positifs
vers la droite, si bien que pour élargir un objet, le premier nombre
doit être négatif et le second positif. Attention : tous les
objets n’acceptent pas forcément les deux nombres. Par exemple, l’objet
Accidental ne retient que le premier nombre (coin gauche).
staff-position
staff-position est une propriété de la
staff-symbol-referencer-interface, qui s’applique aux objets
positionnés par rapport à la portée. Elle indique, en demi-espace de
portée, la position verticale des objets par rapport à la ligne médiane
de la portée. C’est bien pratique pour résoudre des problèmes de
collision entre des objets comme les silences valant mesure entière,
les liaisons et les notes de différentes voix.
horizontal-shift
Au sein d’une même voix, toutes les notes intervenant au même instant
musical sont regroupées dans un empilement (une colonne) et est créé un
objet NoteColumn afin de contrôler le positionnement horizontal
de ce groupe de notes – voir « Empilement de notes » dans
Instanciation explicite des voix. Si, et seulement si deux ou
plusieurs empilements au sein d’un même contexte de portée ont une
orientation de hampe identique et se produisent au même instant musical,
les valeurs de leurs propriétés horizontal-shift permettront de
les ordonner, les empilements de rang supérieur étant progressivement
décalés pour éviter les chevauchements des têtes. Cette propriété est
déterminée par les commandes \voiceXXX et peut se voir aménagée
par une commande \override ou, plus habituellemnt, par les
commandes \shiftOn. Notez bien que cette propriété ne fait
qu’affecter un rang aux empilements pour leur décalage ; elle ne
détermine en rien la magnitude du décalage, qui sera augmentera
progressivement et selon un pas proprotionnel à la largeur des têtes de
chaque rang. Le pas, généralement de la moitié de la largeur d’une
tête, peut aller jusqu’à la pleine largeur de tête en cas de groupes
resserrés.
force-hshift
La propriété force-hshift appartient à NoteColumn (en
réalité à la note-column-interface). Le fait de la modifier
permet de déplacer un empilement dans le cas de chevauchement
d’empilements. Notez bien qu’elle sera sans effet en l’absence de
chevauchement. Elle s’exprime en unité appropriée aux colonnes
de notes, à savoir la largeur des têtes de note de la première voix.
Son utilisation est réservée à des situations complexes dans lesquelles
les commandes habituelles \shiftOn
(voir Instanciation explicite des voix) ne suffisent plus à
résoudre les conflits. Elle est alors préférable à l’utilisation de la
propriété extra-offset, dans la mesure où on n’a pas besoin
d’exprimer la distance en espace de portée et où le fait de déplacer
les notes à l’intérieur ou à l’extérieur d’une NoteColumn affecte
d’autres actions comme les fusions de notes.
extra-offsetCette propriété s’applique à tout objet acceptant la
grob-interface. Elle reçoit une paire de nombres qui indiquent
le déplacement supplémentaire dans le sens horizontal et vertical. Des
nombres négatifs déplacent l’objet vers la gauche ou vers le bas.
L’unité utilisée est l’espace de portée. Le déplacement supplémentaire
intervient une fois que la composition des objets est achevée, si bien
qu’un objet peut être repositionné à n’importe quel endroit sans
perturber quoi que ce soit.
positionsCette propriété est très utile pour ajuster manuellement l’inclinaison
et la hauteur des barres de ligature, des liaisons et des n-olets. Elle
est suivie de deux nombres qui donnent la position des extrémités gauche
et droite des barres, liaisons, etc. par rapport à la ligne médiane de
la portée. L’unité de référence est l’intervalle de lignes de portée.
Attention toutefois au fait que les liaisons et phrasés ne peuvent pas
être repositionnés n’importe où. LilyPond commence par dresser la liste
des emplacements possibles pour les liaisons et choisit par défaut la
liaison qui « semble la meilleure ». Si la propriété positions
a été retouchée, la liaison la plus proche de la position demandée sera
retenue dans la liste.
Il est possible qu’un objet ne dispose pas de toutes ces propriétés. Il est donc nécessaire de consulter la RPI pour vérifier quelles sont les propriétés disponibles pour l’objet en question.
Voici une liste d’objets les plus couramment impliqués dans les collisions, avec le nom de l’objet à consulter dans la RPI afin de trouver les propriétés à retoucher pour obtenir un déplacement.
| Type d’objet | Nom d’objet |
|---|---|
| Articulations | Script |
| Barres de ligature | Beam |
| Doigté | Fingering |
| Liaisons de phrasé | Slur |
| Liaisons de prolongation | Tie |
| N-olets | TupletBracket |
| Nuances (verticalement) | DynamicLineSpanner |
| Nuances (horizontalement) | DynamicText |
| Reprises / marques de texte | RehearsalMark |
Texte, par ex. ^"texte" | TextScript |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Fixing overlapping notation
Voyons maintenant comment les propriétés décrites dans la section précédente peuvent nous aider à résoudre les collisions.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
padding@translationof The padding property
En jouant sur la propriété padding (littéralement
« rembourrage »), on augmente (ou on diminue) la distance entre
des symboles qui sont imprimés au-dessus ou en dessous des notes.
c'2\fermata \override Script.padding = #3 b2\fermata
% This will not work, see below: \override MetronomeMark.padding = #3 \tempo 4=120 c'1 | % This works: \override Score.MetronomeMark.padding = #3 \tempo 4=80 d'1 |
Vous remarquerez dans le second exemple à quel point il est important de
préciser le nom du contexte qui contient l’objet. Puisque l’objet
MetronomeMark appartient au contexte Score, le fait de
modifier la propriété dans le contexte Voice passera inaperçu.
Pour plus de détails, voir
(notation)Modification de propriétés section ‘Modification de propriétés’ dans Manuel de notation.
Si on augmente la propriété padding d’un objet alors que celui-ci
fait partie d’un ensemble d’objets positionnés en fonction de leur
outside-staff-priority, cet objet sera déplacé, ainsi que tous
les autres objets du groupe.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
right-padding@translationof The right-padding property
La propriété right-padding joue sur l’espacement entre une
altération et la note sur laquelle elle porte. On ne l’utilise pas
souvent, mais l’espacement par défaut peut se révéler inadéquat avec
certaines altérations ou certains glyphes utilisés en musique
microtonale. Le stencil de l’altération devra alors être construit sous
la forme d’un markup qui contiendra le ou les symboles requis,
comme ceci :
sesquisharp = \markup { \sesquisharp } \relative { c''4 % This prints a sesquisharp but the spacing is too small \once \override Accidental.stencil = #ly:text-interface::print \once \override Accidental.text = #sesquisharp cis4 c % This improves the spacing \once \override Score.AccidentalPlacement.right-padding = #0.6 \once \override Accidental.stencil = #ly:text-interface::print \once \override Accidental.text = #sesquisharp cis4 | }
Cette méthode utilise, pour le stencil des altérations, une retouche
qui ne sera pas reprise par la suite. Le type de stencil est
obligatoirement une procédure, qui consiste ici à imprimer le contenu de
la propriété text de Accidental, déclaré comme étant un
signe sesqui-dièse. Celui-ci est ensuite repoussé devant la tête de
note par la retouche de right-padding.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
staff-padding@translationof The staff-padding property
staff-padding sert à aligner des objets tels que des nuances
sur une ligne fictive à une distance donnée par rapport à la portée en
l’absence d’autre élément de notation qui les repousserait. Ce n’est
pas une propriété de DynamicText mais de
DynamicLineSpanner, car la ligne fictive est destinée à
s’appliquer autant à toutes les nuances, notamment celles qui
sont créées comme des bandeaux en longueur (en anglais Spanners).
Tel est donc le moyen d’aligner les indications de nuance, comme dans
cet exemple repris de la section précédente :
\override DynamicLineSpanner.staff-padding = #3 \relative { a'4\f b\mf a\p b\mp }
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
self-alignment-X@translationof The self-alignment-X property
L’exemple suivant montre comment ajuster le positionnement d’une indication de corde relativement à une hampe, en alignant le coin droit sur le point de référence de la note parente :
\voiceOne <a''\2> \once \override StringNumber.self-alignment-X = #RIGHT <a''\2>
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
staff-position@translationof The staff-position property
Dans une voix, un silence valant une mesure entière peut chevaucher les notes d’une autre voix. Vu que ces silences sont centrés entre les deux barres de mesure, il serait très compliqué de programmer LilyPond pour repérer ces risques de collision dans la mesure où, normalement, toutes les collisions entre notes ou entre notes et silences se produisent sur des notes et silences simultanés. Voici un exemple de collision de ce type :
<< \relative { c'4 c c c } \\ { R1 } >>
Ici, la meilleure solution consiste à déplacer le symbole de pause vers
le bas – puisque cette pause appartient à la voix deux. Par défaut,
dans la \voiceTwo (c’est-à-dire dans la seconde voix d’une
construction <<{ … } \\ { … }>>), la propriété
staff-position est réglée sur -6 pour les
MultiMeasureRest ; nous avons donc besoin de la déplacer, disons,
de quatre demi-intervalles vers le bas, ce qui donne -10.
<< \relative { c'4 c c c } \\ \override MultiMeasureRest.staff-position = #-10 { R1 } >>
C’est mieux que d’utiliser, par exemple, extra-offset,
car la ligne supplémentaire au-dessus du silence est insérée
automatiquement.
Voir (notation)dessin à main levée de liaisons de tenue section ‘dessin à main levée de liaisons de tenue’ dans Manuel de notation pour ce qui différencie des valeurs exactes des valeurs inexactes.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
extra-offset@translationof The extra-offset property
La propriété extra-offset offre la possibilité de contrôler
entièrement le placement d’un objet, aussi bien horizontalement que
verticalement.
Dans l’exemple suivant, la seconde indication de doigté est déplacée légèrement vers la gauche et de 1,8 intervalle de lignes vers le bas :
f'4-5 \once \override Fingering.extra-offset = #'(-0.3 . -1.8) f'4-5
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
positions@translationof The positions property
La propriété positions permet de contrôler manuellement la
position et l’inclinaison des n-olets, coulés, liaisons de phrasé et
barres de ligature.
Voici un exemple où la liaison de phrasé recouvre la liaison d’articulation :
\relative { a'8 \( ( a'16 ) a \) }
Nous pourrions envisager de remonter quelque peu les extrémités de la liaison de phrasé. Commençons par repositionner l’extrémité gauche à 2,5 espaces de portée au-dessus de la ligne médiane, et la droite à 4,5 ; LilyPond choisira la courbe dont les extrémités seront les plus approchantes de celle déterminées :
\once \override PhrasingSlur.positions = #'(2.5 . 4.5) a'8 \( ( a''16 ) a'' \)
C’est déjà mieux, mais ne pourrait-on pas maintenant abaisser un
peu l’extrémité droite de la liaison d’articulation ? Vous
constaterez qu’il n’est pas possible d’y arriver, tout simplement
parce qu’il n’y a pas de meilleur candidat ; la propriété
positions n’est alors d’aucune utilité. Les liaisons,
aussi bien de tenue que d’articulation ou de phrasé, peuvent se
positionner et se dessiner tout en finesse lorsque nécessaire –
voir à ce sujet
(notation)Modification des liaisons section ‘Modification des liaisons’ dans Manuel de notation.
Voici un autre exemple. Comme nous pouvons le constater, les barres de ligature chevauchent les liaisons de tenue :
{ \time 4/2 << \relative { c'1~ 2. e8 f } \\ \relative { e''8 e e e e e e e f2 g } >> << \relative { c'1~ 2. e8 f } \\ \relative { e''8 e e e e e e e f2 g } >> }
On peut y remédier en déplaçant manuellement vers le haut les deux extrémités des ligatures de croches, non plus à 1,81 intervalle au-dessous de la ligne médiane mais, disons, à 1 :
{ \time 4/2 << \relative { c'1~ 2. e8 f } \\ \relative { \override Beam.positions = #'(-1 . -1) e''8 e e e e e e e f2 g } >> << \relative { c'1~ 2. e8 f } \\ \relative { e''8 e e e e e e e f2 g \revert Beam.positions } >> }
Vous remarquerez que la retouche continue de s’appliquer au second bloc de croches de la deuxième voix mais qu’il ne s’applique à aucune des ligatures de la première voix, même dans la seconde mesure. Dès que la dérogation ne doit plus s’appliquer, il suffit de l’annuler comme indiqué ici.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
force-hshift@translationof The force-hshift property
Maintenant, nous sommes prêts à appliquer les dernières corrections à l’exemple de Chopin présenté à la fin de J’entends des Voix, que nous avions laissé dans cet état :
\new Staff \relative { \key aes \major << { c''2 aes4. bes8 } \\ { <ees, c>2 des } \\ \\ { aes'2 f4 fes } >> | <c ees aes c>1 | }
La note intermédiaire du premier accord, le la bémol à la quatrième
voix, doit rester dans le même empilement que la note haute, ce
pourquoi nous utilisons un \shiftOff
Quant au second accord, il serait préférable que le fa s’aligne avec le
la et que la note la plus basse se positionne un peu plus sur la droite
pour éviter que les hampes se chevauchent. Pour cela, nous réglons le
force-hshift au niveau du NoteColumn du ré bémol de telle
sorte qu’il se déplace de la moitié d’un espace de portée vers la
droite et le force-hshift du fa sur zéro. Vous noterez la
présence du \once qui évite la propagation de ces réglages
au-delà de cet instant musical particulier – bien que la présence du
\once et du second \override de la quatrième voix ne
soient pas indispensables dans ce court extrait, ce ne serait pas
montrer l’exemple que de les omettre.
Et voici le résultat final :
\new Staff \relative { \key aes \major << { c''2 aes4. bes8 } \\ { <ees, c>2 \once \override NoteColumn.force-hshift = #0.5 des } \\ \\ { \once \shiftOff aes'2 \once \shiftOff f4 fes } >> | <c ees aes c>1 | }
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Real music example
Pour terminer ce chapitre consacré aux retouches, voici, étape par étape, la mise en forme d’un exemple concret nécessitant un certain nombre de retouches jusqu’à l’obtention du résultat attendu. Cet exemple a été choisi en raison des problèmes inhabituels de notation qu’il soulevait et pour vous apprendre à les résoudre grâce au Manuel de notation. Il n’est pas représentatif d’une opération normale de gravure ; que ces difficultés ne vous découragent donc pas ! Des difficultés comme celles-ci ne sont, heureusement, pas courantes !
Cet exemple est tiré de la Première Ballade de Chopin, Op. 23, mesures 6 à 9 ; cela correspond à la transition entre le Lento d’ouverture et le Moderato. Voici, pour commencer, ce à quoi nous voulons que la partition ressemble ; pour limiter les complications, nous n’avons pas fait apparaître les indications de nuance, de doigté ni de pédale.
Nous constatons tout d’abord que, dans la troisième mesure, la main droite compte quatre voix. Ce sont les cinq croches avec une barre, le do avec liaison, le ré blanche qui se fond avec le ré croche, et le fa dièse noire pointée qui se fond lui aussi avec la croche de même hauteur. Tout le reste se réduit à une seule voix. Le plus simple est donc de créer temporairement ces trois voix supplémentaires au moment opportun. Si vous avez oublié comment faire, reportez-vous à J’entends des Voix et Instanciation explicite des voix. Nous opterons ici pour une déclaration explicite des voix du passage polyphonique, puisque LilyPond est alors plus performant en matière d’évitement des collisions.
Commençons par saisir les notes comme appartenant à deux variables,
mettons en place l’ossature des portées dans un bloc \Score et
voyons ce que LilyPond propose par défaut :
rhMusic = \relative { \new Voice { r2 c''4. g8 | bes1~ | \time 6/4 bes2. r8 % Start polyphonic section of four voices << { c,8 d fis bes a } % continuation of main voice \new Voice { \voiceTwo c,8~ 2 } \new Voice { \voiceThree s8 d2 } \new Voice { \voiceFour s4 fis4. } >> | g2. % continuation of main voice } } lhMusic = \relative { r2 <c' g ees>2 | <d g, d>1 | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
Toutes les notes sont correctes mais l’allure générale est loin d’être satisfaisante. La liaison se heurte à l’indication de mesure lors du changement de métrique, la ligature des croches n’est pas bonne dans la troisième mesure, les notes ne sont pas fusionnées et il manque plusieurs éléments de notation. Commençons par le plus simple. Nous pouvons corriger la ligature des croches en la créant manuellement et nous pouvons facilement ajouter les limites droite et gauche de la liaison de phrasé, puisque tout cela a déjà été traité dans le tutoriel. Voici le résultat :
rhMusic = \relative { \new Voice { r2 c''4.\( g8 | bes1~ | \time 6/4 bes2. r8 % Start polyphonic section of four voices << { c,8 d fis bes a } % continuation of main voice \new Voice { \voiceTwo c,8~ 2 } \new Voice { \voiceThree s8 d2 } \new Voice { \voiceFour s4 fis4. } >> | g2.\) % continuation of main voice } } lhMusic = \relative { r2 <c' g ees>2( | <d g, d>1) | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
La première mesure est maintenant correcte. La seconde contient un
arpège et doit se terminer par une double barre. Comment faire, puisque
cela n’a pas été traité dans le Manuel d’initiation ? C’est alors
qu’il faut nous reporter au Manuel de notation. Quand on cherche
« arpège » et « barre de mesure » dans l’index, on voit aisément qu’il
faut ajouter \arpeggio à un accord pour produire un arpège et
qu’une double barre est le résultat de la commande \bar "||".
Rien de plus facile ! Nous devons ensuite corriger la collision entre
la liaison et l’indication de mesure. Le mieux est de déplacer la
liaison vers le haut. La méthode pour déplacer les objets a déjà été
présentée dans Déplacement d’objets, et l’on sait que, pour des
objets positionnés par rapport à la portée, il nous faut modifier leur
propriété staff-position, exprimée en demi-intervalles de lignes
par rapport à la ligne médiane de la portée. Voici donc la retouche à
insérer juste devant la première note liée ; elle est censée déplacer la
liaison vers le haut de 3,5 demi-intervalles de lignes au-dessus de la
ligne médiane :
\once \override Tie.staff-position = #3.5
Cela s’adjoint à la deuxième mesure, pour donner :
rhMusic = \relative { \new Voice { r2 c''4.\( g8 | \once \override Tie.staff-position = #3.5 bes1~ | \bar "||" \time 6/4 bes2. r8 % Start polyphonic section of four voices << { c,8 d fis bes a } % continuation of main voice \new Voice { \voiceTwo c,8~ 2 } \new Voice { \voiceThree s8 d2 } \new Voice { \voiceFour s4 fis4. } >> | g2.\) % continuation of main voice } } lhMusic = \relative { r2 <c' g ees>2( | <d g, d>1)\arpeggio | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
Venons-en à la troisième mesure et au début de la section Moderato.
Dans le Tutoriel, il est indiqué comment insérer une indication de tempo
à l’aide de la commande \tempo ; pas de problème, du coup, pour
ajouter « Moderato ». Mais comment faire pour fusionner les notes de
différentes voix ? C’est là que le Manuel de notation peut nous venir
en aide. Une recherche sur « fusionnement de notes » dans l’index nous
renvoie au chapitre
(notation)Résolution des collisions section ‘Résolution des collisions’ dans Manuel de notation, et plus
précisément aux commandes permettant de fusionner des notes en fonction
de leur type et selon qu’elles sont pointées ou non. Dans notre exemple,
pour la durée de la polyphonie de la troisième mesure, nous avons besoin
de fusionner deux types de notes ; grâce aux informations trouvées dans
le Manuel de notation, nous ajoutons
\mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn |
au début de cette section et
\mergeDifferentlyHeadedOff \mergeDifferentlyDottedOff |
à la fin, ce qui donne :
rhMusic = \relative { \new Voice { r2 c''4.\( g8 | \once \override Tie.staff-position = #3.5 bes1~ | \bar "||" \time 6/4 bes2.\tempo "Moderato" r8 \mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn % Start polyphonic section of four voices << { c,8 d fis bes a } % continuation of main voice \new Voice { \voiceTwo c,8~ 2 } \new Voice { \voiceThree s8 d2 } \new Voice { \voiceFour s4 fis4. } >> | \mergeDifferentlyHeadedOff \mergeDifferentlyDottedOff g2.\) % continuation of main voice } } lhMusic = \relative { r2 <c' g ees>2( | <d g, d>1)\arpeggio | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
Ces retouches ont permis de fusionner les deux fa dièse mais pas les
deux ré. Pourquoi ? La réponse se trouve dans la même section du
Manuel de notation : les notes à fusionner doivent avoir des hampes
dans des directions opposées et deux notes ne peuvent pas être
fusionnées s’il y a une troisième note dans la même colonne. Ici, les
deux ré ont leur hampe orientée vers le haut et il y a une troisième
note, do. Nous savons changer l’orientation de la hampe avec
\stemDown et le Manuel de notation nous indique également comment
déplacer le do – en produisant un décalage grâce à l’une des commandes
\shift. Mais laquelle ? Le do appartient à la deuxième
voix et n’est pas décalé ; les deux ré appartiennent respectivement
à la première et à la troisième voix, et l’un n’est pas décalé tandis
que l’autre l’est. Il nous faut donc décaler largement le do avec la
commande \shiftOnn pour éviter une interférence avec les deux ré.
Voici ce que donnent ces modifications :
rhMusic = \relative { \new Voice { r2 c''4.\( g8 | \once \override Tie.staff-position = #3.5 bes1~ | \bar "||" \time 6/4 bes2.\tempo "Moderato" r8 \mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn % Start polyphonic section of four voices << { c,8 d fis bes a } % continuation of main voice \new Voice { \voiceTwo % Move the c2 out of the main note column % so the merge will work c,8~ \shiftOnn c2 } \new Voice { \voiceThree % Stem on the d2 must be down to permit merging s8 \stemDown d2 } \new Voice { \voiceFour s4 fis4. } >> | \mergeDifferentlyHeadedOff \mergeDifferentlyDottedOff g2.\) % continuation of main voice } } lhMusic = \relative { r2 <c' g ees>2( | <d g, d>1)\arpeggio | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
Pas loin ! Il ne reste plus que deux problèmes : les ré une
fois fusionnés ne devraient plus avoir de hampe vers le bas, et le do
serait mieux à la droite des ré. Nous savons remédier à ces deux
problèmes grâce aux retouches précédentes : nous allons rendre la
hampe transparente et déplacer le do avec la propriété
force-hshift. Et voici le résultat final :
rhMusic = \relative { \new Voice { r2 c''4.\( g8 | \once \override Tie.staff-position = #3.5 bes1~ | \bar "||" \time 6/4 bes2.\tempo "Moderato" r8 \mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn % Start polyphonic section of four voices << { c,8 d fis bes a } % continuation of main voice \new Voice { \voiceTwo c,8~ % Reposition the c2 to the right of the merged note \once \override NoteColumn.force-hshift = #1.0 % Move the c2 out of the main note column % so the merge will work \shiftOnn c2 } \new Voice { \voiceThree s8 % Stem on the d2 must be down to permit merging \stemDown % Stem on the d2 should be invisible \tweak Flag.transparent ##t d2 } \new Voice { \voiceFour s4 fis4. } >> | \mergeDifferentlyHeadedOff \mergeDifferentlyDottedOff g2.\) % continuation of main voice } } lhMusic = \relative { r2 <c' g ees>2( | <d g, d>1)\arpeggio | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] |
Ce document a été généré le le 13 juillet 2020 par gub en utilisant texi2html 1.82.
Autres langues : English, català, deutsch, español, italiano, 日本語, nederlands.
À propos de la sélection automatique de la langue.