<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- header_tag --> <html lang="en"> <head> <title>Introduction à la structure de fichier LilyPond - GNU LilyPond - manuel d'initiation</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="description" content="GNU LilyPond - manuel d'initiation"> <meta name="generator" content="makeinfo 4.11"> <link title="Top" rel="start" href="index.fr.html#Top"> <link rel="up" href="How-LilyPond-input-files-work.fr.html#How-LilyPond-input-files-work" title="Organisation des fichiers LilyPond"> <link rel="next" href="Score-is-a-_0028single_0029-compound-musical-expression.fr.html#Score-is-a-_0028single_0029-compound-musical-expression" title="La partition est une unique expression musicale composée"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <!-- Copyright (C) 1999--2008 par les auteurs _The translation of the following copyright notice is provided for courtesy to non-English speakers, but only the notice in English legally counts._ _La traduction de la notice de droits d'auteur ci-dessous vise à faciliter sa compréhension par le lecteur non anglophone, mais seule la notice en anglais a valeur légale._ Vous avez le droit de copier, distribuer et/ou modifier ce document selon les termes de la Licence GNU de documentation libre, version 1.1 ou tout autre version ultérieure publiée par la Free Software Foundation, ``sans aucune section invariante''. Une copie de la licence est fournie à la section ``Licence GNU de documentation libre''. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections. A copy of the license is included in the section entitled ``GNU Free Documentation License''. --> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"><!-- pre.display { font-family:inherit } pre.format { font-family:inherit } pre.smalldisplay { font-family:inherit; font-size:smaller } pre.smallformat { font-family:inherit; font-size:smaller } pre.smallexample { font-size:smaller } pre.smalllisp { font-size:smaller } span.sc { font-variant:small-caps } span.roman { font-family:serif; font-weight:normal; } span.sansserif { font-family:sans-serif; font-weight:normal; } hr { border:0; height:1; color: #000000; background-color: #000000; } /* hr { border: none; height: 1px; color: #666666; background-color: #666666; } body { border-left: 1px solid #666666; border-right: 1px solid #666666; color: #332d28; margin-right: auto; margin-left: auto; width: 60em; list-style-type: square; font-family: Arial,Helvetica,sans-serif; padding-right: 1em; padding-left: 1em; } a { border-bottom: 1px dashed #344242; text-decoration: none; color: #344242; } a:link { text-decoration: none; } a:visited { border-bottom: 1px dashed #666666; color: #666666; } a:active { border-bottom: 1px solid #00cccc; color: #00cccc; } a:hover { border-bottom: 1px solid #1d7b85; color: #1d7b85; } blockquote { border: 1px solid #cccccc; padding: 3px; width: 40em; } .node { border-left: 1px solid #666666; margin: -0.5em 0px 1em; padding: 2px 1px 0px; font-style: italic; } .node a { border: none; text-decoration: underline; font-style: normal; font-weight: bold; } .verbatim { font-family: "Courier New",Courier,monospace; } .unnumberedsubsubsec { font-size: large; color: #1d7b85; } .subsubheading { font-size: large; color: #3b220d; } .contents { border: 1px dashed #339999; margin: 3px 2em; list-style-type: square; padding-right: 1em; width: 40em; background-color: #fcfff9; } .contents a { border-bottom: 1px dashed #423d34; text-decoration: none; color: #423d34; } .contents a:visited { border-bottom: 1px dashed #666666; color: #666666; } .contents a:active { border-bottom: 1px solid #f0d86d; color: #f0d86d; } .contents a:hover { border-bottom: 1px solid #3b220d; color: #3b220d; } .menu { border-left: 1px dashed #339999; margin: 3px 2em 1em; list-style-type: square; padding-left: 1.4em; width: 40em; } .unnumbered { } h2 { font-size: x-large; color: #1d7b85; } */ --></style> </head> <BODY BGCOLOR=WHITE TEXT=BLACK> <div class="node"> <p> <a name="Introduction-to-the-LilyPond-file-structure"></a> Suivant : <a rel="next" accesskey="n" href="Score-is-a-_0028single_0029-compound-musical-expression.fr.html#Score-is-a-_0028single_0029-compound-musical-expression">La partition est une unique expression musicale composée</a>, Haut : <a rel="up" accesskey="u" href="How-LilyPond-input-files-work.fr.html#How-LilyPond-input-files-work">Organisation des fichiers LilyPond</a> <hr> </div> <h4 class="subsection">3.1.1 Introduction à la structure de fichier LilyPond</h4> <p><a name="index-format-d_0027entr_00c3_00a9e-196"></a><a name="index-structure-de-ficher-197"></a> Un fichier d'entrée LilyPond ressemble à : <pre class="example">\version "2.11.57"<!-- /@w --> \score { <var>...expression musicale composite...</var> % c'est là qu'est la musique<font size="-4"> </font>! \header { } \layout { } \midi { } } </pre> <p class="noindent">Il existe de nombreuses variantes à ce schéma simpliste, mais cet exemple est un préambule à notre propos. <p><a name="index-g_t_005cbook-198"></a><a name="index-g_t_005cbook-199"></a> <a name="index-g_t_005cscore-200"></a><a name="index-g_t_005cscore-201"></a> <a name="index-book_002c-livre_002c-ouvrage-202"></a><a name="index-livre-203"></a><a name="index-score_002c-partition-204"></a><a name="index-partition-205"></a> Jusqu'à présent, les exemples que nous avons pu voir ne faisaient pas appel à la commande <code>\score{}</code>. En fait, LilyPond ajoute automatiquement les commandes nécessaires au traitement d'un code simpliste. LilyPond considère <pre class="example">\relative c'' { c4 a d c } </pre> <p class="noindent">comme un racourci de <pre class="example">\book { \score { \new Staff { \new Voice { \relative c'' { c4 a b c } } } \layout { } } } </pre> <p>En d'autres termes, si le code n'est constitué que d'une expression musicale simple, LilyPond interprètera le fichier tout comme si cette expression était incluse dans les commandes de notre premier exemple. <p><a name="index-implicit-contexts-206"></a> <strong>Attention :</strong> de nombreux exemples, dans la documentation de LilyPond, ne font pas apparaître les commandes <code>\new Staff</code> ou <code>\new Voice</code>, même si elles seront créées implicitement. Ce qui n'est pas primordial pour des exemples simples le devient dès que la situation devient un peu plus complexe. Le fait de ne pas déclarer explicitement un contexte peut alors amener à des résultats quelque peu surprenants, comme la création d'une portée supplémentaire et indésirable. La manière de créer explicitement des contextes est vue plus en détails au chapitre <a href="Contexts-and-engravers.fr.html#Contexts-and-engravers">Contextes et graveurs</a>. <p><table class="cartouche" summary="cartouche" border="1"><tr><td> <b>Note :</b> Dès lors que votre musique dépasse quelques lignes, nous vous engageons fortement à créer explicitement les voix et portées. </td></tr></table> <p>Mais revenons à notre premier exemple, et penchons nous tout d'abord sur la commande <code>\score</code>. <p>Un bloc <code>\score</code> doit contenir une et une seule expression musicale, exprimée immédiatement à la suite de la commande <code>\score</code>. Rappelez-vous que cette expression peut être n'importe quoi, d'une note isolée à un gigantesque <pre class="example">{ \new GrandStaff << <var>...collez ici la partition complète d'un opéra de Wagner...</var> >> } </pre> <p class="noindent">Dès lors que tout cela est entre accolades : <code>{ ... }</code>, LilyPond le considère comme une et une seule expression musicale. <p>Comme nous l'avons vu précédemment, un bloc <code>\score</code> peut contenir d'autres informations : <pre class="example">\score { { c'4 a b c' } \header { } \layout { } \midi { } } </pre> <p><a name="index-g_t_005cheader-207"></a><a name="index-g_t_005cheader-208"></a> <a name="index-g_t_005clayout-209"></a><a name="index-g_t_005clayout-210"></a> <a name="index-g_t_005cmidi-211"></a><a name="index-g_t_005cmidi-212"></a> <a name="index-header-213"></a><a name="index-en_002dt_00c3_00aate-214"></a><a name="index-layout-215"></a><a name="index-mise-en-forme-216"></a><a name="index-midi-217"></a> Gardez à l'esprit que ces trois commandes – <code>\header</code>, <code>\layout</code> et <code>\midi</code> – sont spécifiques : à l'inverse de toutes les commandes débutant par une oblique inversée (<em>backshash</em> pour <code>\</code>), <em>elles ne constituent pas</em> des expressions musicales et ne seront donc pas interprétées comme telles. Elles peuvent de ce fait être mentionnées à l'intérieur du bloc <code>\score</code>, tout comme à l'extérieur. En réalité, ces commandes sont la plupart du temps indépendantes du bloc <code>\score</code> – la commande <code>\header</code> intervient bien souvent avant le bloc <code>\score</code> tout simplement parce que les en-têtes apparaissent au début de la partition. C'est donc l'un des raccourcis que LilyPond prendra en considération. <p>Les deux autres commandes – <code>\layout { }</code> et <code>\midi {}</code> – que nous n'avons pas détaillées pour l'instant, auront respectivement pour effet lorsqu'elles interviennent de produire une sortie imprimable et un fichier MIDI. Nous nous y intéressons plus particulièrement dans le manuel de notation, aux chapitres <a name="index-Score-218"></a>layout <a href="../lilypond/Score-layout.fr.html#Score-layout">Mise en forme de la partition</a> et <a name="index-Creating-MIDI-files-219"></a><a href="../lilypond/Creating-MIDI-files.fr.html#Creating-MIDI-files">Création de fichiers MIDI</a>. <p><a name="index-scores_002c-multiples-220"></a> Vous pouvez tout à fait mentionner plusieurs blocs <code>\score</code>. Ils seront traités comme autant de partitions indépendantes qui seront regroupées dans un seul fichier résultant. La commande <code>\book</code> (<em>recueil</em> ou <em>ouvrage</em>) pas obligatoire – elle sera créée implicitement. Néanmoins, le recours à la commande <code>\book</code> vous permettra d'obtenir des fichiers résultants distincts à partir d'un même fichier source <code>.ly</code> – par exemple un fichier par pupitre. <p>En résumé : <p>Dès que LilyPond rencontre un bloc <code>\book</code>, il crée un fichier distinct (.pdf par exemple). Dans le cas où il n'est pas mentionné explicitement, LilyPond regroupera l'intégralité du code dans un bloc <code>\book</code>. <p>Tout bloc <code>\score</code> inclus dans un bloc <code>\book</code> constitue un fragment de musique. <p>Tout bloc <code>\layout</code> affecte le bloc <code>\score</code> ou <code>\book</code> au sein duquel il intervient : si c'est à l'intérieur d'un bloc <code>\score</code>, seul celui-ci en sera affecté. Dans le cas où le bloc <code>\layout</code> se trouve à l'extérieur du bloc <code>\score</code>, que le bloc <code>\book</code> soit explicite ou non, il affectera chacun des <code>\score</code> compris dans ce <code>\book</code>. <p>Pour plus de détail à ce sujet, consultez <a name="index-Multiple-scores-in-a-book-221"></a><a href="../lilypond/Multiple-scores-in-a-book.fr.html#Multiple-scores-in-a-book">Plusieurs partitions dans un même ouvrage</a>. <p><a name="index-variables-222"></a><a name="index-identificateurs-223"></a> Un autre raccourci pratique est la possibilité de définir des variables — également appelées «<font size="-4"> </font>identificateurs<font size="-4"> </font>». Dans tous les modèles, vous trouverez : <pre class="example">melodie = \relative c' { c4 a b c } \score { { \melodie } } </pre> <p>Lorsque LilyPond examinera ce fichier, il va prendre la valeur de la variable <code>melodie</code>, c'est-à-dire tout ce qui suit le signe <code>=</code>, et l'insérer partout où il rencontrera <code>\melodie</code>. Vous êtes libre de choisir comment dénommer vos variables<a rel="footnote" href="#fn-1" name="fnd-1"><sup>1</sup></a> ; ce peut être <code>melodie</code>, <code>global</code>, <code>maindroitepiano</code>, ou <code>laTeteAToto</code>, tant qu'il ne s'agit pas de «<font size="-4"> </font>mot réservé<font size="-4"> </font>». Pour plus de détails, voir <a href="Saving-typing-with-variables-and-functions.fr.html#Saving-typing-with-variables-and-functions">Économies de saisie grâce aux identificateurs et fonctions</a>. <p class="noindent"> <h5 class="subsubheading">Voir aussi</h5> <p>Pour une description complète du format des fichiers d'entrée, voir <a name="index-File-structure-224"></a><a href="../lilypond/File-structure.fr.html#File-structure">Structure de fichier</a>. <div class="footnote"> <hr> <h4>Notes de bas de page</h4><p class="footnote"><small>[<a name="fn-1" href="#fnd-1">1</a>]</small> Les noms de variables sont sensibles à la casse, et ne peuvent contenir ni chiffre, ni ponctuation, ni caractère accentué, ni espace.</p> <hr></div> <!-- footer_tag --><div class="node"> <p> Suivant : <a rel="next" accesskey="n" href="Score-is-a-_0028single_0029-compound-musical-expression.fr.html#Score-is-a-_0028single_0029-compound-musical-expression">La partition est une unique expression musicale composée</a>, Haut : <a rel="up" accesskey="u" href="How-LilyPond-input-files-work.fr.html#How-LilyPond-input-files-work">Organisation des fichiers LilyPond</a> </div> <div style="background-color: #e8ffe8; padding: 2; border: #c0ffc0 1px solid;"> <p> <font size="-1"> Cette page documente LilyPond-2.11.57 (branche de développement). <br> <address> Rapportez toute anomalie en français à <a href="mailto:lilypond-user-fr@gnu.org">lilypond-user-fr@gnu.org</a> ou en anglais à <a href="http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs">http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs</a> </address> <br> Vos <a href="http://lilypond.org/web/devel/participating/documentation-adding">suggestions à propos de la documentation</a> sont les bienvenues. </font> </p> </div> <P> Autres langues : <a href="Introduction-to-the-LilyPond-file-structure.html">English</a>, <a href="Introduction-to-the-LilyPond-file-structure.es.html">español</a>, <a href="Introduction-to-the-LilyPond-file-structure.de.html">deutsch</a>. <BR> </P> </BODY></html>