@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@ignore
- Translation of GIT committish: ea19bcc59cf8bab03632a84a23646b9c10853618
+ Translation of GIT committish: ba10db0a4ffe50a260d76179b77c396034434ce4
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.12.0"
+@c \version "2.14.0"
@node Entrada y salida generales
@chapter Entrada y salida generales
* Trabajar sobre los archivos de entrada::
* Controlar la salida::
* Salida MIDI::
+* Extraer información musical::
@end menu
@translationof Input structure
El formato principal de entrada para LilyPond son archivos de texto.
-Por convenio, el nombre de estos archivos termina en @code{.ly}.
+Por convenio, el nombre de estos archivos termina en @file{.ly}.
@menu
* Estructura de una partitura::
* Varias partituras en un libro::
+* Varios archivos de salida a partir de uno de entrada::
+* Nombres de los archivos de salida::
* Estructura del archivo::
@end menu
pueden escribir dentro o fuera del bloque @code{\score}, y dentro o
fuera de la expresión musical única dentro del bloque @code{\score}.
+Recuerde que incluso dentro de un archivo que contenga solamente un
+bloque @code{\score}, éste se encuentra incluido implícitamente dentro
+de un bloque @code{\book}. Un bloque @code{\book} dentro de un
+archivo fuente produce al menos un archivo de salida, y de forma
+predeterminada el nombre del archivo de salida que se produce está
+derivado del nombre del archivo de entrada, de forma que
+@file{fandangoforelephants.ly} da como resultado
+@file{fandangoforelephants.pdf}.
+
+(Para ver más detalles acerca de los bloques @code{\book}, consulte
+@ref{Varias partituras en un libro}, @ref{Varios archivos de salida a
+partir de uno de entrada} y @ref{Estructura del archivo}.)
@seealso
Manual de aprendizaje:
@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
+@file{.ly} se tipografían normalmente en la forma de un solo archivo
de salida.
@example
@}
@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{Estructura del archivo}.
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
@}
@end example
+@node Varios archivos de salida a partir de uno de entrada
+@subsection Varios archivos de salida a partir de uno de entrada
+@translationof Multiple output files from one input file
+
+Si queremos varios archivos de salida a partir del mismo archivo
+@file{.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{Estructura del archivo}.
+
+Al producir varios archivos a partir de un solo archivo fuente,
+Lilypond se asegura de que ninguno de los archivos de salida de ningún
+bloque @code{\book} sobreescribe el archivo de salida producido por un
+@code{\book} anterior del mismo archivo de entrada.
+
+Lo hace añadiendo un sufijo al nombre de la salida para cada libro
+@code{\book} que utiliza el nombre del archivo de salida
+predeterminado, derivado del archivo fuente de entrada.
+
+El comportamiento predeterminado es añadir un sufijo con el número de
+versión para cada nombre que pueda coincidir; así:
+
+@example
+\book @{
+ \score @{ @dots{} @}
+ \layout @{ @dots{} @}
+@}
+\book @{
+ \score @{ @dots{} @}
+ \layout @{ @dots{} @}
+@}
+\book @{
+ \score @{ @dots{} @}
+ \layout @{ @dots{} @}
+@}
+@end example
+
+en el archivo fuente @file{eightminiatures.ly}, produce
+
+@itemize
+@item
+@file{eightminiatures.pdf},
+@item
+@file{eightminiatures-1.pdf} y
+@item
+@file{eightminiatures-2.pdf}.
+@end itemize
+
+@node Nombres de los archivos de salida
+@subsection Nombres de los archivos de salida
+@translationof Output file names
+
+@funindex \bookOutputSuffix
+@funindex \bookOutputName
+
+Lilypond le ofrece unos mecanismos que le permiten controlar los
+nombres de archivo que se utilizan por parte de los diversos motores
+finales al producir los archivos de salida.
+
+En la sección anterior vimos cómo Lilypond evita las coincidencias de
+nombres al producir varias salidas a partir de un único archivo fuente
+de entrada. También podemos especificar nuestros propios sufijos para
+cada bloque @code{\book}, de manera que podemos producir, por ejemplo,
+archivos con los nombres @file{eightminiatures-Romanze.pdf},
+@file{eightminiatures-Menuetto.pdf} y
+@file{eightminiatures-Nocturne.pdf} añadiendo una declaración
+@code{\bookOutputSuffix} dentro de cada bloque @code{\book}.
+
+@example
+\book @{
+ \bookOutputSuffix "Romanze"
+ \score @{ @dots{} @}
+ \layout @{ @dots{} @}
+@}
+\book @{
+ \bookOutputSuffix "Menuetto"
+ \score @{ @dots{} @}
+ \layout @{ @dots{} @}
+@}
+\book @{
+ \bookOutputSuffix "Nocturne"
+ \score @{ @dots{} @}
+ \layout @{ @dots{} @}
+@}
+@end example
+
+También podemos especificar un nombre de archivo de salida diferente
+para cada bloque @code{book}, mediante la utilización de declaraciones
+@code{\bookOutputName}:
+
+@example
+\book @{
+ \bookOutputName "Romanze"
+ \score @{ @dots{} @}
+ \layout @{ @dots{} @}
+@}
+\book @{
+ \bookOutputName "Menuetto"
+ \score @{ @dots{} @}
+ \layout @{ @dots{} @}
+@}
+\book @{
+ \bookOutputName "Nocturne"
+ \score @{ @dots{} @}
+ \layout @{ @dots{} @}
+@}
+@end example
+
+El código anterior produce los siguientes archivos de salida:
+
+@itemize
+@item
+@file{Romanze.pdf},
+@item
+@file{Menuetto.pdf} y
+@item
+@file{Nocturne.pdf}.
+@end itemize
@node Estructura del archivo
@subsection Estructura del archivo
@funindex \book
@funindex \bookpart
-Un archivo @code{.ly} puede contener cualquier número de expresiones
+Un archivo @file{.ly} puede contener cualquier número de expresiones
del nivel superior, donde una expresión del nivel superior es una de
las siguientes posibilidades:
-@itemize @bullet
+@itemize
@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
(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}.
+inicio @file{../scm/lily.scm}.
@item
Un bloque @code{\book} combina lógicamente varios movimientos (es
para cada bloque @code{\book}, en el que se concatenan todos los
movimientos correspondientes. La única 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
+@file{.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
ejemplo. Se puede cambiar 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}.
+@file{../scm/lily.scm}.
@item
Un bloque @code{\bookpart}. Un libro puede dividirse en varias
Se puede cambiar este comportamiento estableciendo el valor de la
variable @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}.
+@file{../scm/lily.scm}.
@item
Un texto de marcado, por ejemplo una estrofa
compositor; ciertas piezas tienen mucha más información.
@menu
-* Crear títulos::
-* Títulos personalizados::
-* Referencias a números de página::
+* Crear títulos cabeceras y pies de página::
+* Cabeceras pies y títulos personalizados::
+* Referencia a números de página::
* Índice general::
@end menu
-@node Crear títulos
-@subsection Crear títulos
-@translationof Creating titles
+@node Crear títulos cabeceras y pies de página
+@subsection Crear títulos, cabeceras y pies de página
+@translationof Creating titles headers and footers
-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) y las
-partes de libro (creadas mediante bloques @code{\bookpart}).
+@menu
+* Explicación de los bloques de títulos::
+* Presentación predeterminada de los bloques de título del libro y la partitura::
+* Disposición predeterminada de las cabeceras y pies de página::
+@end menu
-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.
+@node Explicación de los bloques de títulos
+@unnumberedsubsubsec Explicación de los bloques de títulos
+@translationof Title blocks explained
-@funindex title
-@item title
-El título de la música, centrado justo debajo de la
-dedicatoria.
+@c TODO: figure out how \bookpart titles work
-@funindex subtitle
-@item subtitle
-Subtítulo, centrado debajo del título.
+Existen dos clases de bloques de títulos: el bloque principal de
+títulos que aparece encima del primer bloque @code{\score} de un
+libro, y los bloques individuales de título que aparecen dentro de
+cada bloque @code{\score}. Los campos de texto para los dos tipos de
+bloque se introducen mediante un bloque @code{\header}.
-@funindex subsubtitle
-@item subsubtitle
-Sub-subtítulo, centrado debajo del subtítulo.
+Si el libro tiene una única partitura, el bloque @code{\header} se
+puede situar dentro o fuera del bloque @code{\score}.
-@funindex poet
-@item poet
-Nombre del poeta, a la izquierda, debajo del subtítulo.
+@warning{Recuerde que al añadir un bloque @bs{}@code{header} dentro de
+un bloque @bs{}@code{score}, la expresión musical debe aparecer antes
+del bloque @bs{}@code{header}.}
-@funindex composer
-@item composer
-Nombre del compositor, a la derecha, debajo del subtítulo.
+@lilypond[papersize=a5,quote,verbatim,noragged-right]
+\header {
+ title = "SUITE I."
+ composer = "J. S. Bach."
+}
-@funindex meter
-@item meter
-Texto de la medida, a la izquierda, debajo del poeta.
+\score {
+ \new Staff \relative g, {
+ \clef bass
+ \key g \major
+ \repeat unfold 2 { g16( d' b') a b d, b' d, } |
+ \repeat unfold 2 { g,16( e' c') b c e, c' e, } |
+ }
+ \header {
+ piece = "Prélude."
+ }
+}
-@funindex opus
-@item opus
-Nombre del Opus, a la derecha, debajo del compositor.
+\score {
+ \new Staff \relative b {
+ \clef bass
+ \key g \major
+ \partial 16 b16 |
+ <g, d' b'~>4 b'16 a( g fis) g( d e fis) g( a b c) |
+ d16( b g fis) g( e d c) b(c d e) fis( g a b) |
+ }
+ \header {
+ piece = "Allemande."
+ }
+}
+@end lilypond
-@funindex arranger
-@item arranger
-Nombre del arreglista, a la derecha, debajo del Opus.
+Los campos de texto extraídos del bloque prinicipal de título de un
+libro se pueden imprimir en todos los bloques @code{\score}, o
+suprimirse manualmente:
-@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).
+@lilypond[papersize=a5,quote,verbatim,noragged-right]
+\book {
+ \paper {
+ print-all-headers = ##t
+ }
+ \header {
+ title = "DAS WOHLTEMPERIRTE CLAVIER"
+ subtitle = "TEIL I"
+ % Do not display the tagline for this book
+ tagline = ##f
+ }
+ \markup { \vspace #1 }
+ \score {
+ \new PianoStaff <<
+ \new Staff { s1 }
+ \new Staff { \clef "bass" s1 }
+ >>
+ \header {
+ title = "PRAELUDIUM I"
+ opus = "BWV 846"
+ % Do not display the subtitle for this score
+ subtitle = ##f
+ }
+ }
+ \score {
+ \new PianoStaff <<
+ \new Staff { s1 }
+ \new Staff { \clef "bass" s1 }
+ >>
+ \header {
+ title = "FUGA I"
+ subsubtitle = "A 4 VOCI"
+ opus = "BWV 846"
+ % Do not display the subtitle for this score
+ subtitle = ##f
+ }
+ }
+}
+@end lilypond
-@funindex piece
-@item piece
-Nombre de la pieza, a la izquierda, debajo del instrumento.
+@seealso
+Referencia de la notación:
+@ref{Estructura del archivo},
+@ref{Personalización de los bloques de título}.
+
+
+@node Presentación predeterminada de los bloques de título del libro y la partitura
+@unnumberedsubsubsec Presentación predeterminada de los bloques de título del libro y la partitura
+@translationof Default layout of book and score title blocks
+
+La disposición y formato de los bloques de título están controlados
+por medio de dos variables de @code{\paper}: @code{bookTitleMarkup}
+para el bloque de título @code{\header} principal y
+@code{scoreTitleMarkup} para los bloques @code{\header} individuales
+dentro de un bloque @code{\score}.
+
+@lilypond[papersize=a6,quote,verbatim,noragged-right]
+\header {
+ % The following fields are centered
+ dedication = "Dedication"
+ title = "Title"
+ subtitle = "Subtitle"
+ subsubtitle = "Subsubtitle"
+ instrument = "Instrument"
+
+ % The following fields are left-aligned on the left side
+ poet = "Poet"
+ meter = "Meter"
+
+ % The following fields are right-aligned on the right side
+ composer = "Composer"
+ arranger = "Arranger"
+}
-@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).
+\score {
+ { s1 }
+ \header {
+ % The following fields are placed at opposite ends of the same line
+ piece = "Piece"
+ opus = "Opus"
+ }
+}
+@end lilypond
-@funindex copyright
-@item copyright
-Aviso de Copyright, centrado en la parte inferior de la primera
-página. Para insertar el símbolo de copyright, consulte
-@ref{Codificación del texto}.
+@c Is the bit about \null markups true? -mp
-@funindex tagline
-@item tagline
-Cartel de propósito general en el pie de página, centrado al final de la última.
+Los campos de texto que se dejan sin establecer dentro de un bloque
+@code{\header} se sustituyen por elementos de marcado nulos
+@code{\null} de manera que no ocupen espacio innecesariamente.
-@end table
+Los ajustes predeterminados para @code{scoreTitleMarkup} sitúan los
+campos de texto @code{piece} y @code{opus} en extremos opuestos de la
+misma línea.
-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{Formatear el texto}).
+@cindex breakbefore
-@lilypond[quote,verbatim,line-width=11.0\cm]
-\paper {
- line-width = 9.0\cm
- paper-height = 10.0\cm
-}
+Utilice la variable @code{breakbefore} dentro de un bloque
+@code{\header} que está propiamente dentro de un bloque @code{\score}
+para hacer que los títulos del bloque @code{\header} del nivel
+superior aparezcan ocupando toda la primera página, empezando la
+música (definida en el bloque @code{\score}) en la página siguiente.
+@lilypond[papersize=a8landscape,verbatim,noragged-right]
\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"
+ title = "This is my Title"
+ subtitle = "This is my Subtitle"
+ copyright = "This is the bottom of the first page"
}
-
\score {
- { c'1 }
+ \repeat unfold 4 { e'' e'' e'' e'' }
\header {
- piece = "piece1"
- opus = "opus1"
+ piece = "This is the Music"
+ breakbefore = ##t
+ }
+ }
+}
+@end lilypond
+
+@seealso
+Manual de aprendizaje:
+@rlearning{Cómo funcionan los archivos de entrada de LilyPond}
+
+Referencia de la notación:
+@ref{Estructura del archivo}.
+
+Archivos de inicio:
+@file{ly/titling-init.ly}.
+
+@node Disposición predeterminada de las cabeceras y pies de página
+@unnumberedsubsubsec Disposición predeterminada de las cabeceras y pies de página
+@translationof Default layout of headers and footers
+
+Las @emph{cabeceras} y los @emph{pies} de página son líneas de texto
+que aparecen en la parte más alta y en la más baja de las páginas
+separadas del texto principal de un libro. Se controlan mediante las
+siguientes variables de @code{\paper}:
+
+@itemize
+@item @code{oddHeaderMarkup} (marcado de cabecera impar)
+@item @code{evenHeaderMarkup} (marcado de cabecera par)
+@item @code{oddFooterMarkup} (marcado de pie impar)
+@item @code{evenFooterMarkup} (marcado de pie par)
+@end itemize
+
+Estas variables de marcado sólo pueden acceder a los campos de texto
+extraídos de bloques @code{\header} del nivel superior (que se aplican
+a todas las partituras del libro) y se definen en el archivo
+@file{ly/titling-init.ly}. De forma predeterminada:
+
+@itemize
+
+@item
+los números de página se sitúan automáticamente en el extremo superior
+izquierdo (si es par) o superior derecho (si es impar), a partir de la
+segunda página.
+
+@item
+el campo de texto @code{instrument} se sitúa en el centro en cada
+página, a partir de la segunda página.
+
+@item
+el texto de @code{copyright} se centra en la parte baja de la primera
+página.
+
+@item
+la línea @code{tagline} se centra al final de la última página, y
+debajo del texto de @code{copyright} si sólo hay una página.
+
+@end itemize
+
+@lilypond[papersize=a8landscape]
+\book {
+ \score {
+ \relative c' {
+ c4 d e f
}
}
- \markup {
- and now...
+}
+@end lilypond
+
+La línea de etiqueta tagline predeterminada se puede cambiar añadiendo un campo
+@code{tagline} en el bloque @code{\header} del nivel superior.
+
+@lilypond[papersize=a8landscape,verbatim]
+\book {
+ \header {
+ tagline = "... music notation for Everyone"
}
\score {
- { c'1 }
- \header {
- piece = "piece2"
- opus = "opus2"
+ \relative c' {
+ c4 d e f
}
}
}
@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.
+Para eliminar la línea @code{tagline}, establezca su valor a
+@code{##f}.
-@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}.
+@node Cabeceras pies y títulos personalizados
+@subsection Cabeceras, pies y títulos personalizados
+@translationof Custom headers footers and titles
+
+@c TODO: somewhere put a link to header spacing info
+@c (you'll have to explain it more in NR 4).
+
+@menu
+* Formateo personalizado del texto de los bloques de título::
+* Personalización de los bloques de título::
+* Disposición personalizada de cabeceras y pies de página::
+@end menu
+
+
+@node Formateo personalizado del texto de los bloques de título
+@unnumberedsubsubsec Formateo personalizado del texto de los bloques de título
+@translationof Custom text formatting for title blocks
+
+Se pueden usar instrucciones @code{\markup} estándar para personalizar
+el texto de cualquier cabecera, pie o título dentro del bloque
+@code{\header}.
-@lilypond[quote,verbatim,line-width=11.0\cm]
+@lilypond[quote,verbatim,noragged-right]
\score {
- { c'4 }
+ { s1 }
\header {
- title = "title" % not printed
- piece = "piece"
- opus = "opus"
+ piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" }
+ subtitle = \markup { \italic "(Excerpt)" }
}
}
@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
+@seealso
+Referencia de la notación:
+@ref{Formatear el texto}.
-@example
-\paper@{
- print-all-headers = ##t
-@}
-@end example
-@cindex copyright
-@cindex tagline
+@node Personalización de los bloques de título
+@unnumberedsubsubsec Personalización de los bloques de título
+@translationof Custom layout for title blocks
-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 instrucciones @code{\markup} dentro del bloque @code{\header} son
+útiles para dar un formato simple al texto, pero no permiten un
+control preciso sobre la colocación de los títulos. Para personalizar
+la colocación de los campos de texto, use una o las dos variables de
+@code{\paper} siguientes:
-Las cabeceras se pueden quitar completamente estableciendo su valor a
-falso.
+@itemize
+@item @code{bookTitleMarkup} (marcado de título del libro)
+@item @code{scoreTitleMarkup} (marcado de título de la partitura)
+@end itemize
+
+Estas variables de marcado se estudian en
+@ref{Presentación predeterminada de los bloques de título del libro y la partitura}.
+
+Los ajustes predeterminados para @code{scoreTitleMarkup} tal y como
+están definidos en el archivo @file{ly/titling-init.ly} son:
@example
-\header @{
- tagline = ##f
- composer = ##f
+scoreTitleMarkup = \markup @{ \column @{
+ \on-the-fly #print-all-headers @{ \bookTitleMarkup \hspace #1 @}
+ \fill-line @{
+ \fromproperty #'header:piece
+ \fromproperty #'header:opus
+ @}
+@}
@}
@end example
+Esto sitúa los campos de texto @code{piece} y @code{opus} en extremos
+opuestos de la misma línea:
-@node Títulos personalizados
-@subsection Títulos personalizados
-@translationof Custom titles
+@lilypond[quote,verbatim,noragged-right]
+\score {
+ { s1 }
+ \header {
+ piece = "PRAELUDIUM I"
+ opus = "BWV 846"
+ }
+}
+@end lilypond
-Una opción más avanzada es cambiar las definiciones de las variables
-siguientes dentro del bloque @code{\paper}. El archivo de inicio
-@file{../@/ly/@/titling@/-init@/.ly} ofrece un listado de la
-disposición predeterminada.
+Este ejemplo redefine @code{scoreTitleMarkup} de manera que el campo
+de texto @code{piece} aparece centrado y en un tipo de letra grande y
+en negrita.
-@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.
+@lilypond[papersize=a5,quote,verbatim,noragged-right]
+\book {
+ \paper {
+ indent = 0\mm
+ scoreTitleMarkup = \markup {
+ \fill-line {
+ \null
+ \fontsize #4 \bold \fromproperty #'header:piece
+ \fromproperty #'header:opus
+ }
+ }
+ }
+ \header { tagline = ##f }
+ \score {
+ { s1 }
+ \header {
+ piece = "PRAELUDIUM I"
+ opus = "BWV 846"
+ }
+ }
+}
+@end lilypond
-@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}).
+Los campos de texto reservados normalmente para el bloque principal de
+título se pueden insertar dentro de los bloques de título de las
+partituras individuales con la variable @code{print-all-headers}
+establecida dentro del bloque @code{\paper}. Una desventaja de la
+utilización de este método es que los campos de texto que están
+orientados específicamente para el bloque @code{\header} del nivel
+superior han de suprimirse manualmente en cada uno de los bloques
+@code{\score}. Véase @ref{Explicación de los bloques de títulos}.
+
+Para evitarlo, añada el campo de texto deseado a la definición de
+@code{scoreTitleMarkup}. En el ejemplo siguiente, el campo de texto
+@code{composer} (asociado normalmente con @code{bookTitleMarkup}) se
+añade a @code{scoreTitleMarkup}, permitiendo que cada partitura
+muestre un compositor diferente:
+
+@lilypond[papersize=a5,quote,verbatim,noragged-right]
+\book {
+ \paper {
+ indent = 0\mm
+ scoreTitleMarkup = \markup {
+ \fill-line {
+ \null
+ \fontsize #4 \bold \fromproperty #'header:piece
+ \fromproperty #'header:composer
+ }
+ }
+ }
+ \header { tagline = ##f }
+ \score {
+ { s1 }
+ \header {
+ piece = "MENUET"
+ composer = "Christian Petzold"
+ }
+ }
+ \score {
+ { s1 }
+ \header {
+ piece = "RONDEAU"
+ composer = "François Couperin"
+ }
+ }
+}
+@end lilypond
-@funindex oddHeaderMarkup
-@item oddHeaderMarkup
- Es el encabezamiento de las páginas de numeración impar.
+También podemos crear nuestros propios campos de texto personalizados,
+y referirnos a ellos en la definición del elemento de marcado.
-@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.
+@lilypond[papersize=a5,quote,verbatim,noragged-right]
+\book {
+ \paper {
+ indent = 0\mm
+ scoreTitleMarkup = \markup {
+ \fill-line {
+ \null
+ \override #`(direction . ,UP) {
+ \dir-column {
+ \center-align \fontsize #-1 \bold
+ \fromproperty #'header:mycustomtext %% User-defined field
+ \center-align \fontsize #4 \bold
+ \fromproperty #'header:piece
+ }
+ }
+ \fromproperty #'header:opus
+ }
+ }
+ }
+ \header { tagline = ##f }
+ \score {
+ { s1 }
+ \header {
+ piece = "FUGA I"
+ mycustomtext = "A 4 VOCI" %% User-defined field
+ opus = "BWV 846"
+ }
+ }
+}
+@end lilypond
- De forma predeterminada, los encabezamientos se definen de tal forma
-que el número de página está en el borde exterior, y el instrumento
-está centrado.
+@seealso
+Referencia de la notación:
+@ref{Explicación de los bloques de títulos}.
-@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.
+@node Disposición personalizada de cabeceras y pies de página
+@unnumberedsubsubsec Disposición personalizada de cabeceras y pies de página
+@translationof Custom layout for headers and footers
- 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
+@c can make-header and make-footer be removed from
+@c paper-defaults-init.ly? -mp
+Las instrucciones @code{\markup} dentro del bloque @code{\header} son
+de utilidad para dar formato al texto de una manera sencilla, pero no
+permiten un control preciso sobre la colocación de las cabeceras y los
+pies de página. Para personalizar la colocación de los campos de
+texto, use una o más de las siguientes variables de @code{\paper}:
-@cindex \paper
-@cindex encabezamiento
-@cindex header
-@cindex pie
-@cindex disposición de la página
-@cindex títulos
+@itemize
+@item @code{oddHeaderMarkup} (marcado de encabezamiento impar)
+@item @code{evenHeaderMarkup} (marcado de encabezamiento par)
+@item @code{oddFooterMarkup} (marcado de pie de página impar)
+@item @code{evenFooterMarkup} (marcado de pie de página par)
+@end itemize
-La definición siguiente pone el título en el extremo izquierdo, y el
-compositor en el extremo derecho sobre una única línea.
+El ejemplo siguiente centra los números de página en la parte baja de
+las páginas. En primer lugar, los ajustes predeterminados para
+@code{oddHeaderMarkup} y @code{evenHeaderMarkup} se eliminan
+definiéndolos como un marcado @emph{nulo}. Después de esto, se
+redefine @code{oddFooterMarkup} con el número de página centrado.
+Finalmente, @code{evenFooterMarkup} recibe la misma disposición
+definiéndola como @code{\oddFooterMarkup}:
-@verbatim
-\paper {
- bookTitleMarkup = \markup {
- \fill-line {
- \fromproperty #'header:title
- \fromproperty #'header:composer
- }
+@lilypond[papersize=a8,quote,verbatim,noragged-right]
+\book {
+ \paper {
+ print-page-number = ##t
+ print-first-page-number = ##t
+ oddHeaderMarkup = \markup \null
+ evenHeaderMarkup = \markup \null
+ oddFooterMarkup = \markup {
+ \fill-line {
+ \on-the-fly #print-page-number-check-first
+ \fromproperty #'page:page-number-string
+ }
+ }
+ evenFooterMarkup = \oddFooterMarkup
+ }
+ \score {
+ \new Staff { s1 \break s1 \break s1 }
}
}
-@end verbatim
+@end lilypond
-@node Referencias a números de página
-@subsection Referencias a números de página
+@seealso
+Notation Reference:
+@ref{Explicación de los bloques de títulos},
+@ref{Presentación predeterminada de los bloques de título del libro y la partitura}.
+
+
+@node Referencia a números de página
+@subsection Referencia a números de página
@translationof 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}.
+Un lugar determinado de una partitura puede señalizarse usando la
+instrucción @code{\label} (etiqueta), ya sea en el nivel superior o
+dentro de la música. Podemos referirnos a esta etiqueta más tarde
+dentro de un elemento de marcado, para obtener el número de la página
+en la que se sitúa el punto señalizado, usando la instrucción de
+marcado @code{\page-ref}.
-@lilypond[verbatim,line-width=11.0\cm]
+@lilypond[verbatim]
\header { tagline = ##f }
\book {
\label #'firstScore
c'1
}
}
-
\markup { The first score begins on page \page-ref #'firstScore "0" "?" }
\markup { Mark A is on page \page-ref #'markA "0" "?" }
}
}
@end lilypond
+Se pueden añadir puntos de relleno entre un elemento y su número de página:
+
+@lilypond[verbatim,quote]
+\header { tagline = ##f }
+\paper {
+ tocItemMarkup = \tocItemWithDotsMarkup
+}
+
+\book {
+ \markuplines \table-of-contents
+ \tocItem \markup { Allegro }
+ \tocItem \markup { Largo }
+ \markup \null
+}
+@end lilypond
+
@seealso
Archivos de inicio:
-@file{../@/ly/@/toc@/-init@/.ly}.
+@file{../ly/toc-init.ly}.
@predefined
* Inclusión de archivos de LilyPond::
* Distintas ediciones a partir de una misma fuente::
* Codificación del texto::
-* Presentar la notación de LilyPond::
@end menu
@menu
* Uso de las variables::
* Uso de etiquetas::
+* Uso de ajustes globales::
@end menu
@node Uso de las variables
@end ignore
+@node Uso de ajustes globales
+@unnumberedsubsubsec Uso de ajustes globales
+@translationof Using global settings
+
+@cindex include-settings
+
+Se pueden incluir ajustes globales a partir de un archivo distinto:
+
+@example
+lilypond -dinclude-settings=MIS_AJUSTES.ly MI_PARTITURA.ly
+@end example
+
+En archivos diferentes se pueden almacenar grupos de ajustes como
+el tamaño de la página o las fuentes tipográficas. Ello permite
+hacer diferentes ediciones de la mism a partitura así como aplicar
+ajustes estándar a muchas partituras, simplemente por medio de la
+especificación del archivo de ajustes adecuado.
+
+Esta técnica también funciona bien con el uso de hojas de estilo,
+como se estudia en @rlearning{Hojas de estilo}.
+
+@seealso
+Manual de aprendizaje:
+@rlearning{Organizar las piezas mediante variables},
+@rlearning{Hojas de estilo}.
+
+Referencia de la notación:
+@ref{Inclusión de archivos de LilyPond}.
+
@node Codificación del texto
@subsection Codificación del texto
@translationof Text encoding
à vo -- cê uma can -- ção legal
}
-\relative {
+\relative c' {
c2 d e f g f e
}
\addlyrics { \bulgarian }
}
\addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } }
}
-\markup { "Copyright 2008--2010" \char ##x00A9 }
+\markup { "Copyright 2008--2011" \char ##x00A9 }
@end lilypond
@cindex copyright, símbolo de
@end example
-@node Presentar la notación de LilyPond
-@subsection Presentar la notación de LilyPond
-@translationof Displaying LilyPond notation
-
-@funindex \displayLilyMusic
-La impresión textual de una expresión musical en notación de LilyPond
-puede hacerse con la función musical @code{\displayLilyMusic} pero solamente
-mediante la línea de órdenes. Por ejemplo,
-
-@example
-@{
- \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
-@}
-@end example
-
-imprimirá
-
-@example
-@{ a,4 cis e fis g @}
-@end example
-
-De forma predeterminada, LilyPond imprime estos mensajes en la consola
-junto al resto de los mensajes de la compilación de LilyPond.
-Para discernir entre estos mensajes y
-guardar el resultado de @code{\display@{MATERIAL@}}, redireccione la
-salida hacia un archivo.
-
-@example
-lilypond archivo.ly >resultado.txt
-@end example
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
- e8 e e e e e e e
- \set Score.skipTypesetting = ##f
- c8 d b bes a g c2
-}
+@lilypond[quote,relative=2,ragged-right,verbatim]
+c8 d
+\set Score.skipTypesetting = ##t
+e8 e e e e e e e
+\set Score.skipTypesetting = ##f
+c8 d b bes a g c2
@end lilypond
En música polifónica, @code{Score.skipTypesetting} afecta a todas las
@subsection Sustituir la tipografía de la notación
@translationof Replacing the notation font
-HACER
+Gonville es una alternativa a la tipografía Feta que se utiliza en
+LilyPond y se puede descargar de:
+@example
+@uref{http://www.chiark.greenend.org.uk/~sgtatham/gonville/ ,http://www.chiark.greenend.org.uk/~sgtatham/gonville/}
+@end example
+
+Aquí presentamos algunos compases de muestra tipografiados con la
+fuente Gonville:
+
+@c NOTE: these images are a bit big, but that's important
+@c for the font comparison. -gp
+@sourceimage{Gonville_after,,,}
+
+Aquí hay unos compases de muestra tipografiados en la fuente Feta de
+LilyPond:
+
+@sourceimage{Gonville_before,,,}
+
+@subsubheading Instrucciones de instalación para MacOS
+
+Descargue y extraiga el archivo zip. Copie la carpeta @code{lilyfonts}
+a @file{@var{SHARE_DIR}/lilypond/current}; para más información,
+consulte @rlearning{Otras fuentes de información}. Mueva la carpeta
+@code{fonts} existente a @code{fonts_orig} y mueva la carpeta
+@code{lilyfonts} a @code{fonts}. Sencillamente vuelva a mover
+@code{fonts_orig} a @code{fonts} para volver a la fuente Feta.
+
+@seealso
+Manual de aprendizaje:
+@rlearning{Otras fuentes de información}.
+
+@knownissues
+
+Gonville no se puede usar para tipografiar notación de @q{Música
+Antigua}. Diríjase a la página web del autor para obtener más
+información sobre éste y otros asuntos, entre ellos el régimen de
+licencias de Gonville.
@node Salida MIDI
las alteraciones erróneas se ponen de relieve muy claramente al
escuchar la salida MIDI.
+La salida estándar de MIDI es un poco primitiva; de forma opcional, se
+encuentra disponible una salida MIDI mejorada y mucho más realista,
+por medio de @ref{El script Articulate}.
+
@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
* Repeticiones y MIDI::
* Control de los matices en el MIDI::
* Percusión en MIDI::
+* El script Articulate::
@end menu
@node Crear archivos MIDI
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
+MIDI se definen en @file{../ly/performer-init.ly}, véase
@rlearning{Otras fuentes de información}. Por ejemplo, para eliminar
el efecto de los matices de la salida MIDI, inserte las líneas
siguientes en el bloque @code{\midi@{ @}}.
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{} @}
+ @{ @dots{}notas@dots{} @}
\midi @{ @}
@}
@end example
@cindex MIDI, nombres de
@cindex duraciones en MIDI
@cindex MIDI, duraciones
+@cindex Articlulate, scripts
+@cindex MIDI, articulaciones
+@cindex articulaciones en MIDI
+@cindex trinos en MIDI
+@cindex grupetos en MIDI
+@cindex rallentando en MIDI
+@cindex accelerando en MIDI
@c TODO etc
Los siguientes elementos de notación se reflejan en la salida MIDI:
@item Letra de las canciones
@end itemize
+Utilizando @ref{El script Articulate}, a la lista anterior se añaden
+una serie de elementos:
+
+@itemize
+@item Articulaciones (ligaduras de expresión, picados, etc)
+@item Trinos, mordentes circulares
+@item Rallentando y accelerando
+@end itemize
+
+
@unnumberedsubsubsec No contemplado en el MIDI
@c TODO index as above
Los siguientes elementos de notación no tienen ningún efecto sobre la
-salida MIDI:
+salida MIDI, a no ser que utilicemos @ref{El script Articulate}:
@itemize
@item Duraciones escritas como anotaciones, p.ej. el swing
\bar "|."
@end lilypond
+En partituras con varias voces, el desplegado de las repeticiones en
+la salida MIDI solo se produce correctamente si @emph{todas y cada
+una} de las voces incluye las repeticiones de manera completa y
+explícita.
+
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
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
+fracciones asociadas pueden verse en @file{../scm/midi.scm}, véase
@rlearning{Otras fuentes de información}. Este conjunto de fracciones
se puede cambiar o extender proporcionando una función que toma como
argumento una indicación dinámica y devuelve la fracción requerida, y
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
+@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 Volumen maestro MIDI
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}.
+@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
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
+@file{../scm/midi.scm}, muestra cómo se puede escribir tal
procedimiento.
El ejemplo siguiente establece los volúmenes relativos de la flauta y
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}).
+
+@node El script Articulate
+@subsection El script Articulate
+@translationof The Articulate script
+
+Es posible obtener una salida MIDI más real si se utiliza el script
+Articulate. Éste trata de tener en cuenta las articulaciones
+(ligaduras de expresión, picados, etc), mediante la sustitución de las
+notas con secuencias musicales de silencios y notas escaladas en el
+tiempo de forma apropiada. También trata de desplegar los trinos,
+grupetos circulares, etc. y responder a las indicaciones de
+rallentando y accelerando.
+
+Para utilizar el script Articulate, tenemos que incluirlo al principio
+de nuestro archivo de entrada:
+
+@example
+\include "articulate.ly"
+@end example
+
+y en la sección @code{\score}, hacer lo siguiente:
+
+@example
+\unfoldRepeats \articulate <<
+ resto de la partitura...
+>>
+@end example
+
+Después de alterar el código de entrada de esta manera el resultado
+visual se altera profundamente, pero el bloque @code{\midi} estándar
+produce un archivo MIDI mejorado.
+
+Si bien no es esencial para que funcione el script Articulate, podemos
+insertar la instrucción @code{\unfoldRepeats} según aparece en el
+ejemplo anterior, dado que habilita la ejecución de abreviaturas tales
+como los @notation{trinos}.
+
+@knownissues
+
+Articulate acorta los acordes, y ciertos fragmentos de música
+(especialmente la música de órgano) es posible que suene peor.
+
+
+@node Extraer información musical
+@section Extraer información musical
+@translationof Extracting musical information
+
+Además de crear un resultado visual y MIDI,
+LilyPond es capaz de presentar información
+musical en forma de texto.
+
+@menu
+* Impresión del código de notación de LilyPond::
+* Impresión de las expresiones musicales de Scheme::
+* Guardar los eventos musicales en un archivo::
+@end menu
+
+@node Impresión del código de notación de LilyPond
+@subsection Displaying LilyPond notation
+@translationof Displaying LilyPond notation
+
+@funindex \displayLilyMusic
+La impresión textual de una expresión musical en notación de LilyPond
+puede hacerse con la función musical @code{\displayLilyMusic} pero solamente
+mediante la línea de órdenes. Por ejemplo,
+
+@example
+@{
+ \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
+@}
+@end example
+
+imprimirá
+
+@example
+@{ a,4 cis e fis g @}
+@end example
+
+De forma predeterminada, LilyPond imprime estos mensajes en la consola
+junto al resto de los mensajes de la compilación de LilyPond.
+Para discernir entre estos mensajes y
+guardar el resultado de @code{\display@{MATERIAL@}}, redireccione la
+salida hacia un archivo.
+
+@example
+lilypond archivo.ly >resultado.txt
+@end example
+
+
+@node Impresión de las expresiones musicales de Scheme
+@subsection Impresión de las expresiones musicales de Scheme
+@translationof Displaying scheme music expressions
+
+Véase @rextend{Presentación de las expresiones musicales}.
+
+
+@node Guardar los eventos musicales en un archivo
+@subsection Guardar los eventos musicales en un archivo
+@translationof Saving music events to a file
+
+Los eventos musicales se pueden guardar en un archivo pentagrama a
+pentagrama mediante la inclusión de un archivo en nuestra partitura
+principal.
+
+@example
+\include "event-listener.ly"
+@end example
+
+De esta forma se crean uno o más archivos llamados
+@file{FILENAME-STAFFNAME.notes} ó @file{FILENAME-unnamed-staff.notes}
+para cada pentagrama. Observe que si tiene más de un pentagrama sin
+nombre, los eventos de todos los pentagramas se mezclarán entre sí
+dentro del mismo archivo. El resultado tiene el aspecto siguiente:
+
+@example
+0.000 note 57 4 p-c 2 12
+0.000 dynamic f
+0.250 note 62 4 p-c 7 12
+0.500 note 66 8 p-c 9 12
+0.625 note 69 8 p-c 14 12
+0.750 rest 4
+0.750 breathe
+@end example
+
+La sintaxis consiste en una línea delimitada por caracteres de
+tabulación, con dos campos fijos en cada línea seguidos de parámetros
+opcionales.
+
+@example
+@var{tiempo} @var{tipo} @var{...parámetros...}
+@end example
+
+Esta información se puede leer fácilmente por parte de otros programas
+como guiones de Python, y pueden ser muy útiles para aquellos
+investigadores que desean realizar un análisis musical o hacer
+experimientos de reproducción con LilyPond.
+
+
+@knownissues
+
+No todos los eventos musicales de lilypond están contemplados por
+@file{event-listener.ly}. Se pretende que sea una @qq{prueba de
+concepto} bien realizada. Si algunos eventos que quiere ver no
+aparecen incluidos, copie @file{event-listener.ly} en su carpeta de
+lilypond y modifique el archivo de forma que produzca la información
+que desea.