« LaTeX/Écrire de la musique » : différence entre les versions

Contenu supprimé Contenu ajouté
Résumé automatique : blanchiment
Tavernier (discussion | contributions)
m Révocation des modifications de 194.3.249.49 (retour à la dernière version de 81.56.152.154)
Ligne 1 :
{{LaTeX-nav}}
 
Il existe un langage libre et gratuit pour écrire de la musique : [[Introduction à LilyPond|LilyPond]]. Il est assez semblable à LaTeX dans sa forme, et très performant. Avec, vous pouvez créer une partition, avec titre, texte de paroles, commentaires, … et générer :
* un fichier PS et PDF de la partition ;
* un fichier son Midi du morceau ;
* un fichier image, qui peut par la suite être intégré dans un fichier LaTeX.
 
Nous vous invitons vivement à utiliser LilyPond, d'autant plus que le code LilyPond peut être intégré directement dans le code LaTeX.
 
Toutefois, avant le développement de LilyPond, une extension fut développée pour permettre d'écrire de la musique avec LaTeX : MusicTeX, remplacée depuis par MusiXTeX. Il peut être plus pratique, pour de courts extraits, d'utiliser MusiXTeX plutôt que d'intégrer une image. Nous allons donc voir quelques fonctionnalités.
 
Notons toutefois que LilyPond est « orienté musique » : l'auteur a juste à penser au morceau, et écrit les voix séparément (on a une « écriture horizontale »), le programme se charge d'aligner les mesures, et les notes dans les mesures. On a une bonne séparation du fond et de la forme. À l'inverse, MusiXTeX est « orienté typographie » : l'auteur doit penser à la mise en forme, il doit prévoir l'alignement en regroupant ensemble les éléments des différentes voix (on a une « écriture verticale »). Mais comme le font remarquer les auteurs de MusiXTeX, « si cela vous paraît compliqué, rappelez vous que TeX a été conçu pour écrire des textes et non de la musique… » ''(If this sounds complicated, remember that TeX was designed to typeset text and not music…)''. Toutefois, le résultat obtenu avec MusiXTeX est irréprochable.
 
== Mode mathématiques et fonte Text Companion ==
 
Le mode mathématiques (introduit, en ligne, par <code>$ … $</code>), permet d'afficher quelques symboles musicaux :
* <code>\flat</code> : bémol <math>\flat</math> ;
* <code>\natural</code> : bécarre <math>\natural</math> ;
* <code>\sharp</code> : dièse <math>\sharp</math>.
On remarque au passage que le dièse « ♯ » est différent du croisillon « # », appelé ''hash sign'' en anglais (et abréviation de « numéro » dans cette langue).
 
La fonte Text Companion est incluse dans le codage TS1. On en dispose donc en mettant dans le préambule
\usepackage{textcomp}
On peut alors écrire une croche avec l'instruction <code>\textmusicalnote</code>. On peut obtenir le C barré avec <code>\textcolonmonetary</code> (bien qu'il s'agisse ici d'un symbole monétaire).
 
== LilyPond ==
 
Il existe un wikilivre sur [[Introduction à LilyPond|LilyPond]]. Nous allons ici rappeler quelques généralités.
 
LilyPond est un projet totalement indépendant de LaTeX. Il doit être téléchargé à part, et les fichiers Lilypond possèdent leur propre compilateur.
 
Les fichiers LilyPond sont des fichiers texte portant l'extension <code>.ly</code>. Ils sont compilés par le programme <code>lilypond</code>. Le programme est livré avec un éditeur de texte, <code>lilypad</code>.
 
=== Éléments de base ===
 
L'élément de base de Lilypond est la phrase musicale, sous la forme :
{ ''notes'' }
 
Les ''notes'' sont de la forme ''hauteur'' ''durée'', où
* la ''hauteur'' est indiquée
** avec la notation anglosaxonne (<code>c d e f g a b</code> pour ''do'' à ''si''),
** la note est diésée en ajoutant <code>is</code> et bémolée en ajoutant <code>es</code> (<code>cis</code> pour un do dièse),
** on monte d'une octave avec une apostrophe <code>'</code>, et on descend avec une virgule <code>,</code> (par exemple « <code>c'</code> » pour avoir le do une octave au dessus, <code>c,</code> pour une octave en dessous),
** un silence est indiqué par un « <code>r</code> » ''(rest)'' ;
* la ''durée'' est indiquée
** par un nombre selon la notation habituelle : <code>1</code> pour une ronde, <code>2</code> pour une blanche, <code>4</code> pour une noire, …
** on met un point <code>.</code> derrière pour pointer la durée,
** si l'on n'indique pas la durée, on utilise la même durée que la note précédente.
Par exemple
c4. r4.
pour un ''do'' noire pointée suivi d'un soupir pointé,
\relative c'<nowiki>{</nowiki>{{bleu|c8 d e c}} {{vert|d4}} {{bleu|d8 e}} {{vert|f4 f e e}}<nowiki>}</nowiki>
pour le début de ''J'ai du bon tabac''.
 
Un fichier peut contenir uniquement une ou plusieurs phrases musicales. Toutefois, un fichier contient en général d'autres informations, notamment concernant la mise en forme.
 
==== Accords et polyphonie ====
 
Les notes d'un accord se notent entre deux crochets pointus <code>&lt;…&gt;</code>. La durée se met après. Par exemple :
&lt;c e g&gt;4
Lilypond reconnaît également la notation anglo-saxonne des accords, comme par exemple <code>c:m</code> pour ''do'' mineur. La durée se met avant le deux-points : <code>c4:m</code>.
 
Si l'on veut faire figurer deux voix sur la même portée, on met les deux voix entre des doubles crochets <code>&lt;&lt;…&gt;&gt;</code>, et on les sépare par deux contre-obliques :
&lt;&lt;
{''voix une''} \\
{''voix deux''}
&gt;&gt;
Si l'on veut avoir plusieurs portées, on utilise :
&lt;&lt;
\new Staff {''voix une''}
\new Staff {''voix deux''}
&gt;&gt;
 
=== Format général ===
 
Un fichier <code>.ly</code> est un fichier texte de la forme :
{{bleu|\version}} ''version''
{{bleu|\header {}}
title = ''titre de l'oeuvre''
composer = ''nom du compositeur''
{{bleu|} }}
{{bleu|\score {}}
''partition''
{{bleu|} }}
* ''version'' est le numéro de version de lilypond (permet de faciliter les mises à jour) ;
* ''titre de l'oeuvre'' et ''nom du compositeur'' seront affiché en haut de la page ;
* ''partition'' est la description de la musique elle-même.
Si vous voulez juste un petit bout de partition, le plus simple est peut-être de retoucher l'image avec un logiciel, comme par exemple The Gimp, pour extraire la partie qui vous intéresse.
 
La partition est de la forme :
{{bleu|\new Staff}} \relative c' {{bleu|{}}
\key c \major
\clef G
\time 4/4
\tempo 4=60
''notes''
{{bleu|} }}
* <code>\new Staff</code> indique une nouvelle portée ;
* <code>\relative</code> indique que l'octave est déterminée par la hauteur de la note précédente ; le <code>c'</code> indique que l'octave de référence est fixée par le do medium ;
* <code>\key c \major</code> indique que l'on est en ''do'' majeur ;
* <code>\clef G</code> indique que l'on place une clef de sol ;
* <code>\time 4/4</code> indique une mesure à <math>\begin{matrix} 4 \\ 4 \end{matrix}</math> (ou {{chiffrage mesure|C}}) ;
* <code>\tempo 4 = 60</code> indique que le tempo est de 60 à la noire (<code>4</code>).
 
Notons que la déclaration de la tonalité (avec <code>\key</code>) place l'armure d'altérations. Si vous êtes en ''sol'' majeur (<code>\key g \major</code>) et que vous mettez <code>fis</code>, l'altération ne s'affichera pas puisqu'elle est à la clef. Si par contre vous mettez <code>f</code>, cela affichera un ''fa'' bécarre.
 
=== Compilation ===
 
L'éditeur <code>lilypad</code> permet de lancer la compilation :
* avec le menu '''Compile | Typeset file''',<br />— ou bien —
* avec la combinaison de touches {{touche|Ctrl}}+{{touche|R}} sous Windows, {{pomme}}+{{touche|R}} sous MacOS X.
On peut également, à partir du gestionnaire de fichiers (''Explorateur'' Windows, ''Finder'' de MacOS X, ''X-Window'' d'Unix), faire un glisser-lâcher de l'icône du fichier <code>.ly</code> sur l'icône du programme <code>lilypond</code>. On peut enfin utiliser la ligne de commande
lilypond ''nom_du_fichier''
 
Par défaut, Lilypond génère un fichier PostScript (<code>.ps</code>). Les PDF peuvent être intégrés directement dans fichier LaTeX.
 
Pour que Lilypond génère un fichier d'un format différent, compilez avec les options :
* <code>lilypond --pdf ''nom_de_fichier''</code> pour avoir un PDF ;
* <code>lilypond -f=ps ''nom_de_fichier''</code> pour avoir un PostScriptS ;
* <code>lilypond -f=png ''nom_de_fichier''</code> pour avoir un PNG.
On peut aussi utiliser <code>--format=</code> au lieu de <code>-f=</code>.
 
=== Intégration du code LilyPond dans le code LaTeX ===
 
On peut intégrer directement du code LilyPond dans le source LaTeX ; le fichier devra être compilé avec <code>lilypond-book</code> avant d'être compilé par <code>latex</code>.
 
Le code LilyPond est écrit :
* soit dans un environnement <code>lilypond</code> ;
* soit dans le bloc d'une commande <code>\lilypond{…}</code> ;
* soit dans un fichier extérieur appelé dans le document LaTeX par <code>\lilypondfile{''nom_de_fichier''}</code>.
 
Sous MacOS X, le programme <code>lilypond-book</code> est dans le répertoire <code>…/LilyPond.app/Contents/Resources/bin</code>, voir ''[[Introduction à LilyPond/Principe général#Programme en ligne de commande|Introduction à LilyPond, Principe général &gt; Programme en ligne de commande]]''.
 
''Voir [http://lilypond.org/doc/v2.10/Documentation/user/lilypond/LilyPond_002dbook#LilyPond_002dbook Lilypond-book: Integrating text and music].''
 
== MusiXTeX ==
 
Pour utiliser MusiXTeX, il faut mettre en préambule
\usepackage{musixtex}
 
Un morceau de musique a la forme générale :
{{bleu|\begin{}}music{{bleu|} }}
{{vert|\startextract}}
{{rouge|\notes}} ''notes'' {{rouge|\enotes}}
{{vert|\endextract}}
{{bleu|\end{}}music{{bleu|}}}
* <code>\startextract</code> et <code>\endextract</code> indiquent le début et la fin de la portée ; pour les longs morceaux, on utilise <code>\startpiece</code> et <code>\endpiece</code> ;
* <code>\notes</code> et <code>\enotes</code> indiquent le début et la fin d'une phrase musicale.
Une partition peut contenir plusieurs phrases musicales ; elle sera donc une succession de <code>\notes … \enotes</code>. On peut utiliser <code>\en</code> à la place de <code>\enotes</code>.
 
Les notes sont indiquées sous la forme <code>\''durée'' ''hauteur''</code>, ou, si plusieurs notes ont la même durée, sous la forme <code>\''durée''{ ''hauteur_1'' ''hauteur_2'' … ''hauteur_n'' }</code>.
 
Par exemple,
\notes \qa c \enotes
: ou
\notes \qa{c} \enotes
: désignent un ''do'' (<code>c</code>) noire (<code>\qa</code>).
 
{{note|MuxsiXTeX est du LaTeX, il interprète donc les espace et les lignes vides. Les espaces et lignes vides peuvent donc avoir un effet important sur le rendu final ; on ne peut pas mettre en forme le code comme on veut. En particulier, '''les lignes vides sont à proscrire''', mais on peut utiliser une ligne de commentaire.
 
Pour la même raison, il peut être nécessaire de commenter les fins de lignes, notamment dans la zone d'en-tête de la partition.}}
 
Lors de la compilation, <code>latex</code> crée un fichier <code>.mx1</code>.
 
=== Taille et espacement ===
 
La dimension de la musique (taille des notes et des portées) est indiquée par une instruction, placée hors du contexte musical (par exemple en début de document). Par ordre croissant, on a :
* <code>\smallmusicsize</code> ;
* <code>\normalmusicsize</code> ;
* <code>\largemusicsize</code> ;
* <code>\Largemusicsize</code>.
Nous avons ci-dessus parlé de l'instruction <code>\notes</code>, mais il existe plusieurs instructions d'introduction permettant de faire varier l'espacement, par ordre croissant d'espacement :
* <code>\znotes</code> ''(zero)'' : pas d'espacement ;
* <code>\notes</code> : recommandé pour l'écriture des double-croches ;
* <code>\notesp</code> ''(pointed)'' : recommandé pour l'écriture des double-croches pointées ;
* <code>\Notes</code> : ~ croches ;
* <code>\notesp</code> ;
* <code>\NOtes</code> : ~ noires ;
* <code>\NOtesp</code> ;
* <code>\NOTes</code> : ~ blanches ;
* <code>\NOTesp</code> ;
* <code>\NOTEs</code> : ~ rondes.
On peut rajouter une espace après une note avec <code>\sk</code>.
 
=== Durées ===
 
Les durées sont :
* <code>\wh</code> : ronde ''(whole note)'' ;
* <code>\ha</code> : blanche, le placement de la queue (haut ou bas) étant laissé à l'appréciation de MusiXTeX ''(half note automatic)'' ;
* <code>\qa</code> : noire ''(quarter note automatic)'' ;
* <code>\ca</code> : croche ''(''croche<ref>le terme anglais est eighth note, mais MusiXTeX utilise l'acronyme français</ref> ''automatic)'' ;
* <code>\cca</code> : double croche ;
* <code>\ccca</code> : triple croche.
On peut forcer l'orientation de la queue en remplaçant le ''a'' par
* ''u'' pour une queue vers le haut ''(up)'' ;
* ''l'' pour une queue vers le bas ''(low)'' ;
par exemple <code>\qu</code>, <code>\cl</code>.
 
Pour pointer une note, on ajoute <code>p</code>, et <code>pp</code> pour une double pointée. Par exemple, <code>\qap</code> indique une noire pointée.
 
Les silences sont :
* <code>\pause</code> : pause ;
* <code>\hpause</code> : demi-pause ;
* <code>\soupir</code> ou <code>\qp</code> : soupir ;
* <code>\ds</code> : demi-soupir ;
* <code>\qs</code> : quart de soupir ;
* <code>\hs</code> : huitième de soupir ;
* <code>\qqs</code> : seizième de soupir.
Les silences peuvent aussi être pointés, par exemple <code>\soupirp</code> pour un soupir pointé.
 
=== Hauteur ===
 
La notation est basée sur la notation anglosaxone pour les notes lagrave à medium, qui sont notées <code>abcdefg</code>. Puis, les notes suivent l'ordre alphabétique : <code>h</code> pour ''la'', <code>i</code> pour ''si'', <code>j</code> pour le ''do'' aigu, …
 
Les notes des octaves inférieures sont notées en capitales : <code>CDEFG</code> pour les notes ''do'' à ''sol'' les plus graves : le ''do'' <code>C</code> est situé à deux lignes supplémentaires sous la portée en clef de ''fa'' 4{{e}} ligne. On a donc la succession des octaves
{{bleu|''do ré mi fa sol la si''}}
C D E F G H I
J K L M N a b
c d e f g h i {{bleu|''octave medium''}}
j k l m n o p
q r s t u v w
x y z
On a aussi la possibilité de monter d'une octave avec une apostrophe <code>'</code>, ou de descendre une octave avec un acccent grave <code>`</code>. Cette montée ou cette descente sont définitifs. Par exemple, les deux déclarations suivantes sont identiques :
\notes \qa{CDEFGHI JKLMNab cdefghi jklmnop} \enotes
: et
\notes \qa{``cdefghi 'cdefghi 'cdefghi 'cdefghi} \enotes
: en effet, le <code>``</code> initial fait descendre de deux octaves, puis on monte d'une octave à chaque fois.
 
=== Liens entre les notes ===
 
Utilisées telles quelles, les « notes à crochet » (croches, double-croches, triples-croches, quadruple-croches) sont écrites séparément. Quand elles se succèdent, on les lie en général par une « barre » située au-dessus ou en-dessous.
 
Si l'on veut introduire un lien placé au-dessus entre les notes de type croches, on utilise
* <code>\ibu''ref note pente'' (<code>ibu</code> pour ''initiate beam up''), où
** ''ref'' est la référence du lien : c'est un numéro arbitraire qui permet de démêler les différents liens qui s'étalent sur plusieurs <code>\notes … \enotes</code>,
** ''note'' est la hauteur de la première note du lien, le lien est placé trois lignes au dessus de cette note,
** ''pente'' est la pente du lien, entre <code>-9</code> (lien descendant) et <code>9</code> (lien montant), <code>0</code> indiquant un lien horizontal ;
* les notes ont pour durée <code>\qb ''ref''</code> ''(quarter beam'' ?'')'', qui place la tête noire et la queue sans placer de crochet ;
* <code>\tbu''ref''</code> ''(terminate beam)'', qui termine le lien, et se place ''avant'' la dernière note.
Pour les notes pointées, on utilise <code>\qbp</code>, et <code>\qbpp</code> pour les doubles-pointées. Pour les notes sans espace (par exemple pour les accords), on utilise le durée <code>\zqb</code>.
 
Par exemple
\Notes {{bleu|\ibu}}{{vert|0}}{{bleu|d}}{{vert|0}}\qb0{c c c}{{bleu|\tbu}}{{vert|0}}\qb0d \enotes
Les autres liens sont introduits par :
* <code>ibl</code> ''(initiate beam low)'' : croches, lien en dessous ;
* <code>ibbu</code> et <code>ibbl</code> : double-croches ;
* <code>ibbbu</code> et <code>ibbbl</code> : triple-croches ;
* <code>ibbbbu</code> et <code>ibbbbl</code> : quadrule-croches.
 
On peut faire varier la multiplicité du lien en cours de lien, par exemple pour faire « croche — deux double-croches » :
\Notes \ibu0d0 \qb0{c} \nbbu0 \qb0{c} \qb0c \enotes
Les instructions sont :
* pour augmenter la multiplicité du lien :
** <code>\nbbu''ref''</code> et <code>\nbbl''ref''</code> : lien double (double-croches),
** <code>\nbbbu''ref''</code> et <code>\nbbbl''ref''</code> : lien triple (triple-croches),
** <code>\nbbbbu''ref''</code> et <code>\nbbbbl''ref''</code> : lien quadruple (quadruple-croches) ;
* pour diminuer la multicplicité :
** <code>\tbbbbu''ref''</code> et <code>\tbbbbl''ref''</code> : termine un lien quadruple, qui devient triple ;
** <code>\tbbbu''ref''</code> et <code>\tbbbl''ref''</code> : termine un lien triple, qui devient double ;
** <code>\tbbu''ref''</code> et <code>\tbbl''ref''</code> : termine un lien double, qui devient simple.
Si l'on fait varier la multiplicité et que l'on termine le lien en même temps, cela crée un lien multiple partiel. Par exemple, pour faire « croche pointée — double-croche » :
\Notes {{bleu|\ibu0e0}}\qbp0e{{bleu|\tbbu0\tbu0}}\qb0e \enotes
pour faire « double-croche — croche pointée » :
\Notes {{bleu|\ibbu0e0}}{{vert|\roff{}}{{bleu|\tbbu0}}{{vert|<nowiki>}</nowiki>}}\qb0e{{bleu|\tbu0}}\qbp0e \enotes
Le <code>\roff</code> sert à décaler la fonction vers la droite ''(right offset)'', ce qui permet de donner une longueur non nulle au double-lien initial.
 
=== triolets, sextuolets et ''n''-uolets ===
 
Il faut écrires toutes notes du ''n''-uolet dans la même phrase (<code>\notes…\en</code>), et cette phrase ne doit contenir que ces notes-là.
 
Pour un triolet, on introduit la phrase par <code>\triolet</code> (avant la première note) ; on indique en argument la hauteur de note à laquelle placer le nombre. Par exemple
\triolet n
indique que le « 3 » sera placé à la note ''n'', soit au niveau du ''sol'' aigu.
 
Pour un sextuolet, on utilise <code>\xtuplet6</code> suivi de la hauteur de note. On peut en fait metttre n'importe quel nombre après <code>\xtuplet</code>, pour avoir les différents ''n''-uolets.
 
=== Accords ===
 
Un accord, c'est en fait déclarer des notes non suivies d'un espace. On utilise donc les durées :
* <code>\zw</code> pour une ronde ''(zero-spacing whole note)'' ;
* <code>\zhu</code> ou <code>\zhl</code> pour une blanche ;
* <code>\zqu</code> ou <code>\zql</code> pour une noire ;
* <code>\zcu</code> ou <code>\zcl</code> pour une croche ;
* <code>\zccu</code>, <code>\zcccu</code> ou <code>\zccl</code>, <code>\zcccl</code> pour une double ou triple croche.
Par exemple, pour l'accord parfait de ''do'' majeur en noires :
\zqu c \zqu e\qu g
ou
\zqu{ce}\qu g
La dernière note doit être une note avec espace, sans quoi la note suivante ferait aussi partie de l'accord. D'autre part, il ne faut pas d'espace avant la déclaration de durée de la dernière note de l'accord : cet espace provoquerait un décalage de la dernière note vers la droite.
 
Si l'accord contient des secondes, il est nécessaire de placer une notes de l'autre côté de la hampe. On utilise pour cela :
* <code>\rw</code> ''(right whole note)'' : ronde poussée vers la droite ;
* <code>\lw</code> ''(left whole note)'' : ronde poussée vers la gauche ;
* <code>\rh</code> et <code>\lh</code> : blanche ;
* <code>\rq</code> et <code>\lq</code> : noire ;
 
=== Phrasé et liaisons ===
 
Le principe du phrasé ''(legato)'' et de la liaison, parenthèse horizontale, est similaire à celui des liens. On débute un phrasé ou une liaison par
* <code>\islurd ''ref note''</code> ''(initiate slur down)'' pour une liaison située en dessous ;
* <code>\isluru ''ref note''</code> ''(initiate slur up)'' pour une liaison située au-dessus ;
* ''ref'' est un nombre permettant de suivre la parenthèse si l'on change de groupe <code>\notes … \enotes</code> ;
* ''note'' est la hauteur à laquelle commence le phrasé (en général la première note).
Le phrasé se termine par
: <code>\tslur ''ref'' ''note''</code>
où ''note'' est la hauteur de fin du phrasé. Par exemple
\NOtes \islurd0c\qu{c d e}\tslur0f\qu f \enotes
 
=== Mesures ===
 
Le chiffrage de la mesure s'indique avec la fonction
\generalmeter{''chiffrage''}
où ''chiffrage'' est :
* <code>\meterfrac{''a''}{''b''}</code> pour indiquer la mesure ''a''/''b'' ;<br /> par exemple <code>{{bleu|\generalmeter{}}{{vert|\meterfrac{}}3{{vert|}{}}4{{vert|<nowiki>}</nowiki>}}{{bleu|<nowiki>}</nowiki>}}</code>
* <code>\meterC</code> pour un {{chiffrage mesure|C}} ({{chiffrage mesure|4/4}}) ;
* <code>\allabreve</code> pour un C barré.
Les barres de mesure sont introduites par la fonction <code>\bar</code>. On peut placer des barres de répétition avec <code>\leftrepeat</code> (début du passage à répéter), <code>\rightrepeat</code> (fin du passage) et <code>\leftrightrepeat</code> (fin d'un passage et début du suivant).
 
Si l'on veut mettre des notes avant l'indication du chiffrage, on utilise <code>\meterskip</code> ; il prend fin à la première indication <code>\bar</code>.
 
=== Armure ===
 
Par défaut, la portée comporte une clef de ''sol''. On peut indiquer une autre clef avec la commande
\setclef{1}{''code''}
le « 1 » indique qu'il s'agit de la première (et pour l'instant seule) voix. Le ''code'' est un chiffre :
* <code>0</code> pour une clef de ''sol'' ;
* <code>1</code> à <code>4</code> pour une clef d'''ut'' 1 à 4 ;
* <code>5</code> pour une clef de ''fa'' 3 ;
* <code>6</code> pour une clef de ''fa'' 4.
Les altérations à l'armure s'indiquent par
\generalsignature{''n''}
où ''n'' est un entier :
* positif : c'est le nombre de dièses ;
* négatif : c'est le nombre de bémols.
Par exemple, <code>\generalsignature{1}</code> pour un morceau en ''sol'' majeur ou ''mi'' mineur (un dièse à la clef), <code>\generalsignature{-1}</code> pour un morceau en ''fa'' majeur ou ''ré'' mineur (un bémol à la clef).
 
=== Indications d'interprétation ===
 
Les indications d'interprétation, comme les accents, les ornements et les nuances, sont en général traités comme des durées non suivies d'espace. Par exemple, pour placer un ''sforzando'' au dessus de l'emplacement d'un do aigu, on écrit <code>\usf j</code>, suivi de la note sur lequel il est placé.
 
Les commandes sont :
* accents : les commandes commencent par ''u'' ''(up)'' si on les met au-dessus de la tête de note et ''l'' ''(low)'' si on les met en-dessous ; elles commencent par ''bu'' ''(beam up)'' si on les met au-dessus du lien entre les notes, et par ''bl'' ''(beam low)'' si on les met en-dessous :
** <code>\upz</code>, <code>\lpz</code>, <code>\bupz</code> et <code>\blpz</code> : pizzicato (·) ;
** <code>\usf</code>, <code>\lsf</code>, <code>\busf</code> et <code>\blsf</code> : sforzando (&gt;) ;
** <code>\ust</code>, <code>\lst</code>, <code>\bust</code> et <code>\blst</code> : staccato (—) ;
** <code>\usfz</code> et <code>\busfz</code> : accent (∧) ;
** <code>\lsfz</code> et <code>\blsfz</code> : accent (∨) ;
* ornements
** <code>\mordent</code>, <code>\Mordent</code>, <code>\shake</code>, <code>\Shake</code> : mordant ;
** <code>\turn</code>, <code>\backturn</code> : gruppetto ;
** <code>\fermataup</code>, <code>\fermatadown</code>, <code>\Fermataup</code>, <code>\Fermatadown</code> : point d'orgue.
 
Pour indiquer une trille, on place
\Trille ''hl''
où ''h'' est la hauteur de note ou placer l'indication, et ''l'' est la longuer en nombre de notes. On peut aussi commencer la trille par <code>\ITrille ''nh''</code>, où ''n'' est le numéro de la trille entre 0 et 6 (on peut placer plusieurs trilles si l'on a plusieurs voix), et ''h'' est la hauteur de note où placer l'indication ; on termine alors la trille par <code>\TTrille</code>.
 
Pour mettre des appogiatures, on utilise de petites notes, introduites par <code>\smallnotesize</code> ou <code>\tinynotesize</code>, et conclues par l'indication <code>normalnotesize</code>. Dans le cas d'une note unique sous la forme d'une croche barrée, on utilise <code>\grcu</code> et <code>\grcl</code>.
 
Les nuances sont <code>\ppp</code> ''(il piu pianissomo possibile)'', <code>\pp</code> ''(pianissimo)'', <code>\p</code> ''(piano)'', <code>\mp</code> ''(mezzo piano)'', <code>\mf</code> ''(mezzo forte)'', <code>\f</code> ''(forte)'', <code>\ff</code> ''(fortissimo)'' et <code>\fff</code> ''(il piu fortissimo possibile)''. Pour un crescendo ou un decrescendo, on utilise <code>\crescendo{''l''}</code> et <code>\decrescendo{''l''}</code>, ou ''l'' est la longueur (par exemple <code>''n''\noteskip</code> pour ''n'' notes). Ces signes sont placés par la commande <code>\zcharnote ''h''{''texte''}</code> où ''h'' est la hauteur de note et ''texte'' est l'indication.
 
=== Polyphonie ===
 
'''La numérotation des portées et des instruments se fait de bas en haut.''' La portée n° 1 est celle du bas.
 
Pour placer plusieurs portées, on débute l'environnnement par l'instruction
\instrumentnumber{''n''}
où ''n'' est le nombre d'instruments. Si un instrument utilise plusieurs portées (par exemple le piano), on précise
\setstaffs ''i''{''m''}
où ''i'' est le numéro de l'instrument, et ''m'' est le nombre de portées. Puis, on indique les noms des instruments, avec l'instruction
\setname ''i''{''nom''}
où ''i'' est le numéro de l'instrument. Si les noms sont longs, ils peuvent empiéter sur le début de la portée ou l'accolade qui réunit plusieurs portées. Pour éviter ceci, on peut augmenter l'alinéa avec
\parindent ''longueur''
par exemple <code>\parindent 10mm</code>.
 
Puis, on découpe le morceau phrase par phrase — une phrase étant en général une portion de mesure choisi en fonction de l'alignement —, en séparant les instruments par un code>&</code> :
\notes ''instrument 1'' & ''instrument 2'' & … \enotes
s'il y a un instrument avec deux portées, on les sépare par un tube <code>|</code>, par exemple :
\notes ''instrument 1 portée 1'' | ''instrument 1 portée 2'' & ''instrument 2'' & … \enotes
 
==== Exemple ====
<source lang="latex">
\documentclass[10pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{musixtex}
\usepackage[frenchb]{babel}
\begin{document}
\normalmusicsize
\begin{music}
\instrumentnumber{2} % 2 instruments
\setstaffs 1{2} % instrument 1 (en bas) : 2 portées
\setclef{1}{60} % clef de fa (6) en 1, clef de sol (0) en 2
\generalmeter{\meterfrac{4}{4}} % mesure 4/4
\setname 1{piano} %
\setname 2{chant} %
\parindent 10mm % pour éviter la collision de piano avec l'accolade
\startextract
% {{bleu|1re mesure}}
\Notes
\ha J | % chgt portée, même instr
\zhu{c e}\hu g & % chgt instr ; pas d'espace entre } et \hu
\islurd0c\ibu0d0\qb0{c c c}\tslur0d\tbu0\qb0d
\enotes % assure l'alignement
%
\Notes
\ha N | % chgt portée, même instr
\zhu{g i}\hu k & % chgt instr
\qa{e d}
\enotes
\bar % après toutes les notes de la mesure, pour toutes les voix
% {{bleu|2e mesure}}
\Notes
\qa J |
\zqu{c e}\qu g &
\islurd0c\ibu0d0\qb0{c e}
\enotes
%
\Notes
\qa N |
\zqu{g i}\qu k &
\qb0{d}\tslur0d\tbu0\qb0d
\enotes
%
\Notes
\ha J |
\zhu{c e}\hu g &
\ha c
\enotes
%
\endextract
\end{music}
\end{document}
</source>
donne :
 
[[Image:Musixtex au clair de la lune.png|400px]]
 
Par comparaison, voici le code Lilypond et le résultat :
<source lang="latex">
\version "2.8.7"
\paper {
#(define dump-extents #t)
indent = 10\mm
ragged-right = ##t
}
<<
\new Staff \relative c' {
\set Staff.instrument="chant"
\clef G
\time 4/4
c8[( c c d]) e4 d4
c8[( e d d]) c2
}
\new PianoStaff <<
\new Staff \relative c' {
\set Staff.instrument="piano"
\clef G
\time 4/4
<c e g>2 <g' b d>
<c, e g>4 <g' b d> <c, e g>2
}
\new Staff \relative c {
\clef F
\time 4/4
c2 g
c4 g c2
}
>>
>>
</source>
[[Image:Ly au clair de la lune melodie accords.png|300px]]
 
=== Paroles ===
 
MusiXTeX ne gère pas très bien l'alignement des paroles avec les notes. Il est recommandé de faire appel pour cela à l'extension <code>musiclyr</code>. Toutefois, MusiXTeX dispose tout de même des fonctions héritées de MusicTeX, avec lequel l'alignement était correct. Le problème est que les caractères — leur chasse et leur approche — ne sont pas étirables ou contractables alors que la largeur et l'espacement des notes peut varier.
 
La première chose consiste à réserver de la place verticale. Pour cela, on utilise
\setinterinstrument ''n''{''longueur''}
qui crée un « interinstrument » ''au dessus'' de l'instrument ''n''. La ''longueur'' peut être indiquée par <code>''i''\Interligne</code> pour avoir ''i'' fois l'interligne. Par exemple,
\setinterinstrument 2{1\Interligne}
pour avoir les paroles entre le 2{{e}} et le 3{{e}} instrument.
 
Pour placer les paroles syllabe par syllabe, on utilise <code>\zsong{''syllabe'' }</code> juste avant la note. Pour bien gérer l'empilement vertical, on metttra une seule syllabe par <code>\notes … \enotes</code>, par exemple
\NOtes \zsong{Au }\qu g\en
\NOtes \zsong{clair }\qu g\en
\NOtes \zsong{de }\qu g\en
\NOtes \zsong{la }\qu h\en
\bar
\NOtes \zsong{Lu- }\hu i\en
\NOtes \zsong{ne }\hu h\en
La commande <code>\zsong</code> place les paroles à la droite de la notre. On peut aussi utiliser <code>\csong</code> pour centrer, et <code>\lsong</code> pour les placer à gauche.
 
On peut ajuster la hauteur à laquelle est écrit le texte avec <code>\setsongraise ''n''{''longueur''}</code> où ''n'' est le numéro de l'instrument concerné.
 
Pour régler les problèmes d'espacement, on peut utiliser les différents espacements (<code>\notes</code>, <code>\Notes</code>, <code>\NOtes</code>, …) ou bien faire calculer la taille du texte et réserver cette place pour la note avec :
\hardlyrics{''texte''}\notes \hsong{\thelyrics}''note'' \en
* <code>\hardlyrics{''texte''}</code> calcule la largeur du ''texte'' et met celui-ci dans la variable <code>\thelyrics</code> ;
* il faut impérativement utiliser <code>\notes</code> et pas une autre commande ;
* <code>\hsong{…}</code> met le texte dans un boîte <code>\hbox</code>.
 
=== Placer du texte au-dessus des portées ===
 
Pour placer du texte au-dessus des portées, on utilise <code>\uptext</code>. Cela peut être un commentaire, mais aussi une indication comme <code>\textit{tr}</code> pour la trille.
 
Rappelons la commande <code>\znotes … \enotes</code> permet de ne pas provoquer d'espacement et donc de ne pas poser de problème d'alignement ; on peut alors faire
\znotes \uptext{''texte''} \enotes
 
Certains symboles sont placés en indiquant la note après ; par exemple, en clef de ''sol'', pour placer le symbole au dessus de la portée, on peut utiliser la note <code>m</code> ''(fa)'' :
* <code>\segno m</code> pour le signe de répétition ;
* <code>\coda m</code> pour le ballon de coda.
 
== Autres extensions ==
 
L'extension <code>gchords</code> permet de dessiner des diagrammes d'accord pour guitare.
 
== Voir aussi ==
 
* http://ctan.tug.org/tex-archive/macros/musixtex/taupin/
 
[[Catégorie:Musique]]
[[Catégorie:Programmation LaTeX (livre)]]