X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=Documentation%2Fes%2Fuser%2Finput.itely;h=ce10303d7d2748dd281a6d948bd0946c20f34af8;hb=c6554467b0a9beddf0d7ef12746ae31a25fe36e7;hp=8746cad162866b5ff000f7a36c95be1dbeade597;hpb=fde3a4cf6cbf123787414c07667b724460542e99;p=lilypond.git diff --git a/Documentation/es/user/input.itely b/Documentation/es/user/input.itely index 8746cad162..ce10303d7d 100644 --- a/Documentation/es/user/input.itely +++ b/Documentation/es/user/input.itely @@ -1,135 +1,1984 @@ -@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- +@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: 66dde21fe63499f32a718f6098abe70e1429059b + Translation of GIT committish: 270753f1475f23809437eadd7cbbb5a2abddb7b3 When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @end ignore +@c \version "2.11.61" -@node Input syntax -@chapter Input syntax +@node General input and output +@chapter General input and output -UNTRANSLATED NODE: IGNORE ME +Esta sección trata de asuntos relacionados con la entrada y salida +generales de LilyPond, más que con la notación específica. -@menu -* Input files:: -* Common syntax issues TODO name?:: -* Other stuffs TODO move?:: -@end menu -@node Input files -@section Input files +@menu +* Input structure:: +* Titles and headers:: +* Working with input files:: +* Controlling output:: +* MIDI output:: +@end menu -UNTRANSLATED NODE: IGNORE ME -@menu -* File structure:: -* A single music expression:: +@node Input structure +@section Input structure + +El formato principal de entrada para LilyPond son archivos de texto. +Por convenio, el nombre de estos archivos termina en @code{.ly}. + +@menu +* Structure of a score:: * Multiple scores in a book:: -* Extracting fragments of notation:: -* Including LilyPond files:: -* Text encoding:: -* Different editions from one source:: -@end menu -@node File structure -@subsection File structure +* File structure:: +@end menu + + +@node Structure of a score +@subsection Structure of a score + +@funindex \score + +Ub bloque @code{\score} debe contener una expresión musical única +delimitada por un par de llaves: + +@example +\score @{ +... +@} +@end example + +@c outer? +@warning{Sólo puede haber @strong{una} expresión musical dentro del +bloque @code{\score}, y @strong{debe} estar encerrada entre llaves.} + +Esta expresión musical única puede tener cualquier tamaño, y puede +contener otras expresiones musicales hasta cualquier grado de +complejidad. Todos los siguientes ejemplos son expresiones musicales: + +@example +@{ c'4 c' c' c' @} +@end example + +@lilypond[verbatim,quote] +{ + { c'4 c' c' c'} + { d'4 d' d' d'} +} +@end lilypond + +@lilypond[verbatim,quote] +<< + \new Staff { c'4 c' c' c' } + \new Staff { d'4 d' d' d' } +>> +@end lilypond + +@example +@{ + \new GrandStaff << + \new StaffGroup << + \new Staff @{ \flute @} + \new Staff @{ \oboe @} + >> + \new StaffGroup << + \new Staff @{ \violinI @} + \new Staff @{ \violinII @} + >> + >> +@} +@end example + +Los comentarios son una excepción a esta regla general (para ver otras +excepciones, consulte @ref{File structure}). Tanto los comentarios de +una línea como los que están delimitados por @code{%@{ .. %@}} se +pueden escribir en cualquier lugar dentro del archivo de entrada. Se +pueden escribir dentro o fuera del bloque @code{\score}, y dentro o +fuera de la expresión musical única dentro del bloque @code{\score}. -UNTRANSLATED NODE: IGNORE ME +@seealso -@node A single music expression -@subsection A single music expression +Manual de aprendizaje: +@rlearning{Working on input files}, +@rlearning{Music expressions explained}, +@rlearning{Score is a (single) compound musical expression}. -UNTRANSLATED NODE: IGNORE ME @node Multiple scores in a book @subsection Multiple scores in a book -UNTRANSLATED NODE: IGNORE ME +@funindex \book +@cindex movimientos, varios + +Un documento puede contener varias piezas de música y texto. Son +ejemplos un libro de estudios o una parte orquestal con varios +movimientos. Cada movimiento se introduce con un bloque +@code{\score}: + +@example +\score @{ + @var{..música..} +@} +@end example + +y los textos se introducen con un bloque @code{\markup}: + +@example +\markup @{ + @var{..texto..} +@} +@end example + +@funindex \book + +Todos los movimientos y textos que aparecen en el mismo archivo +@code{.ly} se tipografían normalmente en la forma de un solo archivo +de salida. + +@example +\score @{ + @var{..} +@} +\markup @{ + @var{..} +@} +\score @{ + @var{..} +@} +@end example + +Sin embargo, si queremos varios archivos de salida a partir del mismo +archivo @code{.ly}, podemos escribir varios bloques @code{\book}, +donde cada uno de estos bloques @code{\book} dará como resultado un +archivo de salida distinto. Si no especificamos ningún bloque +@code{\book} en el archivo,, LilyPond trata implícitamente todo el +archivo como un solo bloque @code{\book}, véase @ref{File structure}. +Una excepción importante se da dentro de los documentos de +lilypond-book, en los que tenemos que escribir explícitamente un +bloque @code{\book}, pues en caso contrario sólo aparecerá en la +salida el primer @code{\score} o @code{\markup}. + +El encabezamiento de cada pieza se puede poner dentro del bloque +@code{\score}. Antes de cada movimiento, se imprime el nombre de la +pieza (@code{piece}) extraído del encabezamiento. El título del libro +entero se puede poner dentro del bloque @code{\book}, pero si no está +presente se inserta el encabezamiento @code{\header} que está al +principio del archivo. + +@example +\header @{ + title = "Ocho miniaturas" + composer = "Igor Stravinsky" +@} +\score @{ + @dots{} + \header @{ piece = "Romanze" @} +@} +\markup @{ + ..texto de la segunda estrofa.. +@} +\markup @{ + ..texto de la tercera estrofa.. +@} +\score @{ + @dots{} + \header @{ piece = "Menuetto" @} +@} +@end example + + +@node File structure +@subsection File structure + +@funindex \paper +@funindex \midi +@funindex \layout +@funindex \header +@funindex \score +@funindex \book + +Un archivo @code{.ly} puede contener cualquier número de expresions +del nivel superior, donde una expresión del nivel superior es una de +las siguientes posibilidades: + +@itemize @bullet +@item +Una definición de salida, como @code{\paper}, @code{\midi} y +@code{\layout}. Tal definición en el nivel más alto cambia los +ajustes predeterminados para todo el libro. Si se introduce más de +una de estas definiciones del mismo tipo en el nivel más alto, +cualquier definición en una expresión posterior tiene prioridad. + +@item +Una expresión directa de Scheme, como +@code{#(set-default-paper-size "a7" 'landscape)} o +@code{#(ly:set-option 'point-and-click #f)}. + +@item +Un bloque @code{\header}. Esto establece el bloque de encabezamiento +global. Es el bloque que contiene las definiciones de los ajustes +para todo el libro, como el compositor, título, etc. + +@item +Un bloque @code{\score}. Esta partitura se reúne con otras partituras +del nivel superior, y se combina con ellas formando un @code{\book} +(libro) único. Este comportamiento se puede cambiar estableciendo el +valor de la variable @code{toplevel-score-handler} en el nivel +superior. El @emph{handler} predeterminado se define en el archivo de +inicio @file{../scm/@/lily@/.scm}. + +@item +Un bloque @code{\book} combina lógicamente varios movimientos (es +decir, varios bloques @code{\score}) en un solo documento. Si hay +varias partituras @code{\score}, se crea un solo archivo de salida +para cada bloque @code{\book}, en el que se concatenan todos los +movimientos correspondientes. La únca razón para especificar +explícitamente bloques @code{\book} en un archivo de entrada +@code{.ly} es si queremos crear varios archivos de salida a partir de +un único archivo de entrada. Una excepción se da dentro de los +documentos de lilypond-book, en los que tenemos que escribir +explícitamente un bloque @code{\book} si queremos tener más de una +única partitura @code{\score} o marcado @code{\markup} en el mismo +ejemplo. Se puede cmbiar este comportamiento estableciendo el valor +de la variable @code{toplevel-book-handler} en el nivel superior. El +@emph{handler} predeterminado se define en el archivo de inicio +@file{../scm/@/lily@/.scm}. + +@item +Una expresión musical compuesta, como +@example +@{ c'4 d' e'2 @} +@end example + +Esto añade la pieza al @code{\score} y la conforma dentro de un libro +único junto a todas las demás partituras @code{\score} y expresiones +musicales del nivel superior. En otras palabras, un archivo que +contiene sólo la expresión musical anterior se traduce a + +@example +\book @{ + \score @{ + \new Staff @{ + \new Voice @{ + @{ c'4 d' e'2 @} + @} + @} + @} + \layout @{ @} + \header @{ @} +@} +@end example + +Se puede cambiar este comportamiento estableciendo el valor de la +bariable @code{toplevel-music-handler} en el nivel más alto. El +@emph{handler} predeterminado se define en el archivo de inicio +@file{../scm/@/lily@/.scm}. + +@item +Un texto de marcado, por ejemplo una estrofa +@example +\markup @{ + 2. Estrofa dos, línea uno +@} +@end example + +Los textos de marcado se colocan encima, en medio o debajo de las +partituras o expresiones musicales, según donde aparezcan escritos. + +@cindex variables + +@item +Una variable, como +@example +fulano = @{ c4 d e d @} +@end example + +Esto se puede utilizar más tarde en el archivo escribiendo +@code{\fulano}. El nombre de las variables ha de ser exclusivamente +alfabético; sin números, guiones ni barras bajas. + +@end itemize + +El ejemplo siguiente muestra tres cosas que se pueden introducir en el +nivel superior: + +@example +\layout @{ + % No justificar la salida + ragged-right = ##t +@} + +\header @{ + title = "Do-re-mi" +@} + +@{ c'4 d' e2 @} +@end example + +En cualquier punto del archivo se pueden introducir cualquiera de las +instrucciones léxicas siguientes: + +@itemize +@item @code{\version} +@item @code{\include} +@item @code{\sourcefilename} +@item @code{\sourcefileline} +@item +Un comentario de una línea, determinado por un símbolo @code{%} al principio. + +@item +Un comentario de varias líneas, delimitado por @code{%@{ .. %@}}. + +@end itemize + +@seealso + +Manual de aprendizaje: +@rlearning{How LilyPond input files work}. + + +@node Titles and headers +@section Titles and headers + +Casi toda la música impresa tiene un título y el nombre del +compositor; ciertas piezas tienen mucha más información. + +@menu +* Creating titles:: +* Custom titles:: +* Reference to page numbers:: +* Table of contents:: +@end menu + + +@node Creating titles +@subsection Creating titles + +Se crean títulos para cada uno de los bloques @code{\score} así como +para todo el archivo de entrada (o bloque @code{\book} (libro)). + +El contenido de cada título se extrae a partir de los bloques +@code{\header} (cabecera). El bloque de cabecera de un libro +contempla lo siguiente: + +@table @code +@funindex dedicatoria +@item dedication +El dedicatario de la música, centrado en lo alto de la primera página. + +@funindex title +@item title +El título de la música, centrado justo debajo de la +dedicatoria. + +@funindex subtitle +@item subtitle +Subtítulo, centrado debajo del título. + +@funindex subsubtitle +@item subsubtitle +Sub-subtítulo, centrado debajo del subtítulo. + +@funindex poet +@item poet +Nombre del poeta, a la izquierda, debajo del subtítulo. + +@funindex composer +@item composer +Nombre del compositor, a la derecha, debajo del subtítulo. + +@funindex meter +@item meter +Texto de la medida, a la izquierda, debajo del poeta. + +@funindex opus +@item opus +Nombre del Opus, a la derecha, debajo del compositor. + +@funindex arranger +@item arranger +Nombre del arreglista, a la derecha, debajo del Opus. + +@funindex instrument +@item instrument +Nombre del instrumento, centrado, debajo del arreglista. También +aparece centrado en lo alto de cada página (aparte de la primera). + +@funindex piece +@item piece +Nombre de la pieza, a la izquierda, debajo del instrumento. + +@cindex página, saltos, forzar +@funindex breakbefore +@item breakbefore +Esto fuerza que el título comience sobre una página nueva (establézcalo a ##t o a ##f). + +@funindex copyright +@item copyright +Aviso de Copyright, centrado en la parte inferior de la primera +página. Para insertar el símbolo de copyright symbol, consulte +@ref{Text encoding}. + +@funindex tagline +@item tagline +Cartel de propósito general en el pie de página, centrado al final de la última. -@node Extracting fragments of notation -@subsection Extracting fragments of notation +@end table + +A continuación presentamos una demostración de todos los campos que +están disponibles. Fíjese en que puede utilizar en la cabecera +cualquier instrucción de marcado de texto (Véase @ref{Formatting text}). + +@lilypond[quote,verbatim,line-width=11.0\cm] +\paper { + line-width = 9.0\cm + paper-height = 10.0\cm +} + +\book { + \header { + dedication = "dedicated to me" + title = \markup \center-column { "Title first line" "Title second line, +longer" } + subtitle = "the subtitle," + subsubtitle = #(string-append "subsubtitle LilyPond version " +(lilypond-version)) + poet = "Poet" + composer = \markup \center-column { "composer" \small "(1847-1973)" } + texttranslator = "Text Translator" + meter = \markup { \teeny "m" \tiny "e" \normalsize "t" \large "e" \huge +"r" } + arranger = \markup { \fontsize #8.5 "a" \fontsize #2.5 "r" \fontsize +#-2.5 "r" \fontsize #-5.3 "a" \fontsize #7.5 "nger" } + instrument = \markup \bold \italic "instrument" + piece = "Piece" + } + + \score { + { c'1 } + \header { + piece = "piece1" + opus = "opus1" + } + } + \markup { + and now... + } + \score { + { c'1 } + \header { + piece = "piece2" + opus = "opus2" + } + } +} +@end lilypond + +Como se mostró anteriormente, puede usar varios bloques +@code{\header}. Cuando los mismos campos aparecen en distintos +bloques, tiene validez el último en definirse. A continuación un +breve ejemplo. + +@example +\header @{ + composer = "Compositor" +@} +\header @{ + piece = "Pieza" +@} +\score @{ + \new Staff @{ c'4 @} + \header @{ + piece = "Otra pieza" % sobreescribe a la anterior + @} +@} +@end example + +Si define la cabecera @code{\header} dentro del bloque @code{\score}, +por lo general se imprimirán solamente las cabeceras @code{piece} y +@code{opus}. Fíjese en que la expresión musical debe aparecer antes +del @code{\header}. + +@lilypond[quote,verbatim,line-width=11.0\cm] +\score { + { c'4 } + \header { + title = "title" % not printed + piece = "piece" + opus = "opus" + } +} +@end lilypond + +@funindex print-all-headers +@noindent +Se puede cambiar este comportamiento (e imprimir todas las cabeceras +cuando la cabecera @code{\header} está definida dentro del bloque +@code{\score}) mediante la utilización de + +@example +\paper@{ + print-all-headers = ##t +@} +@end example + +@cindex copyright +@cindex tagline + +El pie de página por omisión se encuentra vacío, excepto para la +primera página, en la que se inserta el campo de @code{copyright} +extraído del @code{\header}, y para la última página, en la que se +escribe el cartel @code{tagline} sacado del bloque @code{\header}. La +línea por omisión para este cartel es @qq{Music engraving by LilyPond +(@var{version})}.@footnote{Las partituras bien tipografiadas son una +magnífica promoción para nosotros, así que por favor, si puede, +conserve intacta la línea del letrero.} + +Las cabeceras se pueden quitar completamente estableciendo su valor a +falso. + +@example +\header @{ + tagline = ##f + composer = ##f +@} +@end example + + +@node Custom titles +@subsection Custom titles + +Una opción más avanzada es cambiar las definiciones de las variables +siguientes dentro del bloque @code{\paper} block. El archivo de +inicio @file{ly/titling-init.ly} ofrece un listado de la disposición +predeterminada. + +@table @code +@funindex bookTitleMarkup +@item bookTitleMarkup + Es el título que se escribe en lo alto del documento de salida +completo. Normalmente contiene el compositor y el título de la pieza. + +@funindex scoreTitleMarkup +@item scoreTitleMarkup + Es el título que se coloca por encima de un bloque @code{\score}. +normalmente contiene el nombre del movimiento (campo @code{piece}). + +@funindex oddHeaderMarkup +@item oddHeaderMarkup + Es el encabezamiento de las páginas de numeración impar. + +@funindex evenHeaderMarkup +@item evenHeaderMarkup + Es el encabezamiento de las páginas de numeración par. Si se deja + sin especificar, se usará el encabezamiento de las páginas impares. + + De forma predeterminada, los encabezamientos se definen de tal forma +que el número de página está en el borde exterior, y el isntrumento +está centrado. + +@funindex oddFooterMarkup +@item oddFooterMarkup + Es el pie de las páginas de numeración impar. + +@funindex evenFooterMarkup +@item evenFooterMarkup + Es el pie de las páginas de numeración par. Si se deja sin + especificar, se usará en su lugar el encabezamiento de las páginas + impares. + + De forma predeterminada, el pie de página tiene el aviso de +copyright en la primera página, y el cartel @code{tagline} en la +última. +@end table + + +@cindex \paper +@cindex encabezamiento +@cindex header +@cindex pie +@cindex disposición de la página +@cindex títulos + +La definición siguiente pone el título en el extremo izquierdo, y el +compositor en el extremo derecho sobre una única línea. + +@verbatim +\paper { + bookTitleMarkup = \markup { + \fill-line { + \fromproperty #'header:title + \fromproperty #'header:composer + } + } +} +@end verbatim + +@node Reference to page numbers +@subsection Reference to page numbers + +Se puede marcar un lugar determinado de una partitura utilizando la +instrucción @code{\label} (etiqueta), bien en lo alto de la estructura +o bien dentro de la música. Posteriormente se puede hacer referencia +a esta etiqueta dentro de un elemento de marcado, para obtener el +número de la página en que se encuentra la marca, usando la +instrucción de marcado @code{\page-ref}. + +@lilypond[verbatim,line-width=11.0\cm] +\header { tagline = ##f } +\book { + \label #'firstScore + \score { + { + c'1 + \pageBreak \mark A \label #'markA + c' + } + } + + \markup { The first score begins on page \page-ref #'firstScore "0" "?" } + \markup { Mark A is on page \page-ref #'markA "0" "?" } +} +@end lilypond + +La instrucción de marcado @code{\page-ref} toma tres argumentos: +@enumerate +@item la etiqueta, un símbolo de scheme, p.ej. @code{#'firstScore}; +@item un elemento de marcado que se usará como medidor para estimar las dimensiones del marcado; +@item un elemento de marcado que se utilizará en sustitución del número de página si la etiqueta es desconocida. +@end enumerate + +El motivo de que se necesite un medidor es que en el momento en que se +están interpretando los marcados, los saltos de página aún no se han +producido y por tanto los números de página no se conocen todavía. +Para sortear este inconveniente, la interpretación real del marcado se +retrasa hasta un momento posterior; sin embargo, las dimensiones del +marcado se tienen que conocer de antemano, así que se usa el medidor +para decidir estas dimensiones. Si el libro tiene entre 10 y 99 +páginas, el medidor puede ser "00", es decir, un número de dos +dígitos. + +@predefined + +@funindex \label +@code{\label} +@funindex \page-ref +@code{\page-ref} + +@node Table of contents +@subsection Table of contents + +Se puede insertar un índice general o tabla de contenidos utilizando +la instrucción @code{\markuplines \table-of-contents}. Los elementos +que deben aparecer en la tabla de contenidos se introducen con la +instrucción @code{\tocItem}, que se puede usar en el nivel más alto de +la jerarquía del código, o dentro de una expresión musical. + +@verbatim +\markuplines \table-of-contents +\pageBreak + +\tocItem \markup "Primera partitura" +\score { + { + c' % ... + \tocItem \markup "Un punto concreto dentro de la primera partitura" + d' % ... + } +} + +\tocItem \markup "Segunda partitura" +\score { + { + e' % ... + } +} +@end verbatim + +Los elementos de marcado que se usan para dar formato al índice +general se encuentran definidos dentro del bloque @code{\paper}. Los +elementos predeterminados son @code{tocTitleMarkup}, para dar formato +al título de la tabla, y @code{tocItemMarkup}, para aplicar formato a +los elementos del índice, que consisten en el título del elemento y el +número de página. Estas variables se pueden cambiar por parte del +usuario: + +@verbatim +\paper { + %% Traducir el título del índice al español: + tocTitleMarkup = \markup \huge \column { + \fill-line { \null "Índice general" \null } + \hspace #1 + } + %% usar una fuente mayor + tocItemMarkup = \markup \large \fill-line { + \fromproperty #'toc:text \fromproperty #'toc:page + } +} +@end verbatim + +Observe la forma en que nos referimos al texto y al número de página +del elemento de índice, dentro de la definición @code{tocItemMarkup}. + +También se pueden definir nuevas instrucciones y elementos de +marcado para crear índices generales más eleborados: +@itemize +@item en primer lugar, defina una variable de marcado nueva dentro del bloque @code{\paper} +@item luego defina una función de música cuyo propósito es añadir un elemento al índice general +utilizando esta variable de marcado del bloque @code{\paper}. +@end itemize + +En el ejemplo siguiente se define un estilo nuevo para introducir los +nombres de los actos de una ópera en el índice general: + +@verbatim +\paper { + tocActMarkup = \markup \large \column { + \hspace #1 + \fill-line { \null \italic \fromproperty #'toc:text \null } + \hspace #1 + } +} + +tocAct = +#(define-music-function (parser location text) (markup?) + (add-toc-item! 'tocActMarkup text)) +@end verbatim + +@lilypond[line-width=11.0\cm] +\header { tagline = ##f } +\paper { + tocActMarkup = \markup \large \column { + \hspace #1 + \fill-line { \null \italic \fromproperty #'toc:text \null } + \hspace #1 + } +} + +tocAct = +#(define-music-function (parser location text) (markup?) + (add-toc-item! 'tocActMarkup text)) + +\book { + \markuplines \table-of-contents + \tocAct \markup { Atto Primo } + \tocItem \markup { Coro. Viva il nostro Alcide } + \tocItem \markup { Cesare. Presti omai l'Egizzia terra } + \tocAct \markup { Atto Secondo } + \tocItem \markup { Sinfonia } + \tocItem \markup { Cleopatra. V'adoro, pupille, saette d'Amore } + \markup \null +} +@end lilypond + +@seealso + +Archivos de inicio: +@file{ly/@/toc@/-init@/.ly}. + +@predefined + +@funindex \table-of-contents +@code{\table-of-contents} +@funindex \tocItem +@code{\tocItem} + + +@node Working with input files +@section Working with input files + +@menu +* Including LilyPond files:: +* Different editions from one source:: +* Text encoding:: +* Displaying LilyPond notation:: +@end menu -UNTRANSLATED NODE: IGNORE ME @node Including LilyPond files @subsection Including LilyPond files -UNTRANSLATED NODE: IGNORE ME +@funindex \include +@cindex including files -@node Text encoding -@subsection Text encoding +Un proyecto grande se puede dividir en varios archivos. Para +referirse a otro archivo, utilice + +@example +\include "otroarchivo.ly" +@end example + +La línea @code{\include "otroarchivo.ly"} equivale a pegar todo el +contenido de @file{otroarchivo.ly} en el archivo actual en el lugar en +que aparece el @code{\include}. Por ejemplo, en un proyecto grande +podríamos querer archivos distintos para cada parte instrumental y +crear un archivo de @qq{partitura completa} que reúne los archivos +individuales de los instrumentos. Normalmente el archivo incluido +define un cierto número de variables que a partir de entonces quedan +disponibles para poderlas utilizar en el archivo de la partitura +completa. En los archivos incluidos se pueden marcar las secciones +etiquetadas para ayudar a hacerlas utilizables en distintos lugares de +la partitura, véase @ref{Different editions from one source}. + +Los archivos que están en el directorio de trabajo actual se pueden +referenciar simplemente especificando el nombre depués de la +instrucción @code{\include}. Los archivos en otros lugares se pueden +incluir proporcionando una referencia de ruta completa o una ruta +relativa (pero utilice la barra inclinada normal del UNIX, /, no la +barra invertida de DOS/Windows, \, como separador de directorio). Por +ejemplo, si @file{material.ly} está situado un directorio por encima +del directorio de trabajo actual, utilice + +@example +\include "../material.ly" +@end example + +@noindent +o si los archivos de las partes orquestales incluidas están todos +situados en un subdirectorio llamado @file{partes} dentro del +directorio actual, use + +@example +\include "partes/VI.ly" +\include "partes/VII.ly" +... etc. +@end example + +Los archivos de inclusión también pueden contener enunciados +@code{\include} a su vez. Estos enunciados @code{\include} de segundo +nivel no se interpretan hasta que se incorporan al archivo principal, +por lo que los nombres de archivo que especifican deben ser relativos +al directorio que contiene el archivo principal, no al directorio que +contiene el archivo incluido. + +También se pueden incluir archivos de un directorio que está en una +ruta de búsqueda especificada como opción al invocar a LilyPond desde +la línea de órdenes. Los archivos incluidos se especifican usando +solamente su nombre de archivo. Por ejemplo, para compilar mediante +este método un archivo @file{principal.ly} que incluye archivos +situados en un subdirectorio llamado @file{partes}, cambie al +directorio que contiene @file{principal.ly} e introduzca + +@example +lilypond --include=partes principal.ly +@end example + +y en @file{principal.ly} escriba + +@example +\include "VI.ly" +\include "VII.ly" +... etc. +@end example + +Los archivos que se incluyen en muchas partituras se pueden poner en +el directorio de LilyPond @file{../ly} (la localización de este +directorio depende de la instalación: véase @rlearning{Other sources +of information}). Estos archivos se pueden incluir sencillamente por +su nombre en un enunciado @code{\include}. De esta forma se incluyen +los archivos dependientes del idioma como @file{english.ly}. + +LilyPond incluye de forma predeterminada ciertos archivos cuando se +inicia el programa. Estas inclusiones no son visibles para el +usuario, pero los archivos se pueden identificar ejecutando +@code{lilypond --verbose} desde la línea de órdenes. Esto presentará +una lista de rutas y archivos que utiliza LilyPond, junto a muchas +otras indicaciones. De forma alternativa, pueden verse explicaciones +sobre los archivos más importantes de este conjunto en +@rlearning{Other sources of information}. Estos archivos se pueden +editar, pero los cambios realizados sobre ellos se perderán al +instalar una nueva versión de LilyPond. + +Pueden verse ejemplos sencillos sobre el uso de @code{\include} en +@rlearning{Scores and parts}. + +@seealso + +Manual de aprendizaje: +@rlearning{Other sources of information}, +@rlearning{Scores and parts}. + +@knownissues + +Si un archivo incluido recibe un nombre igual al de uno de los +archivos de instalación de LilyPond, el archivo que tiene prioridad es +el de los archivos de instalación de LilyPond. -UNTRANSLATED NODE: IGNORE ME @node Different editions from one source @subsection Different editions from one source -UNTRANSLATED NODE: IGNORE ME +Se encuentran disponibles varios mecanismos para facilitar la +producción de distintas versiones de una partitura a partir de la +misma fuente musical. Las variables son quizá más útiles para +combinar secciones extensas de música y/o anotaciones de diversas +formas, mientras que las etiquetas son más útiles para seleccionar una +de entra varias secciones de música más cortas. Cualquiera que sea el +método utilizado, la separación de la notación de la estructura de la +partitura hará que sea más fácil cambiar la estructura dejando intacta +la notación. -@node Common syntax issues TODO name? -@section Common syntax issues TODO name? +@menu +* Using variables:: +* Using tags:: +@end menu -UNTRANSLATED NODE: IGNORE ME +@node Using variables +@unnumberedsubsubsec Using variables -@menu -* Controlling direction and placement:: -* Distances and measurements MAYBE MOVE:: -* When to add a -:: -@end menu -@node Controlling direction and placement -@subsection Controlling direction and placement +@cindex variables, uso de las -UNTRANSLATED NODE: IGNORE ME +Si las secciones de la música se definen dentro de variables, se +pueden reutilizar en distintas partes de la partitura, véase +@rlearning{Organizing pieces with variables}. Por ejemplo, una +partitura vocal @notation{a cappella} con frecuencia incluye una +reducción de piano de las partes para ensayar que ees idéntica a la +música vocal, por lo que ésta sólo se tiene que escribir una vez. Se +puede combinar sobre un solo pentagrama la música de dos variables, +véase @ref{Automatic part combining}. He aquí un ejemplo: -@node Distances and measurements MAYBE MOVE -@subsection Distances and measurements MAYBE MOVE +@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 } +<< + \new Staff = "Soprano" \sopranoMusic + \new Lyrics \allLyrics + \new Staff = "Alto" \altoMusic + \new Lyrics \allLyrics + \new Staff = "Tenor" { + \clef "treble_8" + \tenorMusic + } + \new Lyrics \allLyrics + \new Staff = "Bass" { + \clef "bass" + \bassMusic + } + \new Lyrics \allLyrics + \new PianoStaff << + \new Staff = "RH" { + \set Staff.printPartCombineTexts = ##f + \partcombine + \sopranoMusic + \altoMusic + } + \new Staff = "LH" { + \set Staff.printPartCombineTexts = ##f + \clef "bass" + \partcombine + \tenorMusic + \bassMusic + } + >> +>> +@end lilypond -UNTRANSLATED NODE: IGNORE ME +Se pueden producir partituras distintas que presenten sólo las partes +vocales o sólo la parte de piano, cambiando solamente los enunciados +estructurales, sin modificar la notación musical. -@node When to add a - -@subsection When to add a - +Para partituras extensas, las definiciones de variable se pueden poner +en archivos separados que se incluyen más tarde, véase @ref{Including +LilyPond files}. -UNTRANSLATED NODE: IGNORE ME -@node Other stuffs TODO move? -@section Other stuffs TODO move? +@node Using tags +@unnumberedsubsubsec Using tags + +@funindex \tag +@funindex \keepWithTag +@funindex \removeWithTag +@cindex etiqueta +@cindex manetener música etiquetada +@cindex quitar música etiquetada + +La instrucción @code{\tag #'@var{parteA}} marca una expresión musical +con el nombre @var{parteA}. Las expresiones etoiquetadas de esta +manera se pueden seleccionar o filtrar más tarde por su nombre, usando +bien @code{\keepWithTag #'@var{nombre}} o bien @code{\removeWithTag +#'@var{nombre}}. El resultado de la aplicación de estos filtros a la +música etiquetada es como sigue: + +@multitable @columnfractions .5 .5 +@headitem Filtro + @tab Resultado +@item +Música etiquetada precedida de @code{\keepWithTag #'@var{nombre}} +@tab +Se incluye la música no etiquetada y la música etiquetada con +@var{nombre}; se excluye la música etiquetada con cualquier otro +nombre de etiqueta. +@item +Música etiquetada precedida de @code{\removeWithTag #'@var{nombre}} +@tab +Se incluye la música no etiquetada y la música etiquetada con +cualquier nombre de etiqueta distinto a @var{nombre}; se excluye la +música etiquetada con @var{nombre}. +@item +Música etiquetada no precedida de @code{\keepWithTag} ni de +@code{\removeWithTag} +@tab Se incluye toda la música etiquetada y no etiquetada. +@end multitable + +Los argumentos de las instrucciones @code{\tag}, @code{\keepWithTag} y +@code{\removeWithTag} deben ser un símbolo (como @code{#'partitura} o +@code{#'parte}), seguido de una expresión musical. + +En el ejemplo siguiente vemos dos versiones de una pieza musical, una +que muestra trinos con la notación usual y otra con los trinos +expandidos explícitamente: + +@lilypond[verbatim,quote] +music = \relative g' { + g8. c32 d + \tag #'trills {d8.\trill } + \tag #'expand {\repeat unfold 3 {e32 d} } + c32 d + } + +\score { + \keepWithTag #'trills \music +} +\score { + \keepWithTag #'expand \music +} +@end lilypond + +@noindent +De forma alternativa, a veces es más fácil excluir secciones de música: + +@lilypond[verbatim,quote] +music = \relative g' { + g8. c32 d + \tag #'trills {d8.\trill } + \tag #'expand {\repeat unfold 3 {e32 d} } + c32 d + } + +\score { + \removeWithTag #'expand + \music +} +\score { + \removeWithTag #'trills + \music +} +@end lilypond + +El flitrado con etiquetas se puede aplicar a articulaciones, textos, +etc. anteponiendo + +@example +-\tag #'@var{mi-etiqueta} +@end example + +a una articulación. Por ejemplo, esto define una nota con una +indicación opcional de digitación y una nota con una anotación +condicional: + +@example +c1-\tag #'finger ^4 +c1-\tag #'warn ^"¡Ojo!" +@end example + +Se pueden poner varias etiquetas sobre expresiones con varias entradas +de @code{\tag}: + +@lilypond[quote,verbatim] +music = \relative c'' { + \tag #'a \tag #'both { a a a a } + \tag #'b \tag #'both { b b b b } +} +<< +\keepWithTag #'a \music +\keepWithTag #'b \music +\keepWithTag #'both \music +>> +@end lilypond + +Se pueden aplicar varios filtros @code{\removeWithTag} a una sola +expresión musical para quitar varias secciones etiquetadas con nombres +distintos: + +@lilypond[verbatim,quote] +music = \relative c'' { +\tag #'A { a a a a } +\tag #'B { b b b b } +\tag #'C { c c c c } +\tag #'D { d d d d } +} +{ +\removeWithTag #'B +\removeWithTag #'C +\music +} +@end lilypond + +Dos o más filtros @code{\keepWithTag} aplicados a una sola expresión +musical producen la eliminación de @emph{todas} las secciones +etiquetadas, porque el primer filtro quita todas las secciones +etiquetadas excepto la que se nombra, y el segundo filtro elimina +incluso esa sección etiquetada. + +@seealso + +Manual de aprendizaje: +@rlearning{Organizing pieces with variables}. + +Referencia de la notación: +@ref{Automatic part combining}, +@ref{Including LilyPond files}. + +@ignore +@c This warning is more general than this placement implies. +@c Rests are not merged whether or not they come from tagged sections. +@c Should be deleted? -td + +@knownissues + +Multiple rests are not merged if you create a score with more +than one tagged section at the same place. + +@end ignore + +@node Text encoding +@subsection Text encoding + +LilyPond usa el conjunto de caracteres definido por el consorcio +Unicode y la norma ISO/IEC 10646. Define un nombre único y un código +para los conjuntos de caracteres que se utilizan en prácticamente +todos los idiomas modernos y también en muchos otros. Unicode se +puede implementar utilizando varios esquemas de codificación +distintos. LilyPond usa la codificación UTF-8 (UTF son las siglas de +@emph{Unicode Transformation Format}, o formato de transformación de +Unicode) que representa todos los caracteres comunes de Latin en un +solo byte, y representa otros caracteres usando un formato de longitud +variable de hasta cuatro bytes. + +El aspecto visual real de los caracteres viene determinado por los +glifos que se definen en las fuentes tipográficas concretas que se +tengan disponibles: una fuente tipográfica define la asignación de un +subconjunto de los códigos de Unicode a glifos. LilyPond usa la +biblioteca Pango para representar y disponer tipográficamente textos +multilingües. + +Lilypond no realiza ninguna conversión en la codificación de la +entrada. Esto significa que cualquier text, ya sea el título, la +letra de la canción o una instrucción musical que contenga caracteres +distintos a los del conjunto ASCII, se deben codificar en UTF-8. La +forma más fácil de escribir dicho texto es utilizar un editor +preparado para Unicode y guardar el archivo con la codificación UTF-8. +Casi todos los editores modernos populares contemplan el UTF-8, por +ejemplo lo hacen vim, Emacs, jEdit, y GEdit. Todos los sistemas MS +Windows posteriores a NT usan Unicode como codificación de caracteres +nativa, de manera que incluso el accesorio Bloc de Notas (Notepad) +puede editar y guardar un archivo en el formato UTF-8. Una +alternativa más funcional para Windows es BabelPad. + +Si un archivo de entrada que contiene un carácter que no es ASCII, no +se guarda en el formato UTF-8, se genera el mensaje de error + +@example +FT_Get_Glyph_Name () error: argumento inválido +@end example + +He aquí un ejemplo que muestra texto cirílico, hebreo y portugués: + +@lilypond[quote] +%c No verbatim here as the code does not display correctly in PDF +% Cyrillic +bulgarian = \lyricmode { + Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон. +} + +% Hebrew +hebrew = \lyricmode { + זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן. +} + +% Portuguese +portuguese = \lyricmode { + à vo -- cê uma can -- ção legal +} + +\relative { + c2 d e f g f e +} +\addlyrics { \bulgarian } +\addlyrics { \hebrew } +\addlyrics { \portuguese } +@end lilypond + +Para introducir un caracter aislado para el que se conoce la secuencia +de escape de Unicode pero no está disponible en el editor que se está +usando, use @code{\char ##xhhhh} dentro de un bloque @code{\markup}, +donde @code{hhhh} es el código hexadecimal del carácter en cuestión. +Por ejemplo, @code{\char ##x03BE} inserta el carácter Unicode U+03BE, +que tiene el nombre Unicode @qq{Letra griega Xi pequeña}. Se puede +sustituir cualquier código hexadecimal Unicode, y si todos los +caracteres especiales se escriben en este formato no es necesario +guardar el archivo de entrada en formato UTF-8. Por supuesto, debe +estar instalada y estar disponible para Lilypond una fuente +tipográfica que contenga codificados todos estos caracteres. + +El ejemplo siguiente muestra caracteres codificados en UTF-8 que se +usan en cuatro lugares: en una llamada de ensayo, como texto de +articulación, en la letra y como texto independiente bajo la +partitura: + +@lilypond[quote,verbatim] +\score { + \relative c'' { + c1 \mark \markup { \char ##x03EE } + c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } } + } + \addlyrics { O \markup { \concat{ Ph \char ##x0153 be! } } } +} +\markup { "Copyright 2008" \char ##x00A9 } +@end lilypond + +Para escribir el símbolo de copyright en la nota de créditos, utilice: + +@example +\header @{ + copyright = \markup @{ \char ##x00A9 "2008" @} +@} +@end example -UNTRANSLATED NODE: IGNORE ME -@menu -* Displaying LilyPond notation:: -* Skipping corrected music:: -* context list FIXME:: -* another thing FIXME:: -* Input modes FIXME:: -@end menu @node Displaying LilyPond notation @subsection Displaying LilyPond notation -UNTRANSLATED NODE: IGNORE ME +@funindex \displayLilyMusic +La impresión textual de una expresión musical en notación de LilyPond +puede hacerse usando la función musical @code{\displayLilyMusic}. Por +ejemplo, + +@example +@{ + \displayLilyMusic \transpose c a, @{ c e g a bes @} +@} +@end example + +imprimirá + +@example +@{ a, cis e fis g @} +@end example + +De forma predeterminada, LilyPond imprime estos mensajes en la consola +junto al resto de los mensajes. Para discernir entre estos mensajes y +guardar el resultado de @code{\display@{MATERIAL@}}, redireccione la +salida hacia un archivo. + +@c TODO What happens under Windows? + +@example +lilypond archivo.ly >resultado.txt +@end example + + + +@node Controlling output +@section Controlling output + +@menu +* Extracting fragments of music:: +* Skipping corrected music:: +@end menu + +@node Extracting fragments of music +@subsection Extracting fragments of music + +Es posible citar pequeños fragmentos de una partitura grande +directamente a partir de la salida. Puede compararse con la +separación de una pieza de una partitura, recortándola con tijeras. + +Esto se hace definiendo los compases que se deben recortar. Por +ejemplo, la inclusión de la siguiente definición + +@verbatim +\layout { + clip-regions + = #(list + (cons + (make-rhythmic-location 5 1 2) + (make-rhythmic-location 7 3 4))) +} +@end verbatim + +@noindent +extrae un fragmento empezando por la mitad del quinto compás y +finalizando en el séptimo compás. El significado de @code{5 1 2} es: +después de una blanca (1/2) en el compás 5, y el de @code{7 3 4} +después de tres negras del compás 7. + +Se pueden definir más zonas de recorte añadiendo más parejas de +definición de tiempo rhythmic-location a la lista. + +Para poder utilizar esta funcionalidad, LilyPond se debe invocar con +la opción @code{-dclip-systems}. Los recortes aparecen en la salida +como archivos EPS, y se convierten en PDF y PNG si estos formatos +también están activados. + +Para ver más información sobre los formatos de salida, consulte +@rprogram{Invoking lilypond}. + @node Skipping corrected music @subsection Skipping corrected music -UNTRANSLATED NODE: IGNORE ME +@funindex skipTypesetting +@funindex showFirstLength +@funindex showLastLength + +Al escribir o copiar música, normalmente sólo es interesante de ver y +corregir la música cercana al final (donde estams añadiendo las +notas). Para acelerar este proceso de corrección, es posible saltar +la composición tipográfica de todos excepto unos pocos de los últimos +compases. Esto se consigue poniendo + +@verbatim +showLastLength = R1*5 +\score { ... } +@end verbatim + +@noindent +en nuestro archivo fuente. Esto hará que se tracen sólo los últimos +cinco compases (suponniendo un compás de 4/4) de cada una de las +partituras @code{\score} del archivo de entrada. Para piezas largas, +el tipografiado de únicamente una parte pequeña es con frecuencia un +orden de magnitud más rápido que el de la obra completa. Si estamos +trabajando sobre el principio de una partitura que ya hemos +tipografiado (p.ej., para añadir una parte instrumental nueva), +también puede ser útil la propiedad @code{showFirstLength}. + +Este mecanismo de pasar por alto partes de un partitura se puede +controlar con un grano más fino mediante la propiedad +@code{Score.skipTypesetting}. Cuando su valor está establecido, no se +lleva a cabo ningún tipografiado en absoluto. + +Esta propiedad se usa también para controlar la salida al archivo +MIDI. Observe que pasa por alto todos los eventos, incluidos el tempo +y los cambios de instrumento. Está usted advertido. + +@lilypond[quote,fragment,ragged-right,verbatim] +\relative c'' { + c8 d + \set Score.skipTypesetting = ##t + e e e e e e e e + \set Score.skipTypesetting = ##f + c d b bes a g c2 } +@end lilypond + +En música polifónica, @code{Score.skipTypesetting} afecta a todas las +voces y pentagramas, ahorrando más tiempo incluso. + + +@node MIDI output +@section MIDI output + +@cindex sonido +@cindex MIDI + +El MIDI (Musical Instrument Digital Interface, Interfase Digital para +Instrumentos Musicales) es un estándar para interconectar y controlar +instrumentos musicales electrónicos. Un archivo o secuencia MIDI es +una serie de notas dentro de un conjunto de pistas. No es un archivoo +de sonidos reales; se necesita un programa reproductor especial para +traducir la serie de notas en sonidos de verdad. + +Cualquier música se puede convertir a archivos MIDI, de manera que +podamos escuchar lo que hayamos introducido. Esto es muy conveniente +para comprobar la corrección de la música; las octavas equivocadas o +las alteraciones erróneas se ponen de relieve muy claramente al +escuchar la salida MIDI. + +@c TODO Check this +La salida MIDI reserva un canal por cada pentagrama, y otro para los +ajustes globales. Por ello, el archivo MIDI no debe tener más de 15 +pautas (o 14 si no se usa la percusión). Otros pentagramas permanecen +en silencio. + +@menu +* Creating MIDI files:: +* MIDI block:: +* What goes into the MIDI output?:: +* Repeats in MIDI:: +* Controlling MIDI dynamics:: +* Percussion in MIDI:: +@end menu + +@node Creating MIDI files +@subsection Creating MIDI files + +Para crear un MIDI a partir de una pieza de música, escriba un bloque +@code{\midi} en la partitura, por ejemplo: + +@example +\score @{ + @var{...música...} + \midi @{ @} +@} +@end example + +Si hay un bloque @code{\midi} dentro de un @code{\score} que no tenga +ningún bloque @code{\layout}, solamente se producirá MIDI. Si se +necesita una notación impresa, debe haber también un bloque +@code{\layout}: + +@example +\score @{ + @var{...música...} + \midi @{ @} + \layout @{ @} +@} +@end example + +Se traducen correctamente a la salida MIDI la altura y duración de las +notas, las ligaduras de unión, matices y cambios de tempo. Las +indicaciones dinámicas, crescendi y decrescendi se traducen a niveles +de volumen MIDI. Las marcas dinámicas se traducen a una fracción fija +del rango de volumen MIDI disponible. Los crescendi y decrescendi +hacen que el volumen varía linealmente entre sus dos extremos. El +efecto de las indicaciones dinámicas sobre la salida MIDI se puede +eliminar por completo, véase @ref{MIDI block}. + +El tempo inicial y los cambios de tempo posteriores se pueden +especificar utilizando la instrucción @code{\tempo} dentro de la +propia notación musical. Se reflejan en cambios de tempo en la salida +MIDI. Esta instrucción normalmente hace que se imprima la indicación +metronómica, pero esto se puede eliminar, véase @ref{Metronome marks}. +Más abajo se describe una forma alternativa de especificar el tempo +MIDI inicial o global, véase @ref{MIDI block}. + +@unnumberedsubsubsec Instrument names + +@cindex instrumento, nombres de +@funindex Staff.midiInstrument + +El nombre del instrumento MIDI se establece mediante la propiedad +@code{Staff.midiInstrument}. El nombre del instrumento se debe elegir +de entre los que están en la lista que aparece en @ref{MIDI +instruments}. + +@example +\new Staff @{ + \set Staff.midiInstrument = "glockenspiel" + @var{...notes...} +@} +@end example + +@example +\new Staff \with @{midiInstrument = "cello"@} @{ + @var{...notes...} +@} +@end example + +Si el instrumento elegido no coincide exactamente con uno de los +instrumentos de la lista de instrumentos MIDI, se usará el instrumento +Piano de Cola (@code{"acoustic grand"}). + +@snippets + +@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] +{changing-midi-output-to-one-channel-per-voice.ly} + +@knownissues + +@c In 2.11 the following no longer seems to be a problem -td +@ignore +Unterminated (de)crescendos will not render properly in the midi file, +resulting in silent passages of music. The workaround is to explicitly +terminate the (de)crescendo. For example, + +@example +@{ a\< b c d\f @} +@end example + +@noindent +will not work properly but + +@example +@{ a\< b c d\!\f @} +@end example + +@noindent +will. +@end ignore + +Los cambios del volumen MIDI sólo tienen lugar al principio de la +nota, por lo que los crescendi y decrescendi no pueden afectar al +volumen de una sola nota. + +No todos los repoductores de MIDI manejar adecuadamente los cambios de +tempo de la salida MIDI. Entre los reproductores que se sabe que +funcionan se encuentran el Reproductor de Medios de MS Windows y +@uref{http://@/timidity@/.sourceforge@/.net/,timidity}. + + +@node MIDI block +@subsection MIDI block + +@cindex bloque MIDI + +Si se requiere una salida MIDI, debe aparecer un bloque @code{\midi} +dentro de un bloque de partitura. Es análogo al bloque layout de +diseño de página, pero algo maś simple. Con frecuencia, el bloque +@code{\midi} se deja vacío, pero puede contener reorganizaciones de +contextos, definiciones de contexto nuevas o código para fijar valores +de propiedades. Por ejemplo, en el ejemplo siguiente se establece el +tempo inicial exportado alarchivo MIDI sin hacer que se imprima una +indicación de tempo: + +@example +\score @{ + @var{...música...} + \midi @{ + \context @{ + \Score + tempoWholesPerMinute = #(ly:make-moment 72 4) + @} + @} +@} +@end example + +En este ejemplo, el tempo se establece a 72 pulsos de negra por +minuto. Esta clase de especificación de tempo no puede tomar como +argumento una figura con puntillo. Si necesitamos una figura con +puntillo, dividimos la nota con puntillo en figuras más pequeñas. Por +ejemplo, un tempo de 90 negras con puntillo por minuto se puede +especificar como 270 corcheas por minuto: + +@example +tempoWholesPerMinute = #(ly:make-moment 270 8) +@end example + +@cindex MIDI, definiciones de contexto + +Las definiciones de contexto siguen con precisión la misma sintaxis +que la de un bloque @code{\layout}. Los módulos de traducción para el +sonido reciben el nombre de ejecutantes. Los contextos para la salida +MIDI se definen en @file{../ly/@/performer@/-init@/.ly}, véase +@rlearning{Other sources of information}. Por ejemplo, para eliminar +el efecto de los matices de la salida MIDI, inserte las líneas +siguientes en el bloque @code{\midi@{ @}}. + +@example +\midi @{ + ... + \context @{ + \Voice + \remove "Dynamic_performer" + @} +@} +@end example + +La salida MIDI se crea sólo cuando se incluye un bloque @code{\midi} +dentro de un bloque de partitura definido con una instrucción +@code{\score}. Si se sitúa dentro de un contexto de partitura +instanciado explícitamente (es decir, dentro de un bloque @code{\new +Score}) el archivo no funciona. Para resolverlo, encierre las +instrucciones @code{\new Score} y @code{\midi} dentro de un bloque +@code{\score}. + +@example +\score @{ + \new Score @{ @dots{}notas@dots{} @} + \midi @{ @} +@} +@end example + +@node What goes into the MIDI output? +@subsection What goes into the MIDI output? + +@unnumberedsubsubsec Supported in MIDI + +@cindex alturas en MIDI +@cindex MIDI, alturas +@cindex cuartos de tono en MIDI +@cindex MIDI, cuartos de tono +@cindex microtonos en MIDI +@cindex MIDI, microtonos +@cindex acordes, nombres de, en MIDI +@cindex MIDI, nombres de +@cindex duraciones en MIDI +@cindex MIDI, duraciones +@c TODO etc + +Los siguientes elementos de notación se reflejan en la salida MIDI: + +@itemize +@item Alturas +@item Cuartos de tono (véase @ref{Accidentals}. La reproducción necesita un reproductor que contemple la curvatura de tono o @emph{pitch bend}.) +@item Acordes escritos como nombres de acorde +@item Ritmos escritos como duraciones de las notas, incluidos los grupos de valoración especial +@item Trémolos escritos sin @q{@code{:}[@var{número}]} +@item Ligaduras de unión +@item Matices o indicaciones de dinámica +@item Crescendi y decrescendi sobre varias notas +@item Cambios de tempo insertados con una marca metronómica +@item Letra de las canciones +@end itemize + +@unnumberedsubsubsec Unsupported in MIDI + +@c TODO index as above + +Los siguientes elementos de notación no tienen ningún efecto sobre la +salida MIDI: + +@itemize +@item Duraciones escritas como anotaciones, p.ej. el swing +@item Cambios de tempo escritos como anotacioens sin marca de tempo +@item Staccato y otras articulaciones y ornamentos +@item Ligaduras de expresión y de fraseo +@item Crescendi y decrescendi sobre una nota única +@item Trémolos introducidos con @q{@code{:}[@var{número}]} +@item Bajo cifrado +@end itemize + + +@node Repeats in MIDI +@subsection Repeats in MIDI + +@cindex repeticiones, expandir +@funindex \unfoldRepeats + +Con un poco de trucaje, se puede hacer que cualquier tipo de +repetición esté presente en la salida MIDI. Esto se consigue mediante +la aplicación de la función musical @code{\unfoldRepeats}. Esta +función cambia todas las repeticiones a repeticiones desplegadas. + +@lilypond[quote,verbatim,fragment,line-width=8.0\cm] +\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 + +Al crear un archivo de partitura que use @code{\unfoldRepeats} para el +MIDI, es necesario hacer dos bloques @code{\score}: uno para el MIDI +(con repeticiones desplegadas) y otro para la notación impresa (con +repeticiones de volta --primera y segunda vez--, tremolo --trémolo--, +y percent --repetición de compases--). Por ejemplo, + +@example +\score @{ + @var{..música..} + \layout @{ .. @} +@} +\score @{ + \unfoldRepeats @var{..música..} + \midi @{ .. @} +@} +@end example + + +@node Controlling MIDI dynamics +@subsection Controlling MIDI dynamics + +La dinámica en el MIDI está implementada por medio del intérprete +Dynamic_performer que reside de forma predeterminada dentro del +contexto Voice. Es posible controlar el volumen MIDI general, el +volumen relativo de los matices dinámicos y el volumen relativo de los +distintos instrumentos. + +@unnumberedsubsubsec Dynamic marks + +Los matices o indicaciones de dinámica se traducen a una fracción fija +del rango de volumen MIDI disponible. Las fracciones predeterminadas +se extienden desde 0.25 para @notation{ppppp} hasta 0.95 para +@notation{fffff}. El conjunto de indicaciones dinámicas y las +fracciones asociadas pueden verse en @file{../scm/midi.scm}, véase +@rlearning{Other sources of information}. Este conjunto de fracciones +se puede cmbiar o extender proporcionando una función que toma como +argumento una indicación dinámica y devuelve la fracción requerida, y +estableciendo @code{Score.dynamicAbsoluteVolumeFunction} a esta +función. + +Por ejemplo, si se requiere una indicación dinámica +@notation{rinforzando}, @code{\rfz}, ésta no tiene ningún efecto +predeterminado sobre el voumen MIDI, pues no está incluida en el +conjunto predeterminado. De igual manera, si se define una indicación +dinámica nueva con @code{make-dynamic-script}, ésta tampoco estará +incluida en el conjunto predeterminado. El ejemplo siguiente muestra +cómo hay que añadir el volumen MIDI para estas indicaciones dinámicas. +La función Scheme establece la fracción a 0.9 si se encuentra una +indicación dinámica rfz, y en caso contrario llama a la función +predeterminada. + +@lilypond[verbatim,quote] +#(define (myDynamics dynamic) + (if (equal? dynamic "rfz") + 0.9 + (default-dynamic-absolute-volume dynamic))) + +\score { + \new Staff { + \set Staff.midiInstrument = "cello" + \set Score.dynamicAbsoluteVolumeFunction = #myDynamics + \new Voice { + \relative c'' { + a\pp b c-\rfz + } + } + } + \layout {} + \midi {} +} +@end lilypond + +Como alternativa, si se necesitara redefinir la tabla completa de +fracciones, sería mejor usar el procedimiento +@notation{default-dynamic-absolute-volume} que aparece en +@file{../scm/midi.scm} y la tabla asociada como modelo. El último +ejemplo de esta sección muestra cómo se puede hacer esto. + +@unnumberedsubsubsec Overall MIDI volume + +El volumen general máximo y mínimo de las indicaciones dinámicas de +MIDI se controla estableciendo valores para las propiedades +@code{midiMinimumVolume} y @code{midiMaximumVolume} en el nivel de +@code{Score}. Estas propiedades tienen efecto solamente sobre las +indicaciones dinámicas, por ello si queremos que tengan validez desde +el comienzo de la partitura, se debe colocar allí una indicación de +dinámica. La fracción que corresponde a cada indicación dinámica se +modifica con esta fórmula: + +@example +midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fracción +@end example + +En el ejemplo siguiente, el rango de intensidad dinámica del volumen +general MIDI está limitado al intervalo desde 0.2 hasta 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 { + \context { + \Score + tempoWholesPerMinute = #(ly:make-moment 72 2) + midiMinimumVolume = #0.2 + midiMaximumVolume = #0.5 + } + } +} +@end lilypond + +@unnumberedsubsubsec Equalizing different instruments (i) + +Si las propiedades de volumen MIDI máximo y mínimo están establecidas +en el contexto @code{Staff} se pueden controlar los volúmenes +relativos de los instrumentos MIDI. Esto proporciona un ecualizador +de instrumentos básico que puede realzar significativamente la calidad +de la salida MIDI. + +En este ejemplo se reduce el volumen del clarinete con relación al de +la flauta. Debe haber una indicación dinámica en la primera nota de +cada instrumento para que esto funcione correctamente. + +@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 { + \context { + \Score + tempoWholesPerMinute = #(ly:make-moment 72 2) + } + } +} +@end lilypond + +@unnumberedsubsubsec Equalizing different instruments (ii) + +Si las propiedades de volumen MIDI máximo y mínimo no están +establecidas, de forma predeterminada LilyPond aplica un pequeño grado +de ecualización a algunos instrumentos. Los instrumentos y la +ecualización que se aplica se muestra en la tabla +@notation{instrument-equalizer-alist} en @file{../scm/midi.scm}. + +El ecualizador básico predeterminado se puede sustituir estableciendo +@code{instrumentEqualizer} en el contexto @code{Score} a un +procedimiento Scheme nuevo que acepte el nombre de un instrumento MIDI +como único argumento y devuelva un par de fracciones que dan los +volúmenes máximo y mínimo que se aplican a dicho instrumento. Esta +sustitución se hace de la misma forma que mostramos para reestablecer +la fracción de volumen absoluto @code{dynamicAbsoluteVolumeFunction} +al comienzo de esta sección. El ecualizador predeterminado, +@notation{default-instrument-equalizer}, en @file{../scm/midi.scm}, +muestra cómo se puede escribir tal procedimiento. + +El ejemplo siguiente establece los volúmenes relativos de la flauta y +del clarinete a los mismos valores que el ejemplo anterior. + +@lilypond[verbatim,quote] +#(define my-instrument-equalizer-alist '()) + +#(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)))) + +\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 { + \context { + \Score + tempoWholesPerMinute = #(ly:make-moment 72 2) + } + } +} +@end lilypond + +@ignore +@c Delete when satisfied this is adequately covered elsewhere -td + +@n ode Microtones in MIDI +@s ubsection Microtones in MIDI + +@cindex microtones in MIDI + +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' { + c cih cis cisih + d dih ees eeh + e eih f fih + fis fisih g gih + gis gisih a aih + bes beh b bih + } + \layout {} + \midi {} +} +@end lilypond +@end ignore -@node context list FIXME -@subsection context list FIXME -UNTRANSLATED NODE: IGNORE ME +@node Percussion in MIDI +@subsection Percussion in MIDI -@node another thing FIXME -@subsection another thing FIXME +La notación de los instrumentos de percusión se realiza normalmente en +un contexto @code{DrumStaff} y cuando se hace de esta forma se les da +salida correctamente por el canal MIDI@tie{}10, pero ciertos +instrumentos de percusión de altura determinada, como el xilófono, +marimba, vibráfono, timbales, etc., se tratan como instrumentos +@qq{normales} y la música para estos instrumentos se debe introducir +en contestos de @code{Staff} normales, no en un contexto +@code{DrumStaff}, para obtener la salida MIDI correcta. -UNTRANSLATED NODE: IGNORE ME +Ciertos sonidos de altura indeterminada que están incluidos en el +estándar General MIDI, como el tom melódico, el tambor taiko, los +tambores sintéticos, etc., no se pueden acceder a través del canal +MIDI@tie{}10, por lo que la notación para dichos instrumentos se debe +introducir también en un contexto normal de @code{Staff}, utilizando +las alturas normales adecuadas. -@node Input modes FIXME -@subsection Input modes FIXME +Muchos instrumentos de percusión no están incluidos dentro del +estándar General MIDI standard, p.ej. las castañuelas. El método más +fácil (aunque no satisfactorio) de producir una salida MIDI al +escribir para estos instrumentos es sustituirlos por el sonido más +parecido del conjunto estándar. -UNTRANSLATED NODE: IGNORE ME +@c TODO Expand with examples, and any other issues +@knownissues --- SKELETON FILE -- -When you actually translate this file, please remove these lines as -well as all `UNTRANSLATED NODE: IGNORE ME' lines. +Debido a que el estándar General MIDI no contiene golpes de aro +(@emph{rim shots}), para este propósito se utiliza en su lugar el +golpe lateral de baqueta (@emph{sidestick}).