X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=inline;f=Documentation%2Ffr%2Fnotation%2Finput.itely;h=98c30930ec0b230016c77ae63ea136ca6837f5b5;hb=fd5bccb38f3219fe9bb8f4c2240d84e5c827615b;hp=ae073dcfde22b1cdc63f669a1b36e41c558584db;hpb=d46366c06e4988def867ccacf4e55d4c45583245;p=lilypond.git diff --git a/Documentation/fr/notation/input.itely b/Documentation/fr/notation/input.itely index ae073dcfde..98c30930ec 100644 --- a/Documentation/fr/notation/input.itely +++ b/Documentation/fr/notation/input.itely @@ -1,14 +1,14 @@ @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 @@ -25,7 +25,7 @@ LilyPond. * 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 @@ -550,6 +550,10 @@ Manuel de notation : @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. @@ -557,6 +561,7 @@ 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:: @@ -679,10 +684,10 @@ pour définir les champs @code{piece} et @code{opus}, comme ici : } \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 { @@ -691,7 +696,7 @@ pour définir les champs @code{piece} et @code{opus}, comme ici : } \score { - \new Staff \relative b { + \new Staff \relative { \clef bass \key g \major \partial 16 b16 | @@ -718,7 +723,7 @@ supprimés manuellement : \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 } @@ -752,16 +757,17 @@ supprimés manuellement : @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] @@ -781,8 +787,8 @@ Voici les différentes variables attachées au bloc @code{\header} : 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 } @@ -920,24 +926,24 @@ page, ou bien sous le @code{copyright} s'il n'y a qu'une seule page. @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 @@ -1252,6 +1258,49 @@ fichiers d'initialisation : @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 @@ -1350,7 +1399,7 @@ s'exprime en espace de portée. 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 @@ -1430,8 +1479,8 @@ attache une annotation. La syntaxe consacrée est : @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 ) @@ -1631,7 +1680,7 @@ Par exemple : \auto-footnote "recent" \italic " Aug 2012" "composition." } - \relative c' { + \relative { a'4 b8 e c4 d } } @@ -1683,7 +1732,7 @@ la rubrique @ref{Équivalents ASCII} : } "composition." } - \relative c' { + \relative { a'4 b8 e c4 d } } @@ -1706,7 +1755,7 @@ unicode -- voir la rubrique @ref{Unicode} : } "composition." } - \relative c' { + \relative { a'4 b8 e c4 d } } @@ -1776,8 +1825,8 @@ le point de référence, sous la forme d'un symbole Scheme, comme par 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. @@ -1829,42 +1878,89 @@ d'une expression musicale. @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 { @@ -1874,12 +1970,22 @@ le but de mentionner les actes dans la table des matières d'un opéra : \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 { @@ -1891,8 +1997,8 @@ tocAct = } 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 @@ -1906,22 +2012,16 @@ tocAct = } @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 @@ -2144,11 +2244,11 @@ une seule portée, comme nous l'avons vu à la rubrique @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 @@ -2167,16 +2267,12 @@ allLyrics = \lyricmode {King of glo -- ry } \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 } >> >> @@ -2199,10 +2295,9 @@ rappellerez ensuite, comme indiqué à la rubrique @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 @@ -2226,7 +2321,7 @@ Musique balisée précédée de @code{\removeWithTag #'@var{nom}} ou @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 @@ -2235,18 +2330,25 @@ 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 @@ -2264,8 +2366,8 @@ music = \relative g' { 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 @@ -2346,6 +2448,40 @@ liste de balises est en pareil cas des plus pertinente : seront 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 @@ -2368,17 +2504,14 @@ test = { \tag #'here { \tag #'here <> } } 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 @@ -2415,8 +2548,8 @@ styles, comme indiqué au chapitre @rlearning{Feuilles de style}. @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}. @@ -2459,7 +2592,7 @@ la bibliothèque Pango pour assurer le rendu des textes multilingues. 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, @@ -2481,6 +2614,17 @@ portugais. @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 { Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон. @@ -2496,8 +2640,8 @@ portuguese = \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 } @@ -2540,13 +2684,13 @@ dans des paroles et dans du texte indépendant. @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 @@ -2631,39 +2775,49 @@ Fichiers d'initialisation : @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 @@ -2702,12 +2856,15 @@ Ce commutateur agit aussi sur la sortie MIDI. Notez bien que tous les é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} @@ -2775,753 +2932,808 @@ Consultez le site de l'auteur pour de plus amples informations ainsi 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 @@ -3557,7 +3769,7 @@ terminal après avoir lancé LilyPond en ligne de commande. Par exemple, 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