@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*- @ignore Translation of GIT committish: 0 When revising a translation, copy the HEAD committish of the version that you are working on. For details, see the Contributors' Guide, node Updating translation committishes.. @end ignore @c \version "2.14.0" @c Translators: Frédéric Chiasson, Valentin Villenave, Jean-Charles Malahieude @c Translation checkers: Jean-Charles Malahieude, John Mandereau @node Notes simultanées @section Notes simultanées @translationof Simultaneous notes @lilypondfile[quote,ragged-right,line-width=16\cm]{simultaneous-headword.ly} La notion musicale de polyphonie fait référence au fait d'avoir plus d'une voix simultanément dans une pièce. Dans LilyPond, la notion de polyphonie fait référence au fait d'avoir plus d'une voix sur la même portée. @menu * Monophonie:: * Plusieurs voix:: @end menu @node Monophonie @subsection Monophonie @translationof Single voice Nous allons voir ici comment gérer plusieurs notes simultanées dans une même voix. @menu * Notes en accords:: * Répétition d'accords:: * Expressions simultanées:: * Clusters:: @end menu @node Notes en accords @unnumberedsubsubsec Notes en accords @translationof Chorded notes @cindex accords @cindex chevrons @funindex < @funindex > @funindex <...> Un accord est formé en mettant une série de hauteurs entre @code{<} et @code{>}. Un accord peut être suivi d'une durée comme une simple note. @lilypond[verbatim,quote,relative=2] 1 2 4 8. 16 @end lilypond Un accord peut être suivi d'une indication d'articulation comme une simple note. @lilypond[verbatim,quote,relative=2] 1\fermata 2-> 4\prall 8.^| 16-. @end lilypond Certaines notes, au sein même d'un accord, peuvent être affectées d'une articulation ou d'un ornement@tie{}: @lilypond[verbatim,quote,relative=2] 1 c-^ e>2 4 8. 16 @end lilypond Certains éléments de notation, tels que nuances, soufflets et liaisons, ne peuvent se rattacher qu'à l'accord et non aux notes qui le composent, sous peine de ne les voir s'imprimer. @lilypond[verbatim,quote,relative=2] 1 \f ( ) \< \! @end lilypond @cindex accord vide @cindex placeholder events Un accord peut se voir comme un conteneur de notes, articulations et autres éléments rattachés. Par voie de conséquence, un accord dépourvu de note n'a pas de durée ; toute articulation qui lui serait attachée interviendra au même moment que la note ou l'accord qui le suit et lui sera donc combiné -- pour des combinaisons plus complexes, voir @ref{Expressions simultanées}. @lilypond[verbatim,quote,relative=2] \grace { g8[( a b] } <> ) \p \< -. -\markup \italic "sempre staccato" \repeat unfold 4 { c4 e } c1\f @end lilypond @cindex accord et mode relatif @cindex mode relatif et accord Les accords peuvent être saisis en mode relatif. Dans un accord, l'octave de chaque hauteur saisie est fonction de la précédente, à l'exception de la première qui, elle, sera positionnée en fonction de la première hauteur mentionnée dans l'accord précédent ou de la note individuelle précédente. Les autres notes au sein de l'accord se positionnent relativement à la précédente. @lilypond[verbatim,quote,relative=2] 1 @end lilypond Pour plus d'information à propos des accords, voir @ref{Notation des accords}. @seealso Glossaire musicologique : @rglosnamed{chord,accord}. Manuel d'initiation : @rlearning{Combinaison de notes en accords}. Manuel de notation : @ref{Articulations et ornements}, @ref{Notation des accords}. @ref{Octaves relatives}, @ref{Plusieurs voix}. Morceaux choisis : @rlsrnamed{Simultaneous notes, Notes simultanées}. @knownissues Un accord comportant plus de deux notes dans le même @qq{espace de portée} -- tel que @samp{} -- conduit immanquablement à des chevauchements. En fonction de la situation, un meilleur rendu peut nécessiter de recourir à @itemize @item l'utilisation temporaire de @ref{Plusieurs voix}, @samp{<< f! \\ >>}, @item une transcription enharmonique d'une ou plusieurs hauteurs, @samp{}, ou @item des @ref{Clusters}. @end itemize @node Répétition d'accords @unnumberedsubsubsec Répétition d'accords @translationof Chord repetition @cindex accord, répétition @cindex répétition, utilisation de @code{q} Dans le but de vous épargner de la saisie, LilyPond dispose d'un raccourci -- symbolisé par la lettre @code{q} -- qui a pour effet de répéter le dernier accord saisi@tie{}: @lilypond[verbatim,quote,relative=2] 1 q 2 q @end lilypond À l'instar de n'importe quel accord, le symbole de répétition peut être affublé d'une durée, de signes d'articulation, @emph{markups}, liaisons, ligatures@dots{} En fait, c'est la structure du dernier accord qui est dupliquée. @lilypond[verbatim,quote,relative=2] 1\p^"text" q2\<( q8)[-| q8.]\! q16-1-2-3 q8\prall @end lilypond Dans la mesure où le symbole de répétition d'accord enregistre la structure du dernier accord construit, il est tout à fait possible de l'utiliser même après une succession de notes individuelles et de silences@tie{}: @lilypond[verbatim,quote,relative=2] 1 c'4 q2 r8 q8 | q2 c, | @end lilypond Le symbole de répétition d'accord ne prend en charge que les hauteurs, en aucun cas les nuances, articulations ou ornementations, qu'elles aient été attachées aux notes le composant ou à l'ensemble. @lilypond[verbatim,quote,relative=2] 1\sfz c4 q2 r8 q8 | q2 c, | @end lilypond Le seul moyen de les reproduire consiste à utiliser explicitement la fonction @code{\chordRepeats}, en lui adjoignant un argument supplémentaire qui recense les @var{types d'événement} à répéter et qui seraient absents de l'accord construit par un @code{q}. @lilypond[verbatim,quote] \relative c'' { \chordRepeats #'(articulation-event) { 1\sfz c'4 q2 r8 q8-. } | q2 c, | } @end lilypond Comme vous pouvez le constater, l'utilisation de @code{\chordRepeats} au sein d'un bloc @code{\relative} ne produit pas le résultat escompté@tie{}: les événements de l'accord expansés sont identiques à la saisie traditionnelle d'un accord, ce qui a pour conséquence que l'octave affectée par @code{\relative} repose sur le contexte en cours. Dans la mesure où l'imbrication de clauses @code{\relative} n'est pas source d'interférence, l'ajout d'un @code{\relative} à ce qui sera concerné par l'instruction @code{\chordRepeats} permet d'établir une relation d'octave entre les accords dès avant leur expansion. Dans le cas présent, l'intégralité du bloc @code{\relative} intérieur n'affecte en rien ce qui l'entoure, ce qui explique la spécification d'octave attachée à la dernière note. @c Without \new Voice, implicit voice creation does the dumbest thing. @lilypond[verbatim,quote] \new Voice \relative c'' { \chordRepeats #'(articulation-event) \relative c'' { 1\sfz c'4 q2 r8 q8-. } | q2 c | } @end lilypond Les interactions avec @code{\relative} ne se produisent que lors d'un appel explicite de @code{\chordRepeats}@tie{}: l'expansion implicite en début de saisie intervient à un moment où toutes les instances de @code{\relative} ont déjà été interprétées. @seealso Manuel de notation : @ref{Articulations et ornements}, @ref{Notation des accords}. Fichiers d'initialisation : @file{ly/chord-repetition-init.ly}. @node Expressions simultanées @unnumberedsubsubsec Expressions simultanées @translationof Simultaneous expressions Lorsqu'une ou plusieurs expressions musicales sont encadrées par des doubles chevrons, elles sont considérées comme étant simultanées. Si la première expression débute par une note unique ou si l'intégralité de l'expression simultanée est explicitement rattachée à une voix en particulier, elle sera placée sur une seule portée. Dans le cas contraire, les éléments d'une expression simultanée seront placés sur des portées distinctes. Voici deux exemples d'expression simultanée sur une même portée@tie{}: @lilypond[quote,verbatim,relative=2] \new Voice { % explicit single voice << { a4 b g2 } { d4 g c,2 } >> } @end lilypond @lilypond[quote,verbatim,relative=2] % single first note a << { a4 b g } { d4 g c, } >> @end lilypond Cette manière de procéder est utile lorsque les éléments de l'expression ont des rythmes identiques. Dès que vous tenterez d'attacher sur une même hampe des notes de durée différente, vous générerez des erreurs. Notes, articulations et modifications de propriétés au sein d'un même @code{Voice} sont enregistrés et gravés selon l'ordre musical : @lilypond[quote,verbatim,relative=2] 4-. <>-. << c a >> << { c-. } { a s-. } >> @end lilypond La présence de plusieursdifférentes hampes, ligatures, durées ou propriétés au même instant musical nécessite l'utilisation de plusieurs voix. Dans l'exemple suivant, l'expression simultanée génère implicitement plusieurs portées : @lilypond[quote,verbatim,relative=2] % no single first note << { a4 b g2 } { d4 g2 c,4 } >> @end lilypond En pareil cas, des rythmes différents ne sont source d'aucun problème puisqu'ils sont interprétés dans des voix différentes. @cindex collision sur empilement de notes @cindex collisions, ignorer @knownissues Des notes, bien qu'appartenant à des voix différentes, mais dont les hampes ont la même orientation, peuvent se retrouver au même endroit sur la portée, ce quelque soit le décalage que vous auriez pu leur appliquer. Ceci ne manque pas de faire apparaître un message @example warning: ignoring too many clashing note columns @emph{en français :} Avertissement : trop d'empilements de notes se chevauchent. On fera au mieux. @end example lors de la compilation. Le déclenchement de cet avertissement peut être désactivé par une clause @example \override NoteColumn #'ignore-collision = ##t @end example Ceci n'aura pas pour seule conséquence que ce message ne sera plus émis@tie{}; les procédures d'évitement de collision de quelqu'ordre que ce soit seront désactivées, ce qui peut conduire à quelques effets inattendus (voir aussi @emph{Problèmes connus et avertissements} à la rubrique @ref{Résolution des collisions}). @node Clusters @unnumberedsubsubsec Clusters @translationof Clusters @cindex cluster @funindex \makeClusters @funindex makeClusters Un cluster indique un agrégat de sons. On peut le représenter par une plage limitée par un @emph{ambitus} (notes extrêmes). On obtient une telle notation en appliquant la fonction @code{makeClusters} à une séquence d'accords, comme @lilypond[quote,relative=2,verbatim] \makeClusters { 2 } @end lilypond Des notes ordinaires et des clusters peuvent cohabiter sur une même portée, y compris simultanément -- en pareil cas, rien ne sera fait pour tenter d'empêcher les chevauchements entre notes et clusters. @seealso Glossaire musicologique : @rglos{cluster}. Morceaux choisis : @rlsrnamed{Simultaneous notes, Notation simultanée}. Référence des propriétés internes : @rinternals{ClusterSpanner}, @rinternals{ClusterSpannerBeacon}, @rinternals{Cluster_spanner_engraver}. @knownissues L'apparence d'un cluster sera extrêmement resserrée s'il ne comporte au moins deux accords. Dans la mesure où un cluster ne possède pas de hampe, il n'y a aucun moyen d'en connaître la durée@tie{}; cependant la longueur du signe imprimé dépend directement de la durée affectée aux accords qui le définissent. Seul un silence peut séparer deux clusters. Les clusters ne sont pas reproduits en MIDI. @node Plusieurs voix @subsection Plusieurs voix @translationof Multiple voices Nous allons nous intéresser, dans les paragraphes qui suivent, à la gestion de notes simultanées réparties sur plusieurs voix ou plusieurs portées. @menu * Polyphonie sur une portée:: * Styles de voix:: * Résolution des collisions:: * Regroupement automatique de parties:: * Saisie de musique en parallèle:: @end menu @node Polyphonie sur une portée @unnumberedsubsubsec Polyphonie sur une portée @translationof Single-staff polyphony @cindex polyphonie, portée simple @cindex voix @cindex paroles assignées à une voix @funindex \voiceOne @funindex voiceOne @funindex \voiceOne ... \voiceFour @funindex Voice @funindex \oneVoice @funindex oneVoice @strong{@i{Instanciation explicite des voix}} La manière la plus facile d'entrer des fragments avec plus d'une voix sur une portée est la suivante@tie{}: @lilypond[quote,relative=3,verbatim] \new Staff << \new Voice = "first" { \voiceOne r8 r16 g e8. f16 g8[ c,] f e16 d } \new Voice= "second" { \voiceTwo d16 c d8~ d16 b c8~ c16 b c8~ c16 b8. } >> @end lilypond @noindent Vous constaterez que les voix sont créées explicitement et qu'elles sont nommées. Les commandes @code{\voiceOne} @dots{} @code{\voiceFour} déterminent les voix de telle sorte que les première et troisième auront des hampes vers le haut, et les deuxième et quatrième vers le bas. D'autre part, les notes des troisième et quatrième voix seront quelque peu décalées, tout comme leurs silences, afin d'éviter les collisions. La commande @code{\oneVoice} permet de retrouver les réglages par défaut. @strong{@i{Polyphonie temporaire}} Un fragment temporairement polyphonique se construit de la manière suivante@tie{}: @example << @{ \voiceOne ... @} \new Voice @{ \voiceTwo ... @} >> \oneVoice @end example @noindent En fait, la première expression d'une polyphonie temporaire reste dans le même contexte @code{Voice} que celui existant auparavant et qui perdurera après ce fragment. Les autres expressions entre doubles chevrons seront assignées à des voix temporaires distinctes. C'est la raison pour laquelle les paroles qui suivaient la voix avant la polyphonie continueront à le faire durant ce passage polyphonique et après lui@tie{}: @lilypond[quote, verbatim, relative=2] << \new Voice = "melody" { a4 << { \voiceOne g f } \new Voice { \voiceTwo d2 } >> \oneVoice e4 } \new Lyrics \lyricsto "melody" { This is my song. } >> @end lilypond @noindent Vous remarquerez que les commandes @code{\voiceOne} et @code{\voiceTwo} permettent d'obtenir des réglages différents pour chacune des voix. @strong{@i{La construction avec un double antislash}} @cindex couches @cindex calques @funindex \\ Une construction de la forme @code{<< @{...@} \\ @{...@} >>}, dans laquelle plusieurs expressions sont séparées par des doubles obliques inversées, se comporte différemment de celle sans séparateur@tie{}: @strong{tous} les membres de cette construction seront assignés à de nouveaux contextes de voix. Ces contextes de voix, créés implicitement, portent les noms @code{"1"}, @code{"2"}, etc. Dans chacun de ces contextes, le positionnement des liaisons, la direction des hampes, etc. sont réglés de manière appropriée. En voici un exemple@tie{}: @lilypond[quote,relative=3,verbatim] << { r8 r16 g e8. f16 g8[ c,] f e16 d } \\ { d16 c d8~ d16 b c8~ c16 b c8~ c16 b8. } >> @end lilypond Cette syntaxe peut être utilisée dans la mesure où la création puis la disparition de voix temporaires sont sans conséquence. Les réglages de ces voix créées implicitement sont les mêmes que si elles avaient été créées à l'aide des commandes @code{\voiceOne} à @code{\voiceFour}, dans leur ordre d'apparition. Dans l'exemple qui suit, la voix intermédiaire a des hampes vers le haut. Nous la plaçons donc en troisième position, de telle sorte qu'elle adopte les réglages de @code{\voiceThree} qui correspondent à ce que nous voulons. Grâce à des espaces invisibles, nous évitons de surcharger la portée avec des demis soupirs. @lilypond[quote,relative=3,verbatim] << { r8 g g g g f16 ees f8 d } \\ { ees,8 r ees r d r d r } \\ { d'8 s c s bes s a s } >> @end lilypond En dehors des cas les plus simples, nous vous invitons à toujours créer les contextes de voix de manière explicite. Voir à ce sujet @rlearning{Contextes et graveurs} et @rlearning{Instanciation explicite des voix}. @strong{@i{Ordre des voix}} L'ordre dans lequel doivent apparaître les voix d'une construction simultanée suit le schéma suivant@tie{}: @example Voix 1: la plus haute Voix 2: la plus basse Voix 3: deuxième plus haute Voix 4: deuxième plus basse Voix 5: troisième plus haute Voix 6: troisième plus basse etc. @end example Cette présentation en entonnoir peut sembler quelque peu contre-intuitive@tie{}; elle simplifie cependant grandement le processus de mise en forme. Vous noterez que les hampes des voix au numéro impair vont vers le haut, celles des voix paires vers le bas@tie{}: @lilypond[quote,verbatim] \new Staff << \time 2/4 { f''2 } % 1: highest \\ { c'2 } % 2: lowest \\ { d''2 } % 3: second-highest \\ { e'2 } % 4: second-lowest \\ { b'2 } % 5: third-highest \\ { g'2 } % 6: third-lowest >> @end lilypond @warning{Paroles et objets étendus (liaisons, soufflets etc.) ne peuvent passer d'une voix à l'autre.} @strong{@i{Identité rythmique}} Lorsque l'on doit saisir des fragments de musique parallèle qui ont le même rythme, on peut les combiner dans un contexte de voix unique et par voie de conséquence former des accords. Il suffit pour cela de les regrouper dans une construction de musique simultanée simple au sein d'une voix explicite@tie{}: @lilypond[quote,relative=2,verbatim] \new Voice << { e4 f8 d e16 f g8 d4 } { c4 d8 b c16 d e8 b4 } >> @end lilypond Prenez garde que les différents éléments doivent impérativement avoir la même structure rythmique, sous peine de ligature aléatoire et de messages d'avertissement. @predefined @code{\voiceOne}, @code{\voiceTwo}, @code{\voiceThree}, @code{\voiceFour}, @code{\oneVoice}. @endpredefined @seealso Manuel d'initiation : @rlearning{Instanciation explicite des voix}, @rlearning{Les voix contiennent la musique}. Manuel de notation : @ref{Hampes}, @ref{Portées de percussion}, @ref{Silences invisibles}. Morceaux choisis : @rlsrnamed{Simultaneous notes, Notation simultanée}. @node Styles de voix @unnumberedsubsubsec Styles de voix @translationof Voice styles @cindex voix, styles @cindex style de voix @cindex colorier des voix @cindex têtes de note, styles @funindex \voiceOneStyle @funindex \voiceTwoStyle @funindex \voiceThreeStyle @funindex \voiceFourStyle @funindex \voiceNeutralStyle Opter pour des couleurs et des têtes de notes spécifiques selon la voix permet de les identifier plus facilement@tie{}: @lilypond[quote,relative=2,verbatim] << { \voiceOneStyle d4 c2 b4 } \\ { \voiceTwoStyle e,2 e } \\ { \voiceThreeStyle b2. c4 } \\ { \voiceFourStyle g'2 g } >> @end lilypond La commande @code{\voiceNeutralStyle} permet de revenir à la présentation normale. @predefined @code{\voiceOneStyle}, @code{\voiceTwoStyle}, @code{\voiceThreeStyle}, @code{\voiceFourStyle}, @code{\voiceNeutralStyle}. @endpredefined @seealso Manuel d'initiation : @rlearning{Autres sources de documentation}, @rlearning{J'entends des Voix}. Morceaux choisis : @rlsrnamed{Simultaneous notes, Notation simultanée}. @node Résolution des collisions @unnumberedsubsubsec Résolution des collisions @translationof Collision resolution @cindex fusion de notes @cindex collision de notes @cindex collisions @cindex décalage de note @cindex note, décalage @cindex multiples voix @cindex voix multiples @cindex polyphonie @cindex décalage de voix @cindex voix, décalage @cindex silences, décalage automatique @funindex \shiftOn @funindex shiftOn @funindex \shiftOnn @funindex shiftOnn @funindex \shiftOnnn @funindex shiftOnnn @funindex \shiftOff @funindex shiftOff @funindex \mergeDifferentlyDottedOn @funindex mergeDifferentlyDottedOn @funindex \mergeDifferentlyDottedOff @funindex mergeDifferentlyDottedOff @funindex \mergeDifferentlyHeadedOn @funindex mergeDifferentlyHeadedOn @funindex \mergeDifferentlyHeadedOff @funindex mergeDifferentlyHeadedOff Les notes de hauteur identique appartenant à des voix différentes, même si leur hampe sont opposées, verront leur tête automatiquement fusionner. Les notes dont la tête diffère ou bien qui ont la hampe dans la même direction ne seront pas automatiquement fusionnées. Les silences, lorsqu'ils sont dans une autre voix et à l'opposé des hampes seront décalés verticalement. Vous constaterez, dans l'exemple suivant, que la fusion échoue aux premier et troisième temps de la première mesure, ainsi qu'au premier temps de la deuxième mesure. @lilypond[quote,verbatim,relative=2] << { c8 d e d c d c4 g'2 fis } \\ { c2 c8. b16 c4 e,2 r } \\ { \oneVoice s1 e8 a b c d2 } >> @end lilypond Cependant, vous pouvez fusionner une tête de blanche avec une tête de croche -- jamais avec une noire. Les têtes du premier temps de la première mesure ont bien fusionné@tie{}: @lilypond[quote,verbatim,relative=2] << { \mergeDifferentlyHeadedOn c8 d e d c d c4 g'2 fis } \\ { c2 c8. b16 c4 e,2 r } \\ { \oneVoice s1 e8 a b c d2 } >> @end lilypond De même, vous pouvez fusionner les têtes de notes pointées et non pointées comme au troisième temps de la première mesure@tie{}: @lilypond[quote,relative=2,verbatim] << { \mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn c8 d e d c d c4 g'2 fis } \\ { c2 c8. b16 c4 e,2 r } \\ { \oneVoice s1 e8 a b c d2 } >> @end lilypond Lorsque trois notes ou plus s'agglutinent dans un même empilement, @code{\mergeDifferentlyHeadedOn} ne peut mener à bien la fusion des deux notes qui devraient l'être. Pour obtenir une fusion optimale, appliquez un décalage (@code{\shift}) à la note qui ne devrait pas fusionner. Ici, on applique un @code{\shiftOn} pour décaler le @notation{sol} de l'empilement@tie{}; le rendement de @code{\mergeDifferentlyHeadedOn} est alors comme il faut. @lilypond[quote,relative=2,verbatim] << { \mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn c8 d e d c d c4 \shiftOn g'2 fis } \\ { c2 c8. b16 c4 e,2 r } \\ { \oneVoice s1 e8 a b c d2 } >> @end lilypond La commande @code{\shiftOn} permet, sans pour autant le forcer, un décalage des notes d'une voix en particulier. Une note ou un accord appartenant à cette voix ne seront décalés que si leur hampe menaçait d'entrer en collision avec une hampe appartenant à une autre voix allant dans la même direction. La commande @code{\shiftOff} interdit l'apparition de décalage. Les voix externes -- habituellement les voix une et deux -- sont affectées de @code{\shiftOff}, alors que les voix internes -- trois et quatre -- sont affectées de @code{\shiftOn}. Lorsqu'un décalage intervient, les notes dont les hampes sont ascendantes (voix impaire) iront vers la droite, et les notes à hampe descendante (voix paire) iront vers la gauche. Voici un exemple qui vous permettra de bien visualiser ce qui se passe en interne. @warning{Lorsqu'il y a trois voix ou plus, prenez garde au fait que l'ordre d'apparition des voix dans votre fichier ne correspond pas à l'ordre vertical des voix tel qu'il apparaîtra sur la portée.} @c KEEP LY @lilypond[quote,verbatim] \new Staff \relative c'' { %% saisie abrégée << { f2 } % 1: extrême haute \\ { g,2 } % 2: extrême basse \\ { d'2 } % 3: intermédiaire haute \\ { b2 } % 4: intermédiaire basse >> %% expansion en interne de ce qui précède << \new Voice = "1" { \voiceOne \shiftOff f'2 } \new Voice = "2" { \voiceTwo \shiftOff g,2 } \new Voice = "3" { \voiceThree \shiftOn d'2 } % décale à droite \new Voice = "4" { \voiceFour \shiftOn b2 } % décale à gauche >> } @end lilypond Les commandes @code{\shiftOnn} et @code{\shiftOnnn} sont des niveaux supplémentaires de décalage qui peuvent s'adopter temporairement dans certaines situations complexes -- voir @rlearning{Exemple concret}. Les têtes de notes ne fusionneront que dans la mesure où leur hampe sont opposées -- implicitement parce qu'appartenant aux voix une ou deux, ou bien explicitement. @predefined @code{\mergeDifferentlyDottedOn}, @code{\mergeDifferentlyDottedOff}, @code{\mergeDifferentlyHeadedOn}, @code{\mergeDifferentlyHeadedOff}. @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn}, @code{\shiftOff}. @endpredefined @snippets @lilypondfile[verbatim,quote,texidoc,doctitle] {additional-voices-to-avoid-collisions.ly} @lilypondfile[verbatim,quote,texidoc,doctitle] {forcing-horizontal-shift-of-notes.ly} @seealso Glossaire musicologique : @rglosnamed{polyphony,polyphonie}. Manuel d'initiation : @rlearning{Exemple concret}, @rlearning{Les voix contiennent la musique}, @rlearning{Notes simultanées}. Morceaux choisis : @rlsrnamed{Simultaneous notes, Notation simultanée}. Référence des propriétés internes : @rinternals{NoteColumn}, @rinternals{NoteCollision}, @rinternals{RestCollision}. @cindex collisions, ignorer @knownissues Une clause @code{\override NoteColumn #'ignore-collision = ##t} aura pour effet une fusion incorrecte des têtes de note différentes à partir de voix différentes. @lilypond[quote,relative=1,verbatim] \mergeDifferentlyHeadedOn << { c16 a' b a } \\ { c,2 } >> \override NoteColumn #'ignore-collision = ##t << { c16 a' b a } \\ { c,2 } >> @end lilypond @ignore @c TODO investigate! Sometimes it works, sometimes not. --FV The requirements for successfully merging different note heads that are at the same time differently dotted are not clear. @end ignore @node Regroupement automatique de parties @unnumberedsubsubsec Regroupement automatique de parties @translationof Automatic part combining @cindex regroupement automatique de parties @cindex parties, combiner des @cindex combinaison de parties @cindex a due @cindex solo @funindex \partcombine @funindex partcombine Le regroupement automatique de parties vous permet de fusionner deux pupitres sur une seule portée, ceci dans le but de créer des partitions d'orchestre. Lorsque les deux parties sont identiques sur une certaine durée, une seule s'affiche. Lorsqu'elles diffèrent, deux voix séparées apparaissent, avec des hampes dont la direction est gérée automatiquement. Vous pouvez aussi identifier et faire ressortir les solos et parties @emph{a due}. Voici la syntaxe qui permet de combiner des parties@tie{}: @example \partcombine @var{expression_musicale_1} @var{expression_musicale_2} @end example L'exemple suivant illustre les fonctionnalités élémentaires du combinateur de parties@tie{}: positionner les parties sur une portée, gérer la direction des hampes et de la polyphonie. Les identifiants sont les mêmes pour la combinaison et les parties séparées. @lilypond[quote,verbatim] instrumentOne = \relative c' { c4 d e f | R1 | d'4 c b a | b4 g2 f4 | e1 | } instrumentTwo = \relative g' { R1 | g4 a b c | d4 c b a | g4 f( e) d | e1 | } << \new Staff \instrumentOne \new Staff \instrumentTwo \new Staff \partcombine \instrumentOne \instrumentTwo >> @end lilypond Les notes de la troisième mesure n'apparaissent qu'une seule fois, alors qu'elles ont été spécifiées deux fois (une fois dans chacune des parties). La direction des hampes et des liaisons de tenue ou de phrasé est gérée automatiquement, selon qu'il s'agisse d'un solo ou d'un unisson. La première partie, dont le contexte s'appellera @code{one}, aura toujours ses hampes dirigées vers le haut et sera notée @qq{Solo}, alors que la deuxième, appelée @code{two}, aura des hampes vers le bas et sera notée @qq{Solo@tie{}II}. Les parties à l'unisson seront estampillées d'un @qq{a2} par défaut. LilyPond interprète dans un contexte @code{Voice} chacun des arguments fournis à @code{\partcombine}. Si vous travaillez avec des octaves relatives, spécifiez @code{\relative} dans chacune des expressions musicales, comme ceci@tie{}: @example \partcombine \relative @dots{} @var{expression_musicale_1} \relative @dots{} @var{expression_musicale_2} @end example @noindent Une section @code{\relative} à l'extérieur du @code{\partcombine} restera sans effet sur les hauteurs de @code{@var{expression_musicale_1}} ou de @code{@var{expression_musicale_2}}. @funindex \partcombineChords @funindex partcombineChords @funindex \partcombineApart @funindex partcombineApart @funindex \partcombineUnisono @funindex partcombineUnisono @funindex \partcombineSoloI @funindex partcombineSoloI @funindex \partcombineSoloII @funindex partcombineSoloII @funindex \partcombineAutomatic @funindex partcombineAutomatic En matière d'édition professionnelle, les voix sont souvent maintenues séparément et sur une durée conséquente, bien que les notes des différentes voix soient les mêmes et pourraient donc être présentées à l'unisson. Dans la mesure où @code{\partcombine} considère les notes séparément, combiner des notes en accord ou indiquer un solo ne serait pas optimal en pareil cas. LilyPond dispose alors de certaines commandes qui permettent d'influencer le comportement de la fonction @code{\partcombine}@tie{}: Les commandes se terminant par @code{...Once} n'affectent que la note qui les suit directement dans l'expression musicale. @itemize @item @code{\partcombineApart} et @code{\partcombineApartOnce} maintiennent les notes dans des voix séparées même si elles peuvent se combiner en accord ou en unisson. @item @code{\partcombineChords} et @code{\partcombineChordsOnce} combinent les notes en accords. @item @code{\partcombineUnisono} et @code{\partcombineUnisonoOnce} combinent les voix en un @qq{unisson}. @item @code{\partcombineSoloI} et @code{\partcombineSoloIOnce} affichent exclusivement la première voix et l'affublent d'un @qq{Solo}. @item @code{\partcombineSoloII} et @code{\partcombineSoloIIOnce} affichent exclusivement la deuxième voix et l'affublent d'un @qq{Solo}. @item @code{\partcombineAutomatic} et @code{\partcombineAutomaticOnce} annulent les effets des dérogations précédentes et activent le comportement standard de la fonction @code{\partcombine}. @end itemize @lilypond[quote,verbatim] instrumentOne = \relative c' { \partcombineApart c2^"apart" e | \partcombineAutomatic e2^"auto" e | \partcombineChords e'2^"chord" e | \partcombineAutomatic c2^"auto" c | \partcombineApart c2^"apart" \partcombineChordsOnce e^"chord once" | c2 c | } instrumentTwo = \relative c' { c2 c | e2 e | a,2 c | c2 c' | c2 c | c2 c | } << \new Staff { \instrumentOne } \new Staff { \instrumentTwo } \new Staff { \partcombine \instrumentOne \instrumentTwo } >> @end lilypond @snippets @lilypondfile[verbatim,quote,texidoc,doctitle] {combining-two-parts-on-the-same-staff.ly} @lilypondfile[verbatim,quote,texidoc,doctitle] {changing-partcombine-texts.ly} @seealso Glossaire musicologique : @rglos{a due}, @rglosnamed{part,partie}. Manuel de notation : @ref{Écriture de parties séparées}. Morceaux choisis : @rlsrnamed{Simultaneous notes, Notation simultanée}. Référence des propriétés internes : @rinternals{PartCombineMusic}, @rinternals{Voice}. @knownissues Les différentes commandes @code{\partcombine...} ne prennent en charge que deux voix. De la même manière, le combinateur n'est pas conçu pour travailler avec des paroles@tie{}; il s'arrête dès qu'il est explicitement fait appel à l'une des voix pour y attacher des paroles. @code{\partcombine...} ne peut s'inscrire ni dans un bloc @code{\times}, ni dans un bloc @code{\relative}. Lorsque @code{printPartCombineTexts} est actif et que les deux voix jouent souvent les mêmes notes, le combinateur peut afficher @code{a2} plus d'une fois par mesure. @code{\partcombine} n'examine que l'attaque des notes. Il n'est donc pas en mesure de déterminer si une note attaquée précédemment est encore jouée ou non, ce qui peut engendrer quelques problèmes. En interne, @code{\partcombine} interprète les deux arguments en tant que @code{Voice}s, dénommées @code{one} et @code{two}, puis décide de quand les parties seront fusionnées. Par conséquent, si les arguments changent pour d'autres noms de contexte @rinternals{Voice}, les événements qu'ils contiendraient seront ignorés. Certaines considérations apparaissent aussi dans les chapitres @ref{Tablatures par défaut} et @ref{Barres de ligature automatiques}. @node Saisie de musique en parallèle @unnumberedsubsubsec Saisie de musique en parallèle @translationof Writing music in parallel @cindex écrire la musique en parallèle @cindex musique en parallèle @cindex musique entremêlée @funindex \parallelMusic @funindex parallelMusic On peut écrire plusieurs voix de façon entremêlée. La fonction @code{\parallelMusic} prend en charge une liste des variables à créer, ainsi qu'une expression musicale. Le contenu des différentes mesures de l'expression musicale deviennent les valeurs des variables respectives que vous pourrez ensuite utiliser pour imprimer la partition. @warning{Les contrôles de barre de mesure @code{|} sont obligatoires et les mesures doivent être de longueur identique.} @lilypond[quote,verbatim] \parallelMusic #'(voiceA voiceB voiceC) { % Bar 1 r8 g'16 c'' e'' g' c'' e'' r8 g'16 c'' e'' g' c'' e'' | r16 e'8.~ e'4 r16 e'8.~ e'4 | c'2 c'2 | % Bar 2 r8 a'16 d'' f'' a' d'' f'' r8 a'16 d'' f'' a' d'' f'' | r16 d'8.~ d'4 r16 d'8.~ d'4 | c'2 c'2 | } \new StaffGroup << \new Staff << \voiceA \\ \voiceB >> \new Staff { \clef bass \voiceC } >> @end lilypond Vous pouvez travailler en mode relatif. Notez cependant que la commande @code{\relative} n'apparaît pas au sein du bloc @code{\parallelMusic}. Le calcul des hauteurs relatives s'effectue voix par voix, et non au fil des lignes saisies@tie{}; en d'autres termes, les notes de la @code{voiceA} ignorent tout de celles de la @code{voiceB}. @lilypond[quote,verbatim] \parallelMusic #'(voiceA voiceB voiceC) { % Bar 1 r8 g16 c e g, c e r8 g,16 c e g, c e | r16 e8.~ e4 r16 e8.~ e4 | c2 c | % Bar 2 r8 a,16 d f a, d f r8 a,16 d f a, d f | r16 d8.~ d4 r16 d8.~ d4 | c2 c | } \new StaffGroup << \new Staff << \relative c'' \voiceA \\ \relative c' \voiceB >> \new Staff \relative c' { \clef bass \voiceC } >> @end lilypond Ceci fonctionne bien avec la musique pour piano. L'exemple suivant affecte quatre mesures à quatre variables@tie{}: @lilypond[quote,verbatim] global = { \key g \major \time 2/4 } \parallelMusic #'(voiceA voiceB voiceC voiceD) { % Bar 1 a8 b c d | d4 e | c16 d e fis d e fis g | a4 a | % Bar 2 e8 fis g a | fis4 g | e16 fis g a fis g a b | a4 a | % Bar 3 ... } \score { \new PianoStaff << \new Staff { \global << \relative c'' \voiceA \\ \relative c' \voiceB >> } \new Staff { \global \clef bass << \relative c \voiceC \\ \relative c \voiceD >> } >> } @end lilypond @seealso Manuel d'initiation : @rlearning{Organisation du code source avec des variables}. Morceaux choisis : @rlsrnamed{Simultaneous notes,Notation simultanée}.