X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Ffr%2Fnotation%2Finput.itely;h=73bed790755396f731b606b42ceaab6492a3e3be;hb=958e95822083954cad00e0a598eb9f12ceba67b9;hp=a4bf398bf8a86ca740130ea997f61e7d0d2deb90;hpb=9e781b7dc83b60a543ce218aa1a5f139f74c760f;p=lilypond.git diff --git a/Documentation/fr/notation/input.itely b/Documentation/fr/notation/input.itely index a4bf398bf8..73bed79075 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: 53cff5245f682708a6c77d580f418ece2923c2e4 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 @@ -679,10 +679,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 +691,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 | @@ -929,8 +929,8 @@ niveau du bloc @code{\header} principal. tagline = "... music notation for Everyone" } \score { - \relative c' { - c4 d e f + \relative { + c'4 d e f } } } @@ -1350,7 +1350,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 +1430,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 +1631,7 @@ Par exemple : \auto-footnote "recent" \italic " Aug 2012" "composition." } - \relative c' { + \relative { a'4 b8 e c4 d } } @@ -1683,7 +1683,7 @@ la rubrique @ref{Équivalents ASCII} : } "composition." } - \relative c' { + \relative { a'4 b8 e c4 d } } @@ -1706,7 +1706,7 @@ unicode -- voir la rubrique @ref{Unicode} : } "composition." } - \relative c' { + \relative { a'4 b8 e c4 d } } @@ -1854,7 +1854,7 @@ 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 +@item commencez par définir une nouvelle variable de type @code{markup} au sein du bloc @code{\paper}, @@ -1876,7 +1876,7 @@ le but de mentionner les actes dans la table des matières d'un opéra : } tocAct = -#(define-music-function (parser location text) (markup?) +#(define-music-function (text) (markup?) (add-toc-item! 'tocActMarkup text)) @end verbatim @@ -1891,7 +1891,7 @@ tocAct = } tocAct = -#(define-music-function (parser location text) (markup?) +#(define-music-function (text) (markup?) (add-toc-item! 'tocActMarkup text)) \book { @@ -2144,10 +2144,10 @@ 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, } +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 @@ -2199,10 +2199,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 +2225,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 +2234,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 +2270,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 +2352,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,10 +2408,7 @@ 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}. @@ -2459,7 +2496,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, @@ -2496,8 +2533,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 +2577,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--2014" \char ##x00A9 } +\markup { "Copyright 2008--2015" \char ##x00A9 } @end lilypond @cindex copyright @@ -2631,39 +2668,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. +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. -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. - -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 @@ -2775,753 +2822,588 @@ 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. +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 ! -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}. - -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:: +* 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 - -LilyPond générera un fichier MIDI dès que vous ajouterez un bloc -@code{\midi} à la structure de votre partition, comme ici : - -@example -\score @{ - @var{@dots{}musique@dots{}} - \midi @{ @} -@} -@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}. - -@example -\score @{ - @var{@dots{}musique@dots{}} - \midi @{ @} - \layout @{ @} -@} -@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} : - -@example -#(ly:set-option 'midi-extension "midi") -@end example - -Cette ligne déterminera @code{.midi} comme extension par défaut pour les -fichiers MIDI. +@cindex MIDI, éléments pris en compte -Vous pouvez aussi le faire en ligne de commande : +LilyPond retranscrit par défaut dans un fichier MIDI les éléments de +notation suivant : -@example -lilypond … -dmidi-extension=midi fichierLily.ly -@end example +@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 -@snippets -@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle] -{changing-midi-output-to-one-channel-per-voice.ly} +En combinaison avec le script @file{articulate}, d'autres éléments +seront aussi reportés en MIDI : -@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, +@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 -@{ a4\< b c d\f @} +\appoggiatura c8 d2. @end example @noindent -ne fonctionnera pas correctement, contrairement à - -@example -@{ a4\< b c d\!\f @} -@end example -@end ignore - -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. +le do (noté @code{c}) prendra la valeur d'une noire. -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. +@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 -@node Instrument MIDI -@subsection Instrument MIDI -@translationof MIDI Instruments +@noindent +Voir @ref{Amélioration du rendu MIDI}. -@cindex instrument, nom d' -@cindex MIDI, instruments -@funindex Staff.midiInstrument -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}. +@node Notation non prise en compte dans le MIDI +@subsection Notation non prise en compte dans le MIDI +@translationof Unsupported notation for MIDI -@example -\new Staff @{ - \set Staff.midiInstrument = #"glockenspiel" - @var{@dots{}notes@dots{}} -@} -@end example +@cindex MIDI, éléments non pris en comte -@example -\new Staff \with @{midiInstrument = #"cello"@} @{ - @var{@dots{}notes@dots{}} -@} -@end example +Certains éléments de notation ne peuvent être retranscits dans un +fichier MIDI : -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"}). +@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 MIDI block +@translationof The MIDI block -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, 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 @{ - \tempo 4 = 72 - @} + \layout @{ @} + \midi @{ @} @} @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 : +@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 commadne : @example -tempoWholesPerMinute = #(ly:make-moment 270/8) +lilypond -dmidi-extension=mid MonFichier.ly @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@{ @}}. +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 -\midi @{ - @dots{} - \context @{ - \Voice - \remove "Dynamic_performer" - @} -@} +#(ly:set-option 'midi-extension "mid") @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}. +@seealso +Manuel de notation : +@ref{Structure de fichier}. -@example -\score @{ - @{ @dots{}notes@dots{} @} - \midi @{ @} -@} -@end example +Fichiers d'initialisation : +@file{scm/midi.scm}. + +@knownissues +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é. +@node Gestion des nuances en MIDI +@subsection Gestion des nuances en MIDI +@translationof Controlling MIDI dynamics -@node Contenu de la sortie MIDI -@subsection Contenu de la sortie MIDI -@translationof What goes into the MIDI output? +@cindex MIDI, gestion des nuances -@c TODO Check grace notes - timing is suspect? +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. + +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. @menu -* Éléments pris en compte dans le MIDI:: -* Éléments non pris en compte dans le MIDI:: +* Indication des nuances en MIDI:: +* Réglage du volume en MIDI:: +* Réglage de propriétés dans le bloc MIDI:: @end menu -@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 : - -@itemize -@item -les hauteurs ; +@node Indication des nuances en MIDI +@unnumberedsubsubsec Indication des nuances en MIDI +@translationof Dynamic marks in MIDI -@item -les microtonalités -- voir @ref{Altérations}. Leur rendu nécessite -cependant un lecteur qui prenne en charge la modulation ; +@cindex MIDI, indications de nuance -@item -les accords nommés ; +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}. -@item -le rythme en tant que durée de note, y compris les nolets ; +@snippets +@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle] +{creating-custom-dynamics-in-midi-output.ly} -@item -les trémolos, exceptés ceux utilisant la syntaxe -@qq{@code{:}[@var{nombre}]} ; +@seealso +Fichiers d'initialisation : +@file{ly/script-init.ly}, +@file{scm/midi.scm}. -@item -les liaisons de prolongation ; +Morceaux choisis : +@rlsr{MIDI}. -@item -les indications de nuance ; +Référence des propriétés internes : +@rinternals{Dynamic_performer}. -@item -les crescendos et decrescendos s'étalant sur plusieurs notes ; +@node Réglage du volume en MIDI +@unnumberedsubsubsec Réglage du volume en MIDI +@translationof Setting MIDI volume -@item -les changements de tempo indiqués par un @code{\tempo} ; +@cindex MIDI, réglage du volume -@item -les paroles. -@end itemize +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 -Si vous utilisez @ref{Le script Articulate}, d'autres éléments seront -alors inclus : +@example +midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fraction +@end example -@itemize -@item articulations (lié, staccato, etc.), -@item trilles et groupettos, -@item rallentando et accelerando. -@end itemize +Voici comment ajuster les nuances tout en limitant l'amplitude du volume +entre 0,2 et 0,5 : +@example +\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 -@node Éléments non pris en compte dans le MIDI -@unnumberedsubsubsec Éléments non pris en compte dans le MIDI -@translationof Unsupported in 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. -@c TODO index as above +@example +\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 peut générer d'événement MIDI pour les éléments -suivant, sauf à utiliser @ref{Le script Articulate} : +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 : -@itemize -@item -le rythme indiqué sous forme d'annotation (par ex. @emph{swing}) ; +@example +\score @{ + << + \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 -@item -les changements de tempo indiqués sous forme d'annotation (sans -@code{\tempo}) ; +La clarinette de cet exemple jouera relativement moins fort que la +flûte. -@item -les staccatos et autres articulations ou ornementations ; +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}. -@item -les liaisons d'articulation et de phrasé ; +@snippets +@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle] +{replacing-default-midi-instrument-equalization.ly} -@item -les crescendos ou decrescendos sur une seule note ; +@seealso +Fichiers d'initialisation : +@file{scm/midi.scm}. -@item -les trémolos indiqués par la syntaxe @qq{@code{:}[@var{nombre}]} ; +Manuel de notation : +@ref{Mise en forme de la partition}. -@item -la basse chiffrée ; +Référence des propriétés internes : +@rinternals{Dynamic_performer}. -@item -les accords en microtonalité. -@end itemize +@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. -@node Répétitions et MIDI -@subsection Répétitions et MIDI -@translationof Repeats in MIDI +@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 -@cindex reprises développées -@cindex MIDI et reprises -@funindex \unfoldRepeats +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. -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}. +@example +\score @{ + @var{@dots{} music @dots{}} + \midi @{ + \tempo 4 = 72 + @} +@} +@end example +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. -@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 +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. -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. +@cindex MIDI, définition de contexte +@cindex contexte, définition en MIDI -Lorsque l'on veut utiliser @code{\unfoldRepeats} seulement pour le rendu -MIDI, il faut établir 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 +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} : @example \score @{ - @var{@dots{}musique@dots{}} - \layout @{ @dots{} @} -@} -\score @{ - \unfoldRepeats @var{@dots{}musique@dots{}} - \midi @{ @dots{} @} + @var{@dots{} musique @dots{}} + \midi @{ + \context @{ + \Voice + \remove "Dynamic_performer" + @} + @} @} @end example +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 ». -@node Gestion des nuances en MIDI -@subsection Gestion des nuances en MIDI -@translationof Controlling MIDI dynamics +@snippets +@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle] +{changing-midi-output-to-one-channel-per-voice.ly} -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. +@seealso +Manuel d'initiation : +@rlearning{Autres sources de documentation}. -@menu -* Indications de nuance:: -* Amplitude du volume en MIDI:: -* Égalisation de plusieurs instruments (i):: -* Égalisation de plusieurs instruments (ii):: -@end menu +Manuel de notation : +@ref{Signes d'interprétation}, +@ref{Mise en forme de la partition}. +Fichiers d'initialisation : +@file{ly/performer-init.ly}. -@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. +Morceaux choisis : +@rlsr{MIDI}. -@lilypond[verbatim,quote] -#(define (myDynamics dynamic) - (if (equal? dynamic "rfz") - 0.9 - (default-dynamic-absolute-volume dynamic))) +Référence des propriétés internes : +@rinternals{Dynamic_performer}. -\score { - \new Staff { - \set Staff.midiInstrument = #"cello" - \set Score.dynamicAbsoluteVolumeFunction = #myDynamics - \new Voice { - \relative c'' { - a4\pp b c-\rfz - } - } - } - \layout {} - \midi {} -} -@end lilypond +@knownissues +Certains lecteurs MIDI ne rendent pas correctement les changements de +tempo. -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. +Les modifications de @code{midiInstrument} ou autres options MIDI en +début de portée pevuent se retrouver dédoublées dans la sortie MIDI. +@node Gestion des instruments MIDI +@subsection Gestion des instruments MIDI +@translationof Using MIDI Instruments -@node Amplitude du volume en MIDI -@unnumberedsubsubsec Amplitude du volume en MIDI -@translationof Overall MIDI volume +@cindex instrument, nom d' +@cindex MIDI, instruments +@funindex Staff.midiInstrument -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 +L'instrument MIDI est déterminé par la propriété @code{midiInstrument}, +au sein d'un contexte @code{Staff}. @example -midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fraction +\score @{ + \new Staff @{ + \set Staff.midiInstrument = #"glockenspiel" + @var{@dots{} music @dots{}} + @} + \midi @{ @} +@} @end example -Voici comment ajuster les nuances tout en limitant l'amplitude du volume -entre 0,2 et 0,5 : - -@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 { - \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. +ou -@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 - - -@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}. +@example +\score @{ + \new Staff \with @{midiInstrument = #"cello"@} @{ + @var{@dots{} music @dots{}} + @} + \midi @{ @} +@} +@end example -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. +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"}) -- voir @ref{Instruments MIDI}. -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. +@seealso +Manuel d'initiation : +@rlearning{Autres sources de documentation}. -@lilypond[verbatim,quote] -#(define my-instrument-equalizer-alist '()) +Manuel de notation : +@ref{Instruments MIDI}, +@ref{Mise en forme de la partition}. -#(set! my-instrument-equalizer-alist - (append - '( - ("flute" . (0.7 . 0.9)) - ("clarinet" . (0.3 . 0.6))) - my-instrument-equalizer-alist)) +Référence des propriétés internes : +@rinternals{Dynamic_performer}. -#(define (my-instrument-equalizer s) - (let ((entry (assoc s my-instrument-equalizer-alist))) - (if entry - (cdr entry)))) +Fichiers d'initialisation : +@file{scm/midi.scm}. -\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 +@knownissues +Les percussions gérées par un contexte @code{DrumStaff} sont d'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 ; leurs 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}. -@ignore -@c Delete when satisfied this is adequately covered elsewhere -td -@n ode Microtones in MIDI -@s ubsection Microtones in MIDI +@node Gestion des répétitions en MIDI +@subsection Gestion des répétitions en MIDI +@translationof Using repeats with MIDI -@cindex microtones in MIDI +@cindex reprises développées +@cindex MIDI et reprises +@funindex \unfoldRepeats -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. +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[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 +@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 @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 -@node MIDI et percussions -@subsection MIDI et percussions -@translationof Percussion in MIDI +@example +\score @{ + @var{@dots{} musique @dots{}} + \layout @{ @} +@} +\score @{ + \unfoldRepeats @var{@dots{} musique @dots{}} + \midi @{ @} +@} +@end example -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é. +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. -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. +@seealso +Manuel de notation : +@ref{Répétitions et reprises}. -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. -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. +@node Amélioration du rendu MIDI +@subsection Amélioration du rendu MIDI +@translationof Enhancing MIDI output -@c TODO Expand with examples, and any other issues +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}. + +@seealso +Manuel d'initiation : +@rlearning{Autres sources de documentation}. + +Manuel de notation : +@ref{Mise en forme de la partition}. -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. +Fichiers d'initialisation : +@file{ly/articulate.ly}. -@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é. +@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 +3439,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