@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 5c35684285613e8960e2dd4324559e1ee3774b9b
+ Translation of GIT committish: 88a5dbc589b0d0434f8e640467b5ab57d14dc461
- 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..
+ 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.17.11"
+@c \version "2.19.22"
@c Translators: Jean-Charles Malahieude, Valentin Villenave
* Titres et entêtes::
* Travail sur des fichiers texte::
* Contrôle des sorties::
-* Sortie MIDI::
+* Génération de fichiers MIDI::
* Extraction d'informations musicales::
@end menu
@section Titres et entêtes
@translationof Titles and headers
+@cindex titre
+@cindex entête
+@cindex pied de page
+
La plupart de la musique qui est éditée comporte un titre et le nom de
son compositeur ; certains ouvrages dispensent beaucoup plus
d'informations.
@menu
* Création de titres et entête ou pied de page::
* Titrages personnalisés::
+* Création de métadonnées PDF::
* Notes de bas de page::
* Référencement des numéros de page::
* Table des matières::
}
\score {
- \new Staff \relative g, {
+ \new Staff \relative {
\clef bass
\key g \major
- \repeat unfold 2 { g16( d' b') a b d, b' d, } |
+ \repeat unfold 2 { g,16( d' b') a b d, b' d, } |
\repeat unfold 2 { g,16( e' c') b c e, c' e, } |
}
\header {
}
\score {
- \new Staff \relative b {
+ \new Staff \relative {
\clef bass
\key g \major
\partial 16 b16 |
\header {
title = "DAS WOHLTEMPERIRTE CLAVIER"
subtitle = "TEIL I"
- % Pas de mention spéciale pour cet ouvrage
+ % Pas de mention spéciale par défaut pour cet ouvrage
tagline = ##f
}
\markup { \vspace #1 }
@seealso
Manuel de notation :
-@ref{Structure de fichier},
@ref{Mise en forme par défaut des titrages subalternes},
-@ref{Mise en forme personnalisée des titrages}.
+@ref{Mise en forme personnalisée des titrages},
+@ref{Structure de fichier}.
@node Mise en forme par défaut des titrages subalternes
@unnumberedsubsubsec Mise en forme par défaut des titrages subalternes
@translationof Default layout of bookpart and score titles
-Voici les différentes variables attachées au bloc @code{\header} :
+Voici les différentes variables imprimables attachées au bloc
+@code{\header} :
@c KEEP LY
@lilypond[papersize=a6landscape,quote,verbatim,noragged-right]
meter = "Tempo"
arranger = "Arrangeur"
% Les champs suivants sont centrés en bas de page
- tagline = "« tagline » ou mention spéciale en pied de dernière page"
- copyright = "copyright en pied de première page"
+ tagline = "Le « tagline » ou mention spéciale va en pied de dernière page"
+ copyright = "Le copyright va en pied de première page"
}
\score {
{ s1 }
@end itemize
-La mention spéciale se modifie en alimentant le champ @code{tagline} au
-niveau du bloc @code{\header} principal.
+Le texte de la mention spéciale par défaut se modifie en alimentant le
+champ @code{tagline} au niveau du bloc @code{\header} principal.
@lilypond[papersize=a8landscape,verbatim]
\book {
\header {
- tagline = "... music notation for Everyone"
+ tagline = "... la notation musicale pour Tous"
}
\score {
- \relative c' {
- c4 d e f
+ \relative {
+ c'4 d e f
}
}
}
@end lilypond
-Pour supprimer le @code{tagline}, il suffit de lui assigner la valeur
-@code{##f}.
+Pour supprimer le @code{tagline} par défaut, il suffit de lui assigner
+la valeur @code{##f}.
@node Titrages personnalisés
@file{../ly/titling-init.ly}.
+@node Création de métadonnées PDF
+@subsection Création de métadonnées PDF
+@translationof Creating PDF metadata
+
+@cindex PDF metadata
+@cindex métadonnées PDF
+
+En plus de s'imprimer sur la partition, les variables du bloc
+@code{\header} permettent de générer les métadonnées PDF (informations
+par les lecteurs de PDF en tant que @code{propriétés} du fichier PDF).
+Par exemple, affecter « Symphony I » à la propriété @code{title} dans le
+bloc @code{\header} donnera aussi ce titre au document PDF.
+
+@example
+ @code{\header@{}
+ @code{title = "Symphony I"}
+ @code{@}}
+@end example
+
+Lorsque le titre imprimé diffère de celui affiché en tant que propriété
+du PDF, devra être renseignée la propriété @code{pdftitle}.
+
+@example
+ @code{\header@{}
+ @code{title = "Symphony I"}
+ @code{pdftitle = "Symphony I by Beethoven"}
+ @code{@}}
+@end example
+
+Les variables @code{title}, @code{subject}, @code{keywords},
+@code{subtitle}, @code{composer}, @code{arranger}, @code{poet},
+@code{author} et @code{copyright} initialisent toutes les propriétés
+PDF, qu'il suffit de préfixer d'un « pdf » pour affecter aux propriétés
+PDF une valeur divergente de la sortie imprimable.
+
+La propriété PDF @code{Creator} prend automatiquement la valeur
+« LilyPond » additionnée deu numéro de version ; les valeurs de
+@code{CreationDate} et @code{ModDate} sont définies à la date et l'heure
+courantes -- @code{ModDate} peut être écrasé par la variable de
+@code{\header} @code{moddate} (ou @code{pdfmoddate}) pour un horodatage
+PDF valide.
+
+
@node Notes de bas de page
@subsection Notes de bas de page
@translationof Creating footnotes
Le contexte auquel appartient l'objet à annoter. Cet argument
peut être omis dès lors qu'il s'agit d'un contexte de bas niveau
tel que @code{Voice}.
-
+
@item nom-grob
Le type d'objet à annoter -- @samp{Flag} par exemple. Lorsque cet
élément est spécifié, c'est l'objet en question qui servira de point de
@lilypond[quote,verbatim,papersize=a8landscape]
\book {
\header { tagline = ##f }
- \relative c'' {
- a4_\footnote #'(0 . -1) "Une liaison arbitrairement en dessous" (
+ \relative {
+ a'4_\footnote #'(0 . -1) "Une liaison arbitrairement en dessous" (
b8^\footnote #'(1 . 0.5) "Une ligature manuelle forcée en haut" [
b8 ]
c4 )
\auto-footnote "recent" \italic " Aug 2012"
"composition."
}
- \relative c' {
+ \relative {
a'4 b8 e c4 d
}
}
}
"composition."
}
- \relative c' {
+ \relative {
a'4 b8 e c4 d
}
}
}
"composition."
}
- \relative c' {
+ \relative {
a'4 b8 e c4 d
}
}
exemple @code{#'firstScore},
@item
-un @qq{emporte-pièce} afin d'estimer la longueur totale du
-@emph{markup}, et
+un « emporte-pièce » afin d'estimer la longueur totale du @emph{markup},
+et
@item
un texte de remplacement au cas où la référence ne serait pas retrouvée.
@end verbatim
Les @emph{markups} dévolus à la mise en forme de la table des matières
-se définissent dans le bloc @code{\paper}. Il s'agit par défaut de
-@code{tocTitleMarkup} pour le titre de la table, et de
-@code{tocItemMarkup} pour ses éléments -- composés de leur libellé et
-numéro de page. Vous pouvez bien entendu personnaliser ces variables :
+se définissent dans le bloc @code{\paper}. LilyPond dispose de deux
+@emph{markups} prédéfinis :
+
+@itemize
+
+@item
+@code{tocTitleMarkup}
+
+@noindent
+Utilisé pour mettre en forme le titre de la table des matières.
+
+@verbatim
+tocTitleMarkup = \markup \huge \column {
+ \fill-line { \null "Table of Contents" \null }
+ \null
+}
+@end verbatim
+
+@item
+@code{tocItemMarkup}
+
+@noindent
+Utilisé pour mettre en forme les éléments au sein de la table des
+matières.
+
+@verbatim
+tocItemMarkup = \markup \fill-line {
+ \fromproperty #'toc:text \fromproperty #'toc:page
+}
+@end verbatim
+
+@end itemize
+
+@noindent
+Ces variables sont adaptables.
+
+Voici comment, par exemple, franciser le titre :
@verbatim
\paper {
- %% Traduit le titre de la table des matières en français :
tocTitleMarkup = \markup \huge \column {
\fill-line { \null "Table des matières" \null }
\hspace #1
}
- %% des fontes un peu plus grandes
- tocItemMarkup = \markup \large \fill-line {
- \fromproperty #'toc:text \fromproperty #'toc:page
- }
+@end verbatim
+
+L'exemple suivant illustre la manière de modifier la taille des éléments
+de la table des matières :
+
+@verbatim
+tocItemMarkup = \markup \large \fill-line {
+ \fromproperty #'toc:text \fromproperty #'toc:page
}
@end verbatim
Notez bien la manière de référencer le libellé et le numéro de page dans
la définition de @code{tocItemMarkup}.
-N'hésitez pas à définir vous-même d'autres commandes et @emph{markups}
-afin de construire une table plus élaborée :
-@itemize
-@item
-commencez par définir une nouvelle variable de type @code{markup} au
-sein du bloc @code{\paper},
+L'élément et son numéro de page peuvent se rejoindre par une ligne
+pointillée :
-@item
-puis définissez une fonction musicale chargée d'insérer un élément de la
-table à partir de cette variable.
-@end itemize
+@lilypond[verbatim,line-width=10.0\cm]
+\header { tagline = ##f }
+\paper {
+ tocItemMarkup = \tocItemWithDotsMarkup
+}
+
+\book {
+ \markuplist \table-of-contents
+ \tocItem \markup { Allegro }
+ \tocItem \markup { Largo }
+ \markup \null
+}
+@end lilypond
+
+N'hésitez pas à définir vous-même d'autres commandes et @emph{markups}
+afin de construire une table plus élaborée. Dans l'exemple qui suit,
+nous créons un nouveau style d'élément dans le but de mentionner les
+actes dans la table des matières d'un opéra :
-Dans l'exemple qui suit, nous avons créé un nouveau style d'élément dans
-le but de mentionner les actes dans la table des matières d'un opéra :
+@noindent
+Commençons par définir une nouvelle variable de type @code{markup} --
+appelée @code{tocActMarkup} -- au sein du bloc @code{\paper}.
@verbatim
\paper {
\hspace #1
}
}
+@end verbatim
+
+@noindent
+Créons ensuite une fonction musicale (@code{tocAct}) utilisant la
+nouvelle définition de @emph{markup} @code{tocActMarkup}.
+@verbatim
tocAct =
-#(define-music-function (parser location text) (markup?)
- (add-toc-item! 'tocActMarkup text))
+ #(define-music-function (text) (markup?)
+ (add-toc-item! 'tocActMarkup text))
@end verbatim
+@noindent
+Dans un fichier LilyPond, l'utilisation de cette définition
+personnalisée pourrait ressembler à ceci :
+
@lilypond[line-width=10.0\cm]
\header { tagline = ##f }
\paper {
}
tocAct =
-#(define-music-function (parser location text) (markup?)
- (add-toc-item! 'tocActMarkup text))
+ #(define-music-function (text) (markup?)
+ (add-toc-item! 'tocActMarkup text))
\book {
\markuplist \table-of-contents
}
@end lilypond
-L'élément et son numéro de page peuvent se rejoindre par une ligne
-pointillée :
-
-@lilypond[verbatim,line-width=10.0\cm]
-\header { tagline = ##f }
-\paper {
- tocItemMarkup = \tocItemWithDotsMarkup
-}
+Voici comment utiliser la commande @code{\fill-with-pattern} dans le
+cadre d'une table des matières :
-\book {
- \markuplist \table-of-contents
- \tocItem \markup { Allegro }
- \tocItem \markup { Largo }
- \markup \null
-}
-@end lilypond
+@verbatim
+ tocItemMarkup = \markup { \fill-line {
+ \override #'(line-width . 70)
+ \fill-with-pattern #1.5 #CENTER . \fromproperty #'toc:text \fromproperty #'toc:page
+ }
+ }
+@end verbatim
@predefined
@funindex \table-of-contents
@ref{Regroupement automatique de parties}. Prenons l'exemple suivant :
@lilypond[verbatim,quote]
-sopranoMusic = \relative c'' { a4 b c b8( a) }
-altoMusic = \relative g' { e4 e e f }
-tenorMusic = \relative c' { c4 b e d8( c) }
-bassMusic = \relative c' { a4 gis a d, }
-allLyrics = \lyricmode {King of glo -- ry }
+sopranoMusic = \relative { a'4 b c b8( a) }
+altoMusic = \relative { e'4 e e f }
+tenorMusic = \relative { c'4 b e d8( c) }
+bassMusic = \relative { a4 gis a d, }
+allLyrics = \lyricmode { King of glo -- ry }
<<
\new Staff = "Soprano" \sopranoMusic
\new Lyrics \allLyrics
\new PianoStaff <<
\new Staff = "RH" {
\set Staff.printPartCombineTexts = ##f
- \partcombine
- \sopranoMusic
- \altoMusic
+ \partcombine \sopranoMusic \altoMusic
}
\new Staff = "LH" {
\set Staff.printPartCombineTexts = ##f
\clef "bass"
- \partcombine
- \tenorMusic
- \bassMusic
+ \partcombine \tenorMusic \bassMusic
}
>>
>>
@funindex \tag
@funindex \keepWithTag
@funindex \removeWithTag
-@funindex \pushToTag
-@funindex \appendToTag
@cindex tag
@cindex balise
+@cindex regroupement de balises
La commande @code{\tag #'@var{partieA}} affecte à une expression
musicale le nom @var{partieA}. Les expressions ainsi balisées pourront
@code{\removeWithTag #'(@var{nom1} @var{nom2}@dots{})}
@tab Musique non balisée et fragments appelés autrement que par
l'un des noms fournis seront inclus ; la musique balisée
- par autre chose que les noms mentionnés est exclue.
+ par autre chose que les noms mentionnés est exclue.
@item
Musique balisée non précédée de @code{\keepWithTag} ou
@end multitable
-Les arguments des commandes @code{\tag}, @code{\keepWithTag} et
-@code{\removeWithTag} doivent être un symbole (tel que
-@code{#'conducteur} ou @code{#'partie}), suivi d'une expression
-musicale.
+L'argument des commandes @code{\tag}, @code{\keepWithTag} et
+@code{\removeWithTag} doit être un symbole ou une liste de symboles
+(tel que @code{#'conducteur} ou @code{#'(violonI violonII)}), suivi
+d'une expression musicale. Si, @emph{et seulement si} les symboles sont
+des indentifiants LilyPond valides (caractères alphabétiques uniquement,
+sans chiffre, souligné ou tiret) qui ne peuvent se confondre avec des
+notes, le @code{#'} peut s'omettre et, pour raccourcir, une liste de
+symbole peut utiliser le point en séparateur -- autrement dit,
+@code{\tag #'(violinI violinII)} peut s'écrire @code{\tag
+violinI.violinII}. Ceci s'applique aussi bien pour @code{\keepWithTag}
+que pour @code{\removeWithTag}.
Dans l'exemple qui suit, nous obtenons deux versions du même extrait,
l'une pour le conducteur, l'autre pour l'instrumentiste qui, elle,
comportera les ornements développés.
@lilypond[verbatim,quote]
-music = \relative g' {
- g8. c32 d
+music = \relative {
+ g'8. c32 d
\tag #'trills { d8.\trill }
\tag #'expand { \repeat unfold 3 { e32 d } }
c32 d
Il est parfois plus aisé d'exclure des fragments :
@lilypond[verbatim,quote]
-music = \relative g' {
- g8. c32 d
+music = \relative {
+ g'8. c32 d
\tag #'trills { d8.\trill }
\tag #'expand {\repeat unfold 3 { e32 d } }
c32 d
exclus tous les fragments non concernés par l'une quelconque des
balises mentionnées.
+@cindex regroupements de balises
+@cindex balises, regroupement
+@funindex \tagGroup
+
+Bien que @code{\keepWithTag} soit efficace pour gérer @emph{un} jeu
+d'alternatives, le rejet de musique filtrée par des balises
+@emph{étrangères} se révèle problématique lorsque les @code{\tag} sont
+utilisés à plusieurs fins. Des « groupements de balises » peuvent
+alors être déclarés :
+
+@example
+\tagGroup #'(violinI violinII viola cello)
+@end example
+
+stipule que ces filtres respectifs appartiennent à un même groupe.
+
+@example
+\keepWithTag #'violinI @dots{}
+@end example
+
+ne sera donc concerné que par les balises @code{violinI} contenues dans
+le groupe de filtres : tout élément de la musique incluse qui serait
+balisé par un ou plusieurs des filtres de ce jeu mais @emph{pas} par
+@code{violinI} sera rejeté.
+
+Pour toute commande @code{\keepWithTag}, seules les balises du
+regroupement mentionnées dans la commande seront visibles.
+
+Une balise ne peut faire partie que d'un seul regroupement.
+
+@funindex \pushToTag
+@funindex \appendToTag
+@cindex raccordement dans une balise
+
Il peut arriver que vous ayez besoin de raccorder quelque chose en un
point particulier d'une expression musicale. Les commandes
@code{\pushToTag} et @code{\appendToTag} permettent d'insérer du
Ces deux instructions sont affectées d'une balise, le matériau à
raccorder à chaque instance de la balise, et l'expression balisée.
-Ces instructions prennent soin de recopier tout ce qui doit être
-modifié, de telle sorte que l'expression @code{\test} originale conserve
-tout son sens.
-
+
@seealso
Manuel d'initiation :
@rlearning{Organisation du code source avec des variables}.
Manuel de notation :
-@ref{Regroupement automatique de parties},
-@ref{Insertion de fichiers LilyPond}.
+@ref{Insertion de fichiers LilyPond},
+@ref{Regroupement automatique de parties}.
@knownissues
L'application d'un @code{\relative} à une expression musicale
@seealso
Manuel d'initiation :
-@rlearning{Organisation du code source avec des variables},
-@rlearning{Feuilles de style}.
+@rlearning{Feuilles de style},
+@rlearning{Organisation du code source avec des variables}.
Manuel de notation :
@ref{Insertion de fichiers LilyPond}.
LilyPond n'effectue aucune conversion d'encodage que ce soit. Ceci
implique donc que tout texte -- un titre, des paroles ou même une
-instruction musicale -- comportant des caractères non ASCII soit
+instruction musicale -- comportant des caractères non ASCII soit
codé en UTF-8. Le plus sûr moyen de saisir du texte de la sorte
consiste à utiliser un éditeur supportant l'unicode et à enregistrer vos
fichier en UTF-8. C'est le cas pour la plupart des éditeurs actuels,
@lilypond[quote]
%c No verbatim here as the code does not display correctly in PDF
+% Font settings for Cyrillic and Hebrew
+% Linux Libertine fonts contain Cyrillic and Hebrew glyphs.
+\paper {
+ #(define fonts
+ (set-global-fonts
+ #:roman "Linux Libertine O,serif"
+ #:sans "Linux Biolinum O,sans-serif"
+ #:typewriter "Linux Libertine Mono O,monospace"
+ ))
+}
+
% Cyrillic
bulgarian = \lyricmode {
Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
à vo -- cê uma can -- ção legal
}
-\relative c' {
- c2 d e f g f e
+\relative {
+ c'2 d e f g f e
}
\addlyrics { \bulgarian }
\addlyrics { \hebrew }
@lilypond[quote,verbatim]
\score {
- \relative c'' {
- c1 \mark \markup { \char ##x03EE }
+ \relative {
+ c''1 \mark \markup { \char ##x03EE }
c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
}
\addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } }
}
-\markup { "Copyright 2008--2012" \char ##x00A9 }
+\markup { "Copyright 2008--2015" \char ##x00A9 }
@end lilypond
@cindex copyright
@subsection Extraction de fragments musicaux
@translationof Extracting fragments of music
-LilyPond permet d'extraire des fragments d'une partition à l'instar du
-choriste amateur qui alimente son album avec des coupures de journaux.
+@cindex fragments, extraction
-Vous devrez pour cela définir les mesures à découper. La définition
-suivante, incluse dans votre fichier source,
+@funindex clip-regions
-@verbatim
-\layout {
+LilyPond permet d'extraire des fragments d'une partition, une fois
+definis explicitement le ou les emplacements de la musique concernés au
+sein du bloc @code{\layout} du fichier source, grâce à la fonction
+@code{clip-regions}, puis en lançant @command{lilypond} avec l'option
+@w{@code{-dclip-systems}}.
+
+@example
+\layout @{
clip-regions
= #(list
(cons
(make-rhythmic-location 5 1 2)
(make-rhythmic-location 7 3 4)))
-}
-@end verbatim
+@}
+@end example
@noindent
-vous permettra d'extraire un fragment compris entre le milieu de la
-cinquième mesure et quelque part dans la septième. Le triplet
-@code{5 1 2} signifie : après la durée d'une blanche dans la mesure 5 ;
-le @code{7 3 4} signifie quant à lui que l'on s'arrête à la mesure 7,
-après la durée de trois noires.
-
-Rien ne vous empêche d'extraire plusieurs fragments, dès lors que vous
-définissez dans la liste d'autres paires d'emplacements rythmiques.
+L'exemple ci-dessus permet d'extraire un seul fragment @emph{débutant}
+après une blanche dans la cinquième mesure (@code{5 1 2}) et
+@emph{finissant} après trois noires dans la septième
+mesure (@code{7 3 4}).
+
+D'autres fragments seront extraits dès lors que d'autres paires de
+@w{@code{make-rhythmic-location}} auront été ajoutées à la liste de
+@w{@code{clip-regions}} présente dans le bloc @code{\layout}.
+
+Chaque fragment sera généré individuellement sous la forme d'un fichier
+@code{EPS}, converti en @code{PDF} ou @code{PNG} selon le format que
+vous aurez stipulé. La musique extraite est rendue comme si elle avait
+été littéralement « découpée » dans la partition. Par voie de
+conséquence, un fragment dépassant une ligne fera l'objet d'autant de
+fichiers séparés que de lignes de la partition complète.
-Cette fonctionnalité n'est toutefois effective que lorsque vous lancez
-LilyPond avec l'option @w{@code{-dclip-systems}}. Les @qq{coupures}
-seront générées sous la forme de fichiers EPS, convertis en PDF ou PNG
-selon le format que vous aurez stipulé.
+@seealso
+Manuel de notation :
+@ref{Le bloc layout}.
-Pour de plus amples informations quant au format des résultats,
-consultez le chapitre @rprogram{Lancement de lilypond}.
+Manuel d'utilisation :
+@rprogram{Utilisation en ligne de commande}.
@node Ignorer des passages de la partition
événements seront escamotés, y compris les changements de tempo ou
d'instrument -- vous voilà prévenu !
-@lilypond[quote,relative=2,ragged-right,verbatim]
-c8 d
-\set Score.skipTypesetting = ##t
-e8 e e e e e e e
-\set Score.skipTypesetting = ##f
-c8 d b bes a g c2
+@lilypond[quote,ragged-right,verbatim]
+\relative c' {
+ c1
+ \set Score.skipTypesetting = ##t
+ \tempo 4 = 80
+ c4 c c c
+ \set Score.skipTypesetting = ##f
+ d4 d d d
+}
@end lilypond
Dans le cadre de musique polyphonique, @code{Score.skipTypesetting}
qu'à propos des conditions d'utilisation.
-@node Sortie MIDI
-@section Sortie MIDI
-@translationof MIDI output
+@node Génération de fichiers MIDI
+@section Génération de fichiers MIDI
+@translationof Creating MIDI output
@cindex son
@cindex MIDI
-MIDI (Musical Instrument Digital Interface) constitue un standard en
-matière de connexion et de contrôle des instruments électroniques. Un
-fichier MIDI contient une série de notes réparties dans différentes
-pistes. Il ne s'agit en rien d'un fichier sonore ; il vous faudra
-un logiciel capable de traduire ces séries de notes en sons réels.
-
-Vous pouvez convertir vos partition en fichier MIDI de manière à
-entendre ce que vous avez saisi. Ceci vous permet de contrôler aisément
-ce que vous avez saisi : octaves et altérations erronées heurteront
-votre oreille avertie grâce au MIDI.
-
-Le fichier MIDI généré par LilyPond est relativement brut. Vous pouvez
-cependant obtenir un meilleur rendu avec @ref{Le script Articulate}.
+LilyPond peut produire des fichiers conformes au standard MIDI (Musical
+Instrument Digital Interface), ce qui permet de vérifier le rendu à
+l'oreille grace à un logiciel ou un périphérique sachant interpréter le
+MIDI. L'écoute du rendu en MIDI permet de contrôler aisément ce que
+vous avez saisi : octaves et altérations erronées heurteront votre
+oreille avertie !
-Dans une sortie MIDI, LilyPond alloue un canal à chaque portée, tout en
-réservant le canal 10 aux percussions. Dans la mesure ou un
-périphérique MIDI ne comprend que 16 canaux, un fichier MIDI qui
-comportera plus de quinze portées verra le même canal réutilisé.
+Les fichiers MIDI, contrairement aux fichiers AAC, MP3 ou Vorbis, ne
+contiennent pas de son et nécessitent donc le recours à un logiciel
+supplémentaire pour les écouter.
@menu
-* Création de fichiers MIDI::
-* Instrument MIDI::
+* Notation prise en compte dans le MIDI::
+* Notation non prise en compte dans le MIDI::
* Le bloc MIDI::
-* Contenu de la sortie MIDI::
-* Répétitions et MIDI::
* Gestion des nuances en MIDI::
-* MIDI et percussions::
-* Le script Articulate::
+* Gestion des instruments MIDI::
+* Gestion des répétitions en MIDI::
+* Affectation des canaux MIDI::
+* Propriétés de contextes et effets MIDI::
+* Amélioration du rendu MIDI::
@end menu
+@node Notation prise en compte dans le MIDI
+@subsection Notation prise en compte dans le MIDI
+@translationof Supported notation for MIDI
-@node Création de fichiers MIDI
-@subsection Création de fichiers MIDI
-@translationof Creating MIDI files
+@cindex MIDI, éléments pris en compte
-LilyPond générera un fichier MIDI dès que vous ajouterez un bloc
-@code{\midi} à la structure de votre partition, comme ici :
+LilyPond retranscrit par défaut dans un fichier MIDI les éléments de
+notation suivant :
+
+@itemize
+@item les marques de respiration,
+@item les accords nommés,
+@item les crescendos et decrescendos s'étendant sur plusieurs notes --
+le volume s'ajuste linéairement entre les deux extrêmes,
+@item les indications de nuance, de @code{ppppp} à @code{fffff}, y compris
+@code{mp}, @code{mf} et @code{sf},
+@item les microtonalités mais @emph{pas} sous forme d'accord ; leur
+rendu nécessite cependant un lecteur qui prenne en charge la
+modulation,
+@item les paroles,
+@item les hauteurs,
+@item le rythme sous forme de durée de note, y compris les n-olets,
+@item les articulations « simples » comme staccato, staccatissimo,
+accent, marcato et portato,
+@item les changements de tempo indiqués par un @code{\tempo},
+@item les liaisons de tenue,
+@item les tremolos, excepté ceux utilisant la syntaxe
+« @code{:}[@var{nombre}] ».
+@end itemize
+
+Spatialisation, balance, expression, réverbération et chorus peuvent se
+contrôler à l'aide de propriétés de contexte -- voir
+@ref{Propriétés de contextes et effets MIDI}.
+
+En combinaison avec le script @file{articulate}, d'autres éléments
+seront aussi reportés en MIDI :
+
+@itemize
+@item les appogiatures -- celles-ci prendront la moitié de la valeur,
+dépourvue de point, de la note qui les suit -- par exemple,
@example
-\score @{
- @var{@dots{}musique@dots{}}
- \midi @{ @}
-@}
+\appoggiatura c8 d2.
@end example
-Lorsque le bloc @code{\score} contient un bloc @code{\midi} mais pas de
-bloc @code{\layout}, LilyPond ne produira qu'une sortie MIDI. Si donc
-vous avez besoin aussi d'un support visuel, vous devrez aussi mentionner
-un bloc @code{\layout}.
+@noindent
+le do (noté @code{c}) prendra la valeur d'une noire.
+
+@item les ornements (mordants, trilles et groupettos, etc.),
+@item rallentando, accelerando, ritardando et a tempo,
+@item les liaisons y compris de phrasé,
+@item les tenutos.
+@end itemize
+
+@noindent
+Voir @ref{Amélioration du rendu MIDI}.
+
+
+@node Notation non prise en compte dans le MIDI
+@subsection Notation non prise en compte dans le MIDI
+@translationof Unsupported notation for MIDI
+
+@cindex MIDI, éléments non pris en comte
+
+Certains éléments de notation ne peuvent être retranscrits dans un
+fichier MIDI :
+
+@itemize
+@item les articulations autres que staccato, staccatissimo, accent, marcato
+et portato,
+@item les crescendos et decrescendos sur @emph{une seule} note,
+@item les points d'orgue,
+@item la basse chiffrée,
+@item les glissandos,
+@item les chutes ou sauts,
+@item les accords en microtonalité,
+@item le rythme indiqué sous forme d'annotation, comme « swing »,
+@item les changements de tempo indiqués sous forme d'annotation (sans
+@code{\tempo}),
+@item les trémolos indiqués par la syntaxe « @code{:}[@var{nombre}] ».
+@end itemize
+
+
+@node Le bloc MIDI
+@subsection Le bloc MIDI
+@translationof The MIDI block
+
+@cindex MIDI, le bloc
+
+LilyPond générera un fichier MIDI dès que vous ajouterez un bloc
+@code{\midi}, même vide, au sein du bloc @code{\score} :
@example
\score @{
@var{@dots{}musique@dots{}}
- \midi @{ @}
\layout @{ @}
+ \midi @{ @}
@}
@end example
-Hauteurs, durées, liaisons de prolongation, nuances et changements de
-tempo seront interprétés et traduits en événements MIDI. Les
-indications de nuances, crescendos et decrescendos sont traduits en
-niveau de volume ; les indications sous la forme d'une fraction
-déterminée du volume disponible, et crescendos et decrescendos sous la
-forme d'une progression linéaire entre les deux extrêmes. Le rendu des
-indications de nuance peut être désactivé pour le MIDI -- voir
-@ref{Le bloc MIDI}.
-
-Le tempo initial ainsi que ses changements sont normalement indiqués au
-fil de la notation à l'aide de la commande @code{\tempo} ; ils seront
-retranscrits dans le fichier MIDI. La commande @code{\tempo} donne lieu
-à l'impression d'une indication métronomique que vous pouvez toutefois
-rendre invisible, comme indiqué à la rubrique
-@ref{Indication métronomique}. Une autre manière de spécifier le tempo
-initial pour un fichier MIDI est indiquée plus avant -- voir
-@ref{Le bloc MIDI}.
-
-En raison de certaines limitations de Windows, les fichiers MIDI doivent
-y porter l'extension @code{.mid}. D'autres systèmes utilisent
-l'extension @code{.midi}. Si besoin est, placez la ligne suivante au
-début de votre fichier source, avant l'ouverture de tout bloc
-@code{\book}, @code{\bookpart} ou @code{\score} :
+@warning{Lorsque le bloc @code{@bs{}score} contient uniquement un bloc
+@code{@bs{}midi} (autrement dit pas de bloc @code{@bs{}layout}),
+LilyPond produira uniquement la sortie MIDI -- aucun support visuel ne
+sera généré.}
+
+L'extension par défaut des fichiers MIDI générés (@code{.midi}) peut se
+modifier en ligne de commande :
@example
-#(ly:set-option 'midi-extension "midi")
+lilypond -dmidi-extension=mid MonFichier.ly
@end example
-Cette ligne déterminera @code{.midi} comme extension par défaut pour les
-fichiers MIDI.
-
-Vous pouvez aussi le faire en ligne de commande :
+Une autre manière de procéder consiste à placer la ligne suivante au
+début de votre fichier source, avant l'ouverture de tout bloc
+@code{\book}, @code{\bookpart} ou @code{\score} -- voir
+@ref{Structure de fichier} :
@example
-lilypond … -dmidi-extension=midi fichierLily.ly
+#(ly:set-option 'midi-extension "mid")
@end example
-@snippets
-@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
-{changing-midi-output-to-one-channel-per-voice.ly}
+@seealso
+Manuel de notation :
+@ref{Structure de fichier}.
+
+Fichiers d'initialisation :
+@file{scm/midi.scm}.
@knownissues
-@c In 2.11 the following no longer seems to be a problem -td
-@ignore
-Un (de)crescendo non terminé ne sera pas correctement rendu en MIDI --
-il y a nécessairement du silence. Il vous faut donc lui donner une fin
-explicite. Par exemple,
+Le standard MIDI dispose de 15 canaux plus un (le numéro 10) affecté aux
+percussions. Les portées sont assignées l'une après l'autre à un canal.
+Dans la mesure où une partition comporte plus de 15 portées, les portées
+au-delà de la quinzième partageront un même canal MIDI, sans toutefois
+l'écraser. Ceci peut entraîner des conflits au niveau des canaux en
+raison des propriétés MIDI, notamment l'instrument utilisé.
-@example
-@{ a4\< b c d\f @}
-@end example
+@node Gestion des nuances en MIDI
+@subsection Gestion des nuances en MIDI
+@translationof Controlling MIDI dynamics
-@noindent
-ne fonctionnera pas correctement, contrairement à
+@cindex MIDI, gestion des nuances
-@example
-@{ a4\< b c d\!\f @}
-@end example
-@end ignore
+Le volume général de la sortie MIDI peut se définir, ainsi que ses
+modulations, en fonction des indications de nuance et les volumes
+relatifs entre les différents instruments.
-Un changement de volume ne peut intervenir que sur le démarrage d'une
-note. C'est la raison pour laquelle la succession d'un crescendo et
-d'un diminuendo ne peut se produire sur une même note.
+Les indications de nuance se traduisent automatiquement en niveau de
+volume dans l'amplitude disponible en MIDI alors que crescendos et
+diminuendos auront une progression linéaire entre les extrêmes.
-Certains lecteurs MIDI ne rendent pas correctement les changements de
-tempo. MS Windows Media Player et
-@uref{http://@/timidity@/.sourceforge@/.net/,timidity} le font sans
-problème.
+@menu
+* Indication des nuances en MIDI::
+* Réglage du volume en MIDI::
+* Réglage de propriétés dans le bloc MIDI::
+@end menu
-@node Instrument MIDI
-@subsection Instrument MIDI
-@translationof MIDI Instruments
-@cindex instrument, nom d'
-@cindex MIDI, instruments
-@funindex Staff.midiInstrument
+@node Indication des nuances en MIDI
+@unnumberedsubsubsec Indication des nuances en MIDI
+@translationof Dynamic marks in MIDI
-L'instrument MIDI affecté à un canal particulier est déterminé par la
-propriété @code{Staff.midiInstrument}. Vous pouvez choisir l'un des
-instruments répertoriés à l'annexe @ref{Instruments MIDI}.
+@cindex MIDI, indications de nuance
-@example
-\new Staff @{
- \set Staff.midiInstrument = #"glockenspiel"
- @var{@dots{}notes@dots{}}
-@}
-@end example
+Les indications de nuance, de @code{ppppp} à @code{fffff} -- y compris
+@code{mp}, @code{mf} et @code{sf} -- ont des valeurs prédéfinies. Ce
+coefficient est alors appliqué pour corriger le volume général de façon
+à obtenir le niveau sonore qui sera retranscrit dans le fichier de
+sortie pour la nuance considérée. Nous allons, par défaut, de 0,25 pour
+un @notation{ppppp} à 0,95 pour un @notation{fffff}. Les
+correspondances entre nuance et fraction de volume sont répertoriées
+dans le fichier @file{scm/midi.scm}.
-@example
-\new Staff \with @{midiInstrument = #"cello"@} @{
- @var{@dots{}notes@dots{}}
-@}
-@end example
+@snippets
+@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
+{creating-custom-dynamics-in-midi-output.ly}
-Lorsque l'instrument choisi ne correspond pas exactement à l'une des
-dénominations consacrées, LilyPond le replacera par un piano de concert
-(@code{"acoustic grand"}).
+@seealso
+Fichiers d'initialisation :
+@file{ly/script-init.ly},
+@file{scm/midi.scm}.
+Morceaux choisis :
+@rlsr{MIDI}.
-@node Le bloc MIDI
-@subsection Le bloc MIDI
-@translationof MIDI block
+Référence des propriétés internes :
+@rinternals{Dynamic_performer}.
+
+@node Réglage du volume en MIDI
+@unnumberedsubsubsec Réglage du volume en MIDI
+@translationof Setting MIDI volume
-Dès lors que vous désirez obtenir une sortie MIDI, vous devrez inscrire
-un bloc @code{\midi} au sein du bloc @code{\score}. Son fonctionnement
-est comparable à ce lui du bloc @code{\layout}, voire plus simple. Si
-le bloc @code{\midi} est la plupart du temps laissé vide, il peut
-contenir des aménagements pour certains contextes, la définition de
-contextes particuliers ou du code permettant de déterminer la valeur de
-certaines propriétés. L'exemple suivant détermine le tempo initial du
-fichier MIDI tout en se passant de son indication sur la partition
-imprimée.
+@cindex MIDI, réglage du volume
+
+Les valeurs extrêmes du volume MIDI des nuances se contrôlent à l'aide
+des propriétés @code{midiMinimumVolume} et @code{midiMaximumVolume} qui
+agissent au niveau @code{Score}. Ces propriétés sont effectives dès
+lors qu'une nuance est indiquée ; une nuance de départ explicite est donc
+requise pour que le volume soit ajusté dès le début de la partition.
+Vous pouvez alors modifier la fraction correspondant à chaque nuance à
+l'aide de la formule
@example
-\score @{
- @var{@dots{}musique@dots{}}
- \midi @{
- \tempo 4 = 72
- @}
-@}
+midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fraction
@end example
-Ici, le tempo est fixé à 72 noires à la minute. Spécifier un tempo de
-la sorte ne permet pas de donner une valeur pour une note pointée. Vous
-devrez, en pareil cas, subdiviser la note pointée en durée plus courte.
-Par exemple, indiquer 90 à la noire pointée est équivalent à spécifier
-270 croches à la minute :
+Voici comment ajuster les nuances tout en limitant l'amplitude du volume
+entre 0,2 et 0,5 :
@example
-tempoWholesPerMinute = #(ly:make-moment 270/8)
+\score @{
+ <<
+ \new Staff @{
+ \set Staff.midiInstrument = #"flute"
+ @var{@dots{} music @dots{}}
+ @}
+ \new Staff @{
+ \set Staff.midiInstrument = #"clarinet"
+ @var{@dots{} music @dots{}}
+ @}
+ >>
+ \midi @{
+ \context @{
+ \Score
+ midiMinimumVolume = #0.2
+ midiMaximumVolume = #0.5
+ @}
+ @}
+@}
@end example
-@cindex MIDI et définition de contexte
-@cindex contexte, définition en MIDI
-
-La syntaxe permettant de définir un contexte pour le @code{\midi} est en
-tout point identique à celle que vous utilisez dans le bloc
-@code{\layout}, à ceci près que le @qq{graveur} est remplacé par un
-@qq{interprète}. Les différents contextes disponibles en matière de
-MIDI sont répertoriés dans le fichier d'initialisation
-@file{../ly/performer-init.ly} -- pour plus de détail, voir
-@rlearning{Autres sources de documentation}.
-Si vous voulez vous passer des nuances dans votre fichier MIDI, il vous
-suffit d'insérer les lignes suivantes dans votre bloc
-@code{\midi@{ @}}.
+La définition de l'amplitude du volume MIDI au niveau d'un contexte
+@code{Staff} -- grace aux propriétés @code{midiMinimumVolume} et
+@code{midiMaximumVolume} -- permet en quelque sorte d'égaliser un
+instrument MIDI.
@example
-\midi @{
- @dots{}
- \context @{
- \Voice
- \remove "Dynamic_performer"
+\score @{
+ \new Staff @{
+ \set Staff.midiInstrument = #"flute"
+ \set Staff.midiMinimumVolume = #0.7
+ \set Staff.midiMaximumVolume = #0.9
+ @var{@dots{} musique @dots{}}
@}
+ \midi @{ @}
@}
@end example
-LilyPond ne générera de sortie MIDI que si vous incluez un bloc
-@code{\midi} dans la structure de la partition, initialisée par la
-commande @code{\score}.
+Dans le cas d'une partition à plusieurs portées et différents
+instruments, les volumes relatifs entre les différents instruments se
+gèrent individuellement :
@example
\score @{
- @{ @dots{}notes@dots{} @}
+ <<
+ \new Staff @{
+ \set Staff.midiInstrument = #"flute"
+ \set Staff.midiMinimumVolume = #0.7
+ \set Staff.midiMaximumVolume = #0.9
+ @var{@dots{} music @dots{}}
+ @}
+ \new Staff @{
+ \set Staff.midiInstrument = #"clarinet"
+ \set Staff.midiMinimumVolume = #0.3
+ \set Staff.midiMaximumVolume = #0.6
+ @var{@dots{} music @dots{}}
+ @}
+ >>
\midi @{ @}
@}
@end example
+La clarinette de cet exemple jouera relativement moins fort que la
+flûte.
-@node Contenu de la sortie MIDI
-@subsection Contenu de la sortie MIDI
-@translationof What goes into the MIDI output?
+En l'absence de tout réglage des propriétés de volume, LilyPond
+appliquera cependant un léger degré d'égalisation pour certains
+instruments -- voir @file{scm/midi.scm}.
-@c TODO Check grace notes - timing is suspect?
+@snippets
+@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
+{replacing-default-midi-instrument-equalization.ly}
-@menu
-* Éléments pris en compte dans le MIDI::
-* Éléments non pris en compte dans le MIDI::
-@end menu
+@seealso
+Fichiers d'initialisation :
+@file{scm/midi.scm}.
+Manuel de notation :
+@ref{Mise en forme de la partition}.
-@node Éléments pris en compte dans le MIDI
-@unnumberedsubsubsec Éléments pris en compte dans le MIDI
-@translationof Supported in MIDI
-
-@cindex hauteurs en MIDI
-@cindex MIDI, hauteurs
-@cindex quart de ton en MIDI
-@cindex MIDI, quart de ton
-@cindex microtonalité en MIDI
-@cindex MIDI, microtonalité
-@cindex accords nommés en MIDI
-@cindex MIDI, accords nommés
-@cindex Rythme en MIDI
-@cindex MIDI, Rythme
-@cindex articulations et MIDI
-@cindex MIDI et articulations
-@cindex trilles et MIDI
-@cindex MIDI et trilles
-@c TODO etc
-
-Un fichier MIDI généré par LilyPond comprendra les éléments de notation
-suivants :
+Référence des propriétés internes :
+@rinternals{Dynamic_performer}.
-@itemize
-@item
-les hauteurs ;
+@knownissues
+Les modifications apportées au volume MIDI n'interviennent que sur
+l'attaque d'une note, en conséquence de quoi crescendos et decrescendos
+n'affecteront pas le volume s'ils se produisent sur une même et unique
+note.
-@item
-les microtonalités -- voir @ref{Altérations}. Leur rendu nécessite
-cependant un lecteur qui prenne en charge la modulation ;
-@item
-les accords nommés ;
+@node Réglage de propriétés dans le bloc MIDI
+@unnumberedsubsubsec Réglage de propriétés dans le bloc MIDI
+@translationof Setting MIDI block properties
-@item
-le rythme en tant que durée de note, y compris les nolets ;
+Le bloc @code{\midi} peut contenir des aménagements pour certains
+contextes, la définition de contextes particuliers ou du code permettant
+de déterminer la valeur de certaines propriétés.
-@item
-les trémolos, exceptés ceux utilisant la syntaxe
-@qq{@code{:}[@var{nombre}]} ;
+@example
+\score @{
+ @var{@dots{} music @dots{}}
+ \midi @{
+ \tempo 4 = 72
+ @}
+@}
+@end example
-@item
-les liaisons de prolongation ;
+Le tempo est ici réglé à 72 noires par minute. Une indication de tempo
+inscrite dans le bloc @code{\midi} ne sera pas reportée sur la partition
+imprimable. Cependant, tout @code{\tempo} mentionné dans le bloc
+@code{\score} sera répercuté dans la sortie MIDI.
-@item
-les indications de nuance ;
+Placée au sein d'un bloc @code{\midi}, la commande @code{\tempo}
+détermine des propriétés lors de la phase d'interprétation de la musique
+et dans le contexte de définition des sorties. Elle est alors
+considérée comme une modification de contexte.
-@item
-les crescendos et decrescendos s'étalant sur plusieurs notes ;
+@cindex MIDI, définition de contexte
+@cindex contexte, définition en MIDI
-@item
-les changements de tempo indiqués par un @code{\tempo} ;
+La syntaxe permettant de définir un contexte pour le @code{\midi} est en
+tout point identique à celle que vous utilisez dans le bloc
+@code{\layout} :
-@item
-les paroles.
-@end itemize
+@example
+\score @{
+ @var{@dots{} musique @dots{}}
+ \midi @{
+ \context @{
+ \Voice
+ \remove "Dynamic_performer"
+ @}
+ @}
+@}
+@end example
-Si vous utilisez @ref{Le script Articulate}, d'autres éléments seront
-alors inclus :
+Ces quelques lignes ont pour effet de supprimer l'application des
+nuances à la sortie MIDI. Vous aurez noté que les modules de traduction
+de LilyPond en matière de son s'appelent @emph{performers} -- des
+« interprètes ».
-@itemize
-@item articulations (lié, staccato, etc.),
-@item trilles et groupettos,
-@item rallentando et accelerando.
-@end itemize
+@seealso
+Manuel d'initiation :
+@rlearning{Autres sources de documentation}.
+
+Manuel de notation :
+@ref{Mise en forme de la partition},
+@ref{Signes d'interprétation}.
+Fichiers d'initialisation :
+@file{ly/performer-init.ly}.
-@node Éléments non pris en compte dans le MIDI
-@unnumberedsubsubsec Éléments non pris en compte dans le MIDI
-@translationof Unsupported in MIDI
+Morceaux choisis :
+@rlsr{MIDI}.
-@c TODO index as above
+Référence des propriétés internes :
+@rinternals{Dynamic_performer}.
-LilyPond ne peut générer d'événement MIDI pour les éléments
-suivant, sauf à utiliser @ref{Le script Articulate} :
+@knownissues
+Certains lecteurs MIDI ne rendent pas correctement les changements de
+tempo.
-@itemize
-@item
-le rythme indiqué sous forme d'annotation (par ex. @emph{swing}) ;
+Les modifications de @code{midiInstrument} ou autres options MIDI en
+début de portée peuvent se retrouver dédoublées dans la sortie MIDI.
-@item
-les changements de tempo indiqués sous forme d'annotation (sans
-@code{\tempo}) ;
+@node Gestion des instruments MIDI
+@subsection Gestion des instruments MIDI
+@translationof Using MIDI Instruments
-@item
-les staccatos et autres articulations ou ornementations ;
+@cindex instrument, nom d'
+@cindex MIDI, instruments
+@funindex Staff.midiInstrument
-@item
-les liaisons d'articulation et de phrasé ;
+L'instrument MIDI est déterminé par la propriété @code{midiInstrument},
+au sein d'un contexte @code{Staff}.
-@item
-les crescendos ou decrescendos sur une seule note ;
+@example
+\score @{
+ \new Staff @{
+ \set Staff.midiInstrument = #"glockenspiel"
+ @var{@dots{} music @dots{}}
+ @}
+ \midi @{ @}
+@}
+@end example
-@item
-les trémolos indiqués par la syntaxe @qq{@code{:}[@var{nombre}]} ;
+ou
-@item
-la basse chiffrée ;
+@example
+\score @{
+ \new Staff \with @{midiInstrument = #"cello"@} @{
+ @var{@dots{} music @dots{}}
+ @}
+ \midi @{ @}
+@}
+@end example
-@item
-les accords en microtonalité.
-@end itemize
+Lorsque l'instrument choisi ne correspond pas exactement à l'une des
+dénominations consacrées, LilyPond le remplacera par un piano de concert
+(@code{"acoustic grand"}) -- voir @ref{Instruments MIDI}.
+
+@seealso
+Manuel d'initiation :
+@rlearning{Autres sources de documentation}.
+
+Manuel de notation :
+@ref{Instruments MIDI},
+@ref{Mise en forme de la partition}.
+
+Référence des propriétés internes :
+@rinternals{Dynamic_performer}.
+
+Fichiers d'initialisation :
+@file{scm/midi.scm}.
+
+@knownissues
+Les percussions gérées par un contexte @code{DrumStaff} sont affectées
+directement au canal 10 qui leur est réservé. Certains instruments, tels
+le xylophone, le marimba, le vibraphone ou les timbales, se traitent
+cependant comme des instruments « classiques » puisqu'ils sont capables
+d'émettre des hauteurs différentes ; leur notation relève donc d'un
+contexte @code{Staff} standard, et non d'un @code{DrumStaff} pour
+pouvoir être rendus correctement en MIDI. Une liste complète des
+percussions affectées au canal 10 (@code{channel 10 drum-kits}) est
+disponible dans le fichier @file{scm/midi.scm} -- voir
+@rlearning{Autres sources de documentation}.
-@node Répétitions et MIDI
-@subsection Répétitions et MIDI
-@translationof Repeats in MIDI
+@node Gestion des répétitions en MIDI
+@subsection Gestion des répétitions en MIDI
+@translationof Using repeats with MIDI
@cindex reprises développées
@cindex MIDI et reprises
@funindex \unfoldRepeats
-Au prix de quelques réglages, les reprises de toutes sortes peuvent être
-rendues dans le fichier MIDI. Il suffit pour cela de recourir à la
-fonction @code{\unfoldRepeats}, qui développe toutes les reprises. En
-d'autre termes, @code{\unfoldRepeats} transforme toutes les reprises
-en reprises de type @code{unfold}.
+Les reprises de toutes sortes peuvent être rendues dans le fichier MIDI.
+Il suffit pour cela de recourir à la fonction @code{\unfoldRepeats}, qui
+développe toutes les reprises.
-
-@lilypond[quote,verbatim]
-\unfoldRepeats {
- \repeat tremolo 8 {c'32 e' }
- \repeat percent 2 { c''8 d'' }
- \repeat volta 2 {c'4 d' e' f'}
- \alternative {
- { g' a' a' g' }
- {f' e' d' c' }
- }
-}
-\bar "|."
-@end lilypond
-
-Dans une partition comportant plusieurs voix, le développement des
-reprises ne sera effectif en MIDI qu'à la condition que ces reprises
-soient mentionnée correctement dans @strong{toutes} les voix.
+@example
+\score @{
+ \unfoldRepeats @{
+ \repeat tremolo 8 @{ c'32 e' @}
+ \repeat percent 2 @{ c''8 d'' @}
+ \repeat volta 2 @{ c'4 d' e' f' @}
+ \alternative @{
+ @{ g' a' a' g' @}
+ @{ f' e' d' c' @}
+ @}
+ @}
+ \midi @{ @}
+@}
+@end example
Lorsque l'on veut utiliser @code{\unfoldRepeats} seulement pour le rendu
-MIDI, il faut établir deux blocs @code{\score} : un pour le MIDI,
+MIDI, il faut établir @b{deux} blocs @code{\score} : un pour le MIDI,
avec des reprises explicites, et l'autre pour la partition, avec des
reprises notées sous forme de barres de reprise, de trémolo ou de
-symboles de pourcentage. Par exemple
+symboles de pourcentage. Par exemple
@example
\score @{
- @var{@dots{}musique@dots{}}
- \layout @{ @dots{} @}
+ @var{@dots{} musique @dots{}}
+ \layout @{ @}
@}
\score @{
- \unfoldRepeats @var{@dots{}musique@dots{}}
- \midi @{ @dots{} @}
+ \unfoldRepeats @var{@dots{} musique @dots{}}
+ \midi @{ @}
@}
@end example
+Dans une partition comportant plusieurs voix, le développement des
+reprises ne sera effectif en MIDI qu'à la condition que ces reprises
+soient mentionnée correctement dans @strong{toutes} les voix.
-@node Gestion des nuances en MIDI
-@subsection Gestion des nuances en MIDI
-@translationof Controlling MIDI dynamics
+@seealso
+Manuel de notation :
+@ref{Répétitions et reprises}.
-Les nuances MIDI sont générées par le @code{Dynamic_performer}, affecté
-par défaut au contexte @code{Voice}. Vous pouvez contrôler à la fois le
-volume général, celui des indications de nuance ainsi que celui des
-différents instruments.
-@menu
-* Indications de nuance::
-* Amplitude du volume en MIDI::
-* Égalisation de plusieurs instruments (i)::
-* Égalisation de plusieurs instruments (ii)::
-@end menu
+@node Affectation des canaux MIDI
+@subsection Affectation des canaux MIDI
+@translationof MIDI channel mapping
-@node Indications de nuance
-@unnumberedsubsubsec Indications de nuance
-@translationof Dynamic marks
-
-Les indications de nuances sont transcrites en fraction du volume MIDI.
-Nous allons, par défaut, de 0,25 pour un @notation{ppppp} à 0,95 pour un
-@notation{fffff}. Les correspondances entre nuance et fraction de
-volume sont répertoriées dans le fichier @file{../scm/midi.scm} --
-consultez la rubrique @rlearning{Autres sources de documentation} si
-vous ne savez comment le localiser. Vous pouvez modifier ou étendre ce
-jeu grâce à une fonction qui prendra en argument une indication de
-nuance et renverra la fraction désirée, puis en affectant cette fonction
-à @code{Score.dynamicAbsoluteVolumeFunction}.
-
-Prenons un exemple. Votre partition comporte un @notation{rinforzando}
-que vous avez indiqué par @code{\rfz}. Cette indication de nuance
-n'étant pas répertoriée dans le jeu par défaut, elle ne produira aucun
-effet en MIDI. Il en sera d'ailleurs de même pour toute indication
-créée de toute pièce à l'aide de l'instruction
-@w{@code{make-dynamic-script}}. Voici comment procéder pour ajuster le
-volume MIDI de ce @notation{rinforzando} que le compositeur a indiqué.
-La fonction Scheme définit une fraction de 0,9 en cas de @notation{rfz},
-et demande d'utiliser la fonction par défaut dans les autre cas.
+@cindex MIDI, canaux
+@cindex MIDI, pistes
+@funindex midiChannelMapping
-@lilypond[verbatim,quote]
-#(define (myDynamics dynamic)
- (if (equal? dynamic "rfz")
- 0.9
- (default-dynamic-absolute-volume dynamic)))
+Lorsque LilyPond génère un fichier MIDI à partir d'une partition, chaque
+note contenue dans cette partition sera automatiquement assignée à un
+canal MIDI, celui sur lequel elle devrait être jouée quand elle est
+transmise à un périphérique MIDI. Chaque canal MIDI dispose d'un
+certain nombre de contrôles pour, par exemple, sélectionner l'instrument
++qui jouera les notes de ce canal ou bien demander au périphérique MIDI
+d'appliquer différents effets au son produit sur ce canal. En tout état
+de cause, chaque contrôle d'un canal MIDI ne peut se voir affecté que
+d'une seule valeur à la fois -- celle-ci peut toutefois être modifiée
+pour, par exemple, changer d'instrument au milieu du morceau.
-\score {
- \new Staff {
- \set Staff.midiInstrument = #"cello"
- \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
- \new Voice {
- \relative c'' {
- a4\pp b c-\rfz
- }
- }
- }
- \layout {}
- \midi {}
-}
-@end lilypond
+Le standard MIDI ne dispose que de 16 canaux par périphérique MIDI.
+Cette limite du nombre de canaux entraîne une limitation du nombre
+d'instruments pouvant jouer de concert.
-Si vous étiez amené à devoir modifier l'intégralité du jeu des
-correspondances, nous vous conseillons d'utiliser la procédure
-@command{default-dynamic-absolute-volume} contenue dans le fichier
-@file{../scm/midi.scm} ainsi que la table d'association comme base.
-Le dernier exemple de cette partie illustre la manière de procéder.
+LilyPond crée une piste MIDI séparée pour chaque portée (ou chaque
+instrument ou voix selon la valeur de @code{Score.midiChannelMapping})
+ainsi que pour chaque contexte de paroles. Il n'y a pas de limite au
+nombre de pistes.
+Afin de contourner la limitation du nombre de canaux MIDI, LilyPond
+dispose de différents modes d'allocation d'un canal MIDI grâce à la
+propriété de contexte @code{Score.midiChannelMapping}. Dans tous les
+cas, lorsque la limite au nombre de canaux est atteinte, LilyPond repart
+du canal 0, ce qui peut affecter des notes au mauvais instrument. Cette
+propriété de contexte peut prendre les valeurs suivantes :
-@node Amplitude du volume en MIDI
-@unnumberedsubsubsec Amplitude du volume en MIDI
-@translationof Overall MIDI volume
+@table @var
-Les valeurs extrêmes du volume MIDI des nuances se contrôlent à l'aide
-des propriétés @code{midiMinimumVolume} et @code{midiMaximumVolume} qui
-agissent au niveau @code{Score}. Ces propriétés sont effectives dès
-lors qu'une nuance est indiquée ; une nuance de départ explicite est donc
-requise pour que le volume soit ajusté dès le début de la partition.
-Vous pouvez alors modifier la fraction correspondant à chaque nuance à
-l'aide de la formule
+@item @code{'staff}
+
+Allocation d'un canal MIDI particulier à chacune des portées de la
+partition (option par défaut). Toutes les notes de toutes les voix
+d'une même portée partageront le canal MIDI affecté à la portée qui les
+englobe, et toutes seront encodées dans la même piste.
+
+La limite des 16 canaux s'applique au nombre total de portées augmenté
+des contextes de paroles même si les paroles MIDI n'occupent pas de
+canal MIDI.
+
+@item @code{'instrument}
+
+Allocation d'un canal MIDI particulier à chaque instrument MIDI tel que
+spécifié dans la partition. En d'autre termes, des notes jouées par un
+même instrument MIDI partageront le même canal MIDI (et la même piste),
+même si elles proviennent de voix ou portées différentes.
+
+Dans ce cas particulier, les contextes de paroles ne sont pas pris en
+compte dans la limite des 16 canaux, puisqu'ils ne sont pas assignés à
+un instrument MIDI, ce qui permet une meilleure allocation des canaux
+MIDI lorsque le nombre de portées et de contextes de paroles dépasse 16.
+
+@item @code{'voice}
+
+Allocation d'un canal MIDI particulier à chaque voix de la partition
+portant un nom unique parmi les voix de la portée considérée. Des voix
+appartenant à des portées différentes seront toujours affectées à des
+canaux MIDI différents, mais deux voix partageant la même portée
+partageront le même canal MIDI dès lors qu'elles porteront le même nom.
+Dans la mesure où @code{midiInstrument} et les différents contrôles
+d'effets MIDI sont des propriétés affectant le contexte de portée, ils
+ne peuvent se déterminer individuellement pour une voix. La première
+voix adoptera l'instrument et les effets spécifiés pour cette portée, et
+les voix dénommées différemment de la première se verront attribué
+l'instrument et le effets par défaut.
+
+Note : l'affectation d'instruments ou d'effets différents aux
+differentes voix d'une même portée s'obtient dès lors que le
+@code{Staff_performer} est déplacé du contexte @code{Staff} au contexte
+@code{Voice} tout en maintenant le @code{midiChannelMapping} dans le
+contexte @code{'staff} ou en le réglant sur @code{'instrument}.
-@example
-midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fraction
-@end example
+@end table
-Voici comment ajuster les nuances tout en limitant l'amplitude du volume
-entre 0,2 et 0,5 :
+Par exemple, l'affectation par défaut des canaux MIDI d'une partition
+peut être réglée sur @code{'instrument} comme ceci :
-@lilypond[verbatim,quote]
-\score {
- <<
- \new Staff {
- \key g \major
- \time 2/2
- \set Staff.midiInstrument = #"flute"
- \new Voice \relative c''' {
- r2 g\mp g fis~
- fis4 g8 fis e2~
- e4 d8 cis d2
- }
- }
- \new Staff {
- \key g \major
- \set Staff.midiInstrument = #"clarinet"
- \new Voice \relative c'' {
- b1\p a2. b8 a
- g2. fis8 e
- fis2 r
- }
- }
- >>
- \layout {}
- \midi {
- \tempo 2 = 72
- \context {
+@example
+\score @{
+ ...musique...
+ \midi @{
+ \context @{
\Score
- midiMinimumVolume = #0.2
- midiMaximumVolume = #0.5
- }
- }
-}
-@end lilypond
-
-
-@node Égalisation de plusieurs instruments (i)
-@unnumberedsubsubsec Égalisation de plusieurs instruments (i)
-@translationof Equalizing different instruments (i)
-
-La définition de l'amplitude du volume MIDI au niveau d'un contexte
-@code{Staff} permet de gérer les volumes relatifs entre les différents
-instruments. Ceci constitue en quelque sorte un égaliseur, ce qui
-permet d'améliorer notablement la qualité de la sortie MIDI.
-
-La clarinette de l'exemple suivant jouera relativement moins fort que la
-flûte. Rappelez-vous que pour que cela fonctionne correctement, la
-première note de chacun des instruments doit être affublée d'une
-indication de nuance.
-
-@lilypond[verbatim,quote]
-\score {
- <<
- \new Staff {
- \key g \major
- \time 2/2
- \set Staff.midiInstrument = #"flute"
- \set Staff.midiMinimumVolume = #0.7
- \set Staff.midiMaximumVolume = #0.9
- \new Voice \relative c''' {
- r2 g\mp g fis~
- fis4 g8 fis e2~
- e4 d8 cis d2
- }
- }
- \new Staff {
- \key g \major
- \set Staff.midiInstrument = #"clarinet"
- \set Staff.midiMinimumVolume = #0.3
- \set Staff.midiMaximumVolume = #0.6
- \new Voice \relative c'' {
- b1\p a2. b8 a
- g2. fis8 e
- fis2 r
- }
- }
- >>
- \layout {}
- \midi {
- \tempo 2 = 72
- }
-}
-@end lilypond
+ midiChannelMapping = #'instrument
+ @}
+ @}
+@}
+@end example
+@snippets
+@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
+{changing-midi-output-to-one-channel-per-voice.ly}
-@node Égalisation de plusieurs instruments (ii)
-@unnumberedsubsubsec Égalisation de plusieurs instruments (ii)
-@translationof Equalizing different instruments (ii)
-Lorsque les propriétés volume minimum et maximum n'ont pas été définies,
-LilyPond appliquera par défaut une légère égalisation pour quelques
-instruments. Les instrument concernés ainsi que le niveau d'égalisation
-sont répertoriés dans une table @notation{instrument-equalizer-alist}
-du fichier @file{../scm/midi.scm}.
+@node Propriétés de contextes et effets MIDI
+@subsection Propriétés de contextes et effets MIDI
+@translationof Context properties for MIDI effects
+
+@cindex effets MIDI
+@cindex pan, MIDI
+@cindex spatialisation (pan), MIDI
+@cindex stéréo MIDI, balance
+@cindex balance MIDI
+@cindex expression MIDI
+@cindex reverb MIDI
+@cindex chorus MIDI
+@funindex midiPanPosition
+@funindex midiBalance
+@funindex midiExpression
+@funindex midiReverbLevel
+@funindex midiChorusLevel
+
+Les différentes propriétés de contexte qui suivent permettnt d'appliquer
+différents effets MIDI aux notes contenues dans le canal MIDI associé à
+la portée courante, à l'instrument ou à la voix, selon la valeur
+affectée à la propriété de contexte @code{Score.midiChannelMapping} et
+le contexte dans lequel le @code{Staff_performer} réside -- voir
+@ref{Affectation des canaux MIDI}.
+
+Une adaptation de ces propriétés de contexte affectera toutes les notes
+jouées sur ce canal dès leur modification. Certains effets pourront
+même s'appliquer sur des notes déjà en cours, selon l'implémentation du
+périphérique de sortie MIDI.
+
+LilyPond dispose des propriétés de contexte suivantes :
-Vous pouvez remplacer l'égaliseur basique en définissant une nouvelle
-procédure Scheme @code{instrumentEqualizer} au sein du contexte
-@code{Score}. Cette procédure prend en unique argument le nom d'un
-instrument MIDI et renverra une paire de fractions correspondant au
-minimum et maximum de volume alloué à cet instrument. Cette
-substitution fonctionne selon le même principe que celui que nous avons
-vu en début de chapitre avec @code{dynamicAbsoluteVolumeFunction}.
-L'égaliseur par défaut, @notation{default-instrument-equalizer}, est
-défini dans le fichier @file{../scm/midi.scm} ; son analyse vous
-aidera à construire votre propre procédure.
+@table @var
-Nous allons, dans l'exemple suivant, régler le volume relatif de la
-flûte et de la clarinette -- au même niveau que dans le précédent.
+@item @code{Staff.midiPanPosition}
-@lilypond[verbatim,quote]
-#(define my-instrument-equalizer-alist '())
+La spatialisation (@emph{pan position}) contrôle le positionnement d'un
+canal MIDI entre les sorties stéréo droite et gauche. Cette propriété
+de contexte prend en argument une valeur entre -1.0 (@code{#LEFT})
+et 1.0 (@code{#RIGHT}). Une valeur de -1.0 enverra toute la puissance
+sonore sur le haut-parleur gauche (le droit sera silencieux), une
+vaaleur de 0.0 (@code{#CENTER}) distribuera équitablement le son entre
+les jaut-parleurs de gauche et de droite, et une valeur de 1.0 enverra
+tout le son sur le haut-parleur de droite. Des valeurs entre -1.0 et
+1.0 permettent d'obtenir une répartition du son entre les sorties
+gauche et droite d'un équipement stéréophonique.
-#(set! my-instrument-equalizer-alist
- (append
- '(
- ("flute" . (0.7 . 0.9))
- ("clarinet" . (0.3 . 0.6)))
- my-instrument-equalizer-alist))
-#(define (my-instrument-equalizer s)
- (let ((entry (assoc s my-instrument-equalizer-alist)))
- (if entry
- (cdr entry))))
+@item @code{Staff.midiBalance}
-\score {
- <<
- \new Staff {
- \key g \major
- \time 2/2
- \set Score.instrumentEqualizer = #my-instrument-equalizer
- \set Staff.midiInstrument = #"flute"
- \new Voice \relative c''' {
- r2 g\mp g fis~
- fis4 g8 fis e2~
- e4 d8 cis d2
- }
- }
- \new Staff {
- \key g \major
- \set Staff.midiInstrument = #"clarinet"
- \new Voice \relative c'' {
- b1\p a2. b8 a
- g2. fis8 e
- fis2 r
- }
- }
- >>
- \layout { }
- \midi {
- \tempo 2 = 72
- }
-}
-@end lilypond
+La balance stéréo d'un canal MIDI. Tout comme la spatialisation, cette
+propriété de contexte prend en argument une valeur comprise entre -1.0
+(@code{#LEFT}) et 1.0 (@code{#RIGHT}). Elle permet de faire varier le
+volume relatif envoyé aux deux haut-parleurs stéréo sans pour autant
+affecter la distribution des signaux stéréo.
-@ignore
-@c Delete when satisfied this is adequately covered elsewhere -td
+@item @code{Staff.midiExpression}
-@n ode Microtones in MIDI
-@s ubsection Microtones in MIDI
+Le niveau d'expression, en tant que fraction du niveau maximum de volume
+disponible, à appliquer à un canal MIDI. Un périphérique MIDI combine
+le niveau d'expression des canaux MIDI et le niveau de nuance de la voix
+en cours (tel que défini par @code{\p} ou @code{\ff}) afin d'obtenir le
+volume total de chacune des notes de la voix. Un contrôle de
+l'expression permet, par exemple, d'implémenter des effets de crescendo
+ou decrescendo sur une note tenue, ce que LilyPond ne sait pas faire
+automatiquement.
-@cindex microtones in MIDI
+@c Issue 4059 contains an attached snippet which shows how this might
+@c be done, but this is too large and complex for the NR, even as a
+@c referenced snippet. It could be added to the LSR.
-Microtones consisting of half sharps and half flats are exported
-to the MIDI file and render correctly in MIDI players which support
-pitch bending. See @ref{Note names in other languages}. Here is
-an example showing all the half sharps and half flats. It can be
-copied out and compiled to test microtones in your MIDI player.
-
-@lilypond[verbatim,quote]
-\score {
- \relative c' {
- c4 cih cis cisih
- d4 dih ees eeh
- e4 eih f fih
- fis4 fisih g gih
- gis4 gisih a aih
- bes4 beh b bih
- }
- \layout {}
- \midi {}
-}
-@end lilypond
-@end ignore
+Le niveau d'expression varie entre 0.0 (sans expression, autrement dit
+volume à zéro) et 1.0 (volume au maximum).
+@item @code{Staff.midiReverbLevel}
-@node MIDI et percussions
-@subsection MIDI et percussions
-@translationof Percussion in MIDI
+Le niveau de réverbération, en tant que fraction du niveau maximum
+disponible, à appliquer à un canal MIDI. Cette propriété prend en
+argument une valeur entre 0.0 (pas d'écho) et 1.0 (effet maximal).
-La notation pour percussions recourt généralement à un contexte
-particulier -- le @code{DrumStaff} -- qui permet d'affecter directement
-les instruments concernés au canal 10 qui leur est réservé.
+@item @code{Staff.midiChorusLevel}
-Certains instruments, tels le xylophone, le marimba, le vibraphone ou
-les timbales, se traitent cependant comme des instruments
-@qq{classiques} puisqu'ils sont capables d'émettre des hauteurs
-différentes ; leurs notation relève donc d'un contexte @code{Staff}
-standard, et non d'un @code{DrumStaff} pour pouvoir être rendus
-correctement en MIDI.
+Le niveau de chœur, en tant que fraction du niveau maximum disponible, à
+appliquer à un canal MIDI. Cette propriété prend en argument une valeur
+entre 0.0 (pas de chorus) et 1.0 (effet maximal).
-D'autres percussions, bien que n'émettant qu'un seul son et inclus dans
-le standard @emph{general MIDI}, comme le tom mélodique ou le tambour
-taiko, ne sont pas attachés au canal 10. Ces instruments doivent
-donc être saisi dans un contexte @code{Staff}, en utilisant la hauteur
-appropriée.
+@end table
-De nombreux instruments de la famille des percussions, les castagnettes
-par exemple, n'existent pas dans le standard @emph{general MIDI}.
-L'alternative, bien que peu satisfaisante, consiste à leur attribuer le
-son le plus proche dans la banque standard.
+@knownissues
-@c TODO Expand with examples, and any other issues
+Dans la mesure où les fichiers MIDI ne comportent effectivement aucune
+donnée audio, les modifications des propriétés de contexte ne se
+traduisent qu'en requêtes de changement des contrôles du canal MIDI
+lorsque ces fichiers MIDI sont joués. La manière dont un périphérique
+MIDI particulier, tel un synthétiseur MIDI logiciel, gérera ces
+requêtes incluses dans un fichier MIDI dépend complètement de
+l'implémentation du périphérique : certains d'entre eux pourront
+simplement ignorer plusieurs, voire toutes ces requêtes. Par ailleurs,
+la manière dont un périphérique MIDI interprète les différentes valeurs
+de ces contrôles (en règle générale, le standard MIDI ne fixe le
+comportement qu'aux valeurs extrêmes de l'amplitude disponible pour
+chacun des contrôles) et leur modification alors qu'une note sur un
+canal est tenue, dépend de l'implémentation particulière à ce
+périphérique.
+
+Lors de la génération d'un fichier MIDI, LilyPond transforme simplement
+les valeurs fractionnaires dans l'amplitude linéaire en valeurs entières
+correspondantes (de 0 à 127 et sur 7 octets, ou de 0 à 32767 et sur 14
+octets pour les contrôles MIDI supportant une résolution fine). Ces
+valeurs entières converties sont stockées telles quelles dans le
+fichier MIDI généré. Pour plus d'information sur la manière dont un
+périphérique MIDI interprète ces valeurs, se reporter à sa
+documentation.
+
+
+@node Amélioration du rendu MIDI
+@subsection Amélioration du rendu MIDI
+@translationof Enhancing MIDI output
+
+Le fichier MIDI généré par LilyPond est relativement brut. Il peut
+toutefois être amélioré en affectant des instruments MIDI, en réglant
+des propriétés au sein du bloc @code{\midi} ou en utilisant le script
+@file{articulate}.
-@knownissues
-Le standard @emph{general MIDI} ne dispose pas du @emph{rim shot} ;
-LilyPond lui substitue un @emph{sidestick}.
+@menu
+* Le script articulate::
+@end menu
-@node Le script Articulate
-@subsection Le script Articulate
-@translationof The Articulate script
+@node Le script articulate
+@unnumberedsubsubsec Le script @file{articulate}
+@translationof The articulate script
-Vous obtiendrez un rendu MIDI plus @qq{réaliste} grâce au script
-@code{articulate}. Celui-ci va tout faire pour d'une part prendre en
-compte les articulations (liaisons, staccato etc.) -- en ajoutant un
-blanc aux notes raccourcies -- et, d'autre part, développer les trilles
-ou groupettos ainsi que tenir compte des éventuels rallentando et
-accelerando.
+@cindex MIDI, instruments
+@cindex articulate, script
+@funindex Staff.midiInstrument
-L'utilisation du script @code{articulate} se fait en deux temps. Vous
-devez dans un premier temps inclure son fichier d'initialisation en
-ajoutant en tête de votre fichier la ligne
+L'utilisation du script @file{articulate} se fait après avoir ajouté en
+tête de fichier la commande @code{\include} appropriée :
@example
\include "articulate.ly"
@end example
-puis, dans le bloc @code{\score}, indiquer que toutes les répétitions
-seront développées et appliquer la commande à votre musique :
+Le script créera une sortie MIDI dont les notes seront échelonées de
+sorte à tenir compte de toute articulation ou changement de tempo. La
+sortie imprimable sera toutefois modifiée en profondeur, pour refléter
+littéralement la sortie MIDI.
@example
-\unfoldRepeats \articulate <<
- tout le reste du bloc contenant la partition@dots{}
->>
+\score @{
+ \articulate <<
+ @var{@dots{} musique @dots{}}
+ >>
+ \midi @{ @}
+@}
@end example
-Une fois votre fichier modifié de la sorte, vous constaterez que la
-version imprimable aura été modifiée en profondeur. Le bloc
-@code{\midi} produira par contre un fichier MIDI de bien meilleure
-qualité.
+Le script @file{articulate} tient compte des abréviations telles que les
+trilles ou groupettos. L'intégralité des éléments traités est
+répertoriée dans le script lui-même -- voir @file{ly/articulate.ly}.
-Bien que cela ne gène en rien le fonctionnement du script
-@code{articulate}, lui adjoindre la commande @code{\unfoldRepeats} comme
-illustré ci-dessus permettra le rendu d'un certain nombre
-d'articulations tels les trilles.
+@seealso
+Manuel d'initiation :
+@rlearning{Autres sources de documentation}.
-@knownissues
-Dans la mesure où le script @code{articulate} tend à raccourcir les
-accords, certaines musiques, notamment pour l'orgue, paraîtront de moins
-bonne qualité.
+Manuel de notation :
+@ref{Mise en forme de la partition}.
+
+Fichiers d'initialisation :
+@file{ly/articulate.ly}.
+
+@warning{Dans la mesure où le script @file{articulate} tend à raccourcir
+les accords, certaines musiques, notamment pour l'orgue, paraîtront de
+moins bonne qualité. Les notes dépourvues d'articulation peuvent aussi
+se voir raccourcies ; pour pallier cet inconvénient, le recours à la
+fonction @code{@bs{}articulate} devrait ne concerner que de courts
+fragments, sauf à modifier les valeurs des variables contenues dans le
+script @file{articulate}.}
@node Extraction d'informations musicales
affichera
@example
-@{ a,4 cis e fis g @}
+@{ a,4 cis4 e4 fis4 g4 @}
@end example
LilyPond affichera le résultat sous forme de message en console, au