]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' of ssh+git://hanwen@git.sv.gnu.org/srv/git/lilypond
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 1 Jun 2008 22:59:46 +0000 (19:59 -0300)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 1 Jun 2008 22:59:46 +0000 (19:59 -0300)
25 files changed:
Documentation/TRANSLATION
Documentation/es/user/fundamental.itely
Documentation/es/user/rhythms.itely
Documentation/es/user/simultaneous.itely
Documentation/fr/user/rhythms.itely
Documentation/po/es.po
Documentation/user/music-glossary.tely
Documentation/user/repeats.itely
Documentation/user/rhythms.itely
Documentation/user/simultaneous.itely
VERSION
input/lsr/changing-time-signatures-inside-a-polymetric-section-using--compressmusic.ly [deleted file]
input/lsr/changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly [new file with mode: 0644]
input/lsr/contexts-and-engravers.snippet-list
input/lsr/rhythms.snippet-list
input/new/changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly [new file with mode: 0644]
input/regression/part-combine-markup.ly [new file with mode: 0644]
input/regression/spacing-packed.ly
input/regression/spacing-ragged-last.ly
input/regression/warn-conflicting-key-signatures.ly
lily/main.cc
ly/music-functions-init.ly
python/convertrules.py
scm/define-context-properties.scm
scm/lily.scm

index e0929cf1e20ed73f44a197c808d5ac43730ddc4f..34e1e44b635deddc32607d819b8fa84bc22c354a 100644 (file)
@@ -402,7 +402,7 @@ obsolete (sub)subsections in the translation.
 
 * Hints for Emacs users (without Emacs AucTeX installed)
 
-Texinfo Emacs mode makes this step easier:
+Emacs with Texinfo mode makes this step easier:
 
 - C-c C-s shows structure of current Texinfo file in a new buffer
 *Occur*; to show structure of two files simultaneously, first split
@@ -415,6 +415,18 @@ file ; make sure there is at least a (possibly empty) @menu block
 everywhere it is needed, then do C-c C-u C-a ("update all menus") when
 you have updated all the rest of the file.
 
+- Moving to next or previous node: press C-s and type node (or C-s
+@node if the text contains the word 'node') then press C-s to move to
+next node or C-r to move to previous node.  Similar operation can be
+used to move to the next/previous section.
+
+- Moving a whole node (or even a sequence of nodes): jump to beginning
+of the node (quit incremental search by pressing an arrow), press
+C-SPACE, press C-s node and repeat C-s until you have selected enough
+text, cut it with C-w or C-x, jump to the right place (moving between
+nodes with the previous hint is often useful) and paste with C-y or
+C-v.
+
 
 4) update documentation PO.  Unless you have special interest in
 having all titles translated in the next development release, it is
index 2d4895335049f8ce3481d3669ddadd87b0e5b477..3d6dbc1941c8beac9c28a847e0433cc073132fd7 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: 7cc6b12897031c450e3399d59cdb22ca9df4fd8c
+    Translation of GIT committish: 8e7d8cfcb162ae90efc1d24bd378de1868f98982
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -49,6 +49,9 @@ entrada, consulte @ruser{File structure}.
 @node Introduction to the LilyPond file structure
 @subsection Introduction to the LilyPond file structure
 
+@cindex entrada, formato de la
+@cindex archivo, estructura del
+
 Un ejemplo básico de archivo de entrada de LilyPond es el siguiente:
 
 @example
@@ -65,11 +68,18 @@ Un ejemplo básico de archivo de entrada de LilyPond es el siguiente:
 Existen muchas variaciones de este esquema básico, pero el ejemplo
 constituye un útil punto de partida.
 
+@funindex \book
+@funindex \score
+@cindex book
+@cindex score
+@cindex libro
+@cindex partitura
+
 Hasta el momento, ninguno de los ejemplos que ha podido ver utiliza la
 instrucción @code{\score@{@}}.  Esto es así a causa de que LilyPond
 añade automáticamente las órdenes adicionales que se requieren cuando
 le proporcionamos una entrada sencilla.  LilyPond trata una entrada
-como ésta:
+como esta:
 
 @example
 \relative c'' @{
@@ -95,11 +105,29 @@ como una abreviatura de esta otra:
 @}
 @end example
 
-En tras palabras, si la entrada consta de una única expresión musical,
-LilyPond interpreta el archivo como si la expresción musical estuviera
-rodeada por un envoltorio hecho por las instrucciones que acabamos de
-ver.  De todas formas, vamos a volver al primer ejemplo para examinar
-la instrucción @code{\score}, dejando las demás en su forma
+En otras palabras, si la entrada consta de una única expresión
+musical, LilyPond interpreta el archivo como si la expresción musical
+estuviera rodeada por un envoltorio hecho por las instrucciones que
+acabamos de ver.
+
+@cindex contextos implícitos
+
+@strong{¡Advertencia!}  Muchos de los ejemplos que aparecen en la
+documentación de LilyPond omiten las instrucciones @code{\new Staff} y
+@code{\new Voice}, dejando que se creen de forma implícita.  Esto
+funciona bien para ejemplos sencillos, pero para ejemplos más
+complicados, especialmente cuando se usan instrucciones adicionales,
+la creación implícita de los contextos puede dar lugar a resultados
+inesperados, incluso en ocasiones crear pentagramas no deseados.  La
+forma de crear contextos de forma explícita se explica en
+@ref{Contexts and engravers}.
+
+@warning{Cuando se escriben más de unas pocas líneas de música, se
+recomienda crear siempre los pentagramas y las voces de forma
+explícita.}
+
+De todas formas, por ahora vamos a volver al primer ejemplo para
+examinar la instrucción @code{\score}, dejando las demás en su forma
 predeterminada.
 
 Un bloque @code{\score} siempre debe contener una expresión musical
@@ -131,11 +159,26 @@ cosas, tales como
 @}
 @end example
 
+@funindex \header
+@funindex \layout
+@funindex \midi
+@cindex header
+@cindex layout
+@cindex midi
+@cindex cabecera
+@cindex disposición
+
 @noindent
-Hay personas que ponen algunas de estas instrucciones fuera del bloque
-@code{\score} (por ejemplo, @code{\header} se sitúa con frecuencia por
-encima del @code{\score}.  Es tan sólo otra abreviatura que LilyPond
-acepta.
+Observe que estas tres instrucciones (@code{\header}, @code{\layout} y
+@code{\midi}) son especiales: a diferencia del resto de las
+instrucciones que comienzan con una barra invertida (@code{\}),
+@emph{no} son expresiones musicales y no forman parte de ninguna
+expresión musical.  Por tanto, se pueden situar dentro de un bloque
+@code{\score} o fuera de él.  De hecho, estas instrucciones se sitúan
+por lo general fuera del bloque @code{\score} (por ejemplo,
+@code{\header} se suele colocar antes de la instrucción @code{\score}
+porque las cabeceras aparecen de forma natural al principio de la
+partitura.  Es tan sólo otra abreviatura que LilyPond acepta.
 
 Dos instrucciones más que no hemos visto aún son @code{\layout @{ @}}
 y @code{\midi @{@}}.  Si aparecen tal y como se muestran aquí, hacen
@@ -144,20 +187,45 @@ respectivamente.  Se describen con todo detalle en el manual de
 Referencia de la notación, en @ruser{Score layout} y en
 @ruser{Creating MIDI files}.
 
+@cindex partituras, varias
+
 Podemos escribir varios bloques @code{\score}.  Cada uno de ellos
 recibirá el mismo tratamiento que una partitura independiente, pero se
 combinarán todos juntos en un archivo de salida único.  No se necesita
 ninguna instrucción @code{\book}, se creará una implícitamente.  Sin
-embargo, si quiere archivos de salida separados a partir de un archivo
-@code{.ly}, entonces es necesario utilizar la instrucción @code{\book}
-para separar las distintas secciones: cada bloque @code{\book} produce
-un archivo de salida distinto.  Para ver más detalles, consulte
-@ruser{Multiple scores in a book}.
+embargo, si quiere archivos de salida separados a partir de un único
+archivo @code{.ly}, entonces es necesario utilizar la instrucción
+@code{\book} para separar las distintas secciones: cada bloque
+@code{\book} produce un archivo de salida distinto.
+
+En resumen:
+
+Cada bloque @code{\book} crea un archivo de salida distinto (por
+ejemplo, un archivo PDF).  Si no hemos escrito uno de forma explícita,
+LilyPond envuelve todo nuestro código de entrada dentro de un bloque
+@code{\book} de forma implícita.q
+
+Cada bloque @code{\score} es un trozo de música separado dentro de un
+bloque @code{\book}.
+
+Cada bloque @code{\layout} afecta al bloque @code{\score} o
+@code{\book} dentro del cual aparece (es decir, un bloque
+@code{\layout} dentro de un bloque @code{\score} afecta solamente a
+ese bloque @code{\score}, pero un bloque @code{\layout} fuera de un
+bloque @code{\score} (que por ello está dentro de un bloque
+@code{\book}, ya sea explícita o implícitamente) afecta a los bloques
+@code{\score} que están dentro de ese @code{\book}.
+
+Cada bloque @code{\context} afecta al contexto con nombre (por
+ejemplo, @code{\StaffGroup}) a todo lo largo del bloque (@code{\score}
+o @code{\book}) en que aparece.
+
+Para ver más detalles, consulte @ruser{Multiple scores in a book}.
 
 @cindex variables
 
-Otro atajo genial es la posibilidad de definir variables.
-Todas las plantillas emplean lo siguiente:
+Otro atajo genial es la posibilidad de definir variables.  Todas las
+plantillas emplean lo siguiente:
 
 @example
 melodia = \relative c' @{
@@ -173,13 +241,14 @@ Cuando LilyPond examina este archivo, toma el valor de @code{melodia}
 (todo lo que está después del signo igual) y lo inserta dondequiera
 que ve @code{\melodia}.  No se requiere un cuidado especial con los
 nombres (puede ser @code{melodia}, @code{global},
-@code{manoderechadelpiano} o @code{fulanomengano}).  Para ver más
-detalles, consulte @ref{Saving typing with variables and functions}.
-Recuerde que puede usar casi cualquier nombre que se le ocurra, en la
-medida en que contenga solamente caracteres alfabéticos y sea
-diferente de cualquiera de los nombres de instrucción de LilyPond.
-Las limitaciones exactas que afectan a los nombres de variable se
-detallan en @ruser{File structure}.
+@code{CompasArmadura}, @code{manoderechadelpiano} o
+@code{fulanomengano}).  Para ver más detalles, consulte @ref{Saving
+typing with variables and functions}.  Recuerde que puede usar casi
+cualquier nombre que se le ocurra, en la medida en que contenga
+solamente caracteres alfabéticos y sea diferente de cualquiera de los
+nombres de instrucción de LilyPond.  Las limitaciones exactas que
+afectan a los nombres de variable se detallan en @ruser{File
+structure}.
 
 
 @seealso
@@ -192,6 +261,9 @@ consulte @ruser{File structure}.
 
 @cindex expresión musical compuesta
 @cindex música, expresión compuesta de
+@funindex \score
+@cindex score
+@cindex partitura
 
 En la sección anterior, @ref{How LilyPond files work} hemos podido
 ver la organización general de los archivos de entrada de LilyPond.
@@ -203,23 +275,25 @@ que no hay @emph{ningún} misterio.  La siguiente línea lo explica
 todo:
 
 @quotation
-@emph{Una @code{\score} debe comenzar con una única expresión musical.}
+@emph{Un bloque @code{\score} debe comenzar con una única expresión
+musical compuesta.}
 @end quotation
 
 @noindent
-Quizá encuentre útil dar un repaso a @ref{Music expressions
-explained}.  En esta sección, vimos cómo elaborar grandes expresiones
-musicales a partir de pequeñas piezas (comenzábamos con notas, luego
-acordes, etc.).  Ahora partiremos de una gran expresión musical y
-recorreremos el camino inverso hacia abajo.
+Para comprender lo que se entiende por expresión musical y expresión
+musical compuesta, quizá encuentre útil dar un repaso a @ref{Music
+expressions explained}.  En esta sección, vimos cómo elaborar grandes
+expresiones musicales a partir de pequeñas piezas (comenzábamos con
+notas, luego acordes, etc.).  Ahora partiremos de una gran expresión
+musical y recorreremos el camino inverso hacia abajo.
 
 @example
 \score @{
-  @{   % esta llave da inicio a la expresión musical completa
+  @{   % esta llave da inicio a toda la expresión musical compuesta
     \new GrandStaff <<
       @var{...introduzca aquí la partitura completa de una ópera de Wagner...}
     >>
-  @}   % esta llave da por terminada la expresión musical completa
+  @}   % esta llave da por terminada toda expresión musical completa
   \layout @{ @}
 @}
 @end example
@@ -337,7 +411,7 @@ crear temporalmente en cualquier momento.  Esto es de especial
 utilidad para crear secciones de ossia (véase @rglos{ossia}).  A
 continuación presentamos un ejemplo sencillo que muestra cómo
 introducir temporalmente un pentagrama nuevo mientras dura un
-fragmento de tras notas:
+fragmento de tres notas:
 
 @lilypond[verbatim,quote,ragged-right]
 \new Staff {
@@ -361,6 +435,8 @@ cambio de clave (ligeramente menor que la clave al principio de una
 línea).  Esto es normal para cualquier clave que se imprime en la
 mitad de una línea.
 
+@cindex pentagrama, posicionado del
+
 La sección ossia se puede colocar encima del pentagrama de la manera
 siguiente:
 
@@ -395,6 +471,7 @@ necesitaría más instrucciones que aún no se han visto.  Véase
 @node On the un-nestedness of brackets and ties
 @subsection On the un-nestedness of brackets and ties
 
+@cindex corchetes y paréntesis, anidado de
 
 En la escritura del archivo de entrada de LilyPond, hemos podido ver
 algunos tipos de paréntesis, llaves o ángulos de distintos tipos.
@@ -489,6 +566,9 @@ fundamental de todos--.
 @cindex polifonía
 @cindex capas
 @cindex Voice (voz), contexto de
+@cindex contexto de voz
+@cindex simultánea, música
+@cindex concurrente, música
 
 De las capas más profundas de una partitura de LilyPond, las más bajas
 y más fundamentales reciben el nombre de @q{Voice contexts}
@@ -649,6 +729,8 @@ construcciones, como se indica aquí en la voz de triángulos azules.
 }
 @end lilypond
 
+@funindex \voiceXXXStyle
+
 Las instrucciones @code{\voiceXXXStyle} están pensadas principalmente
 para usarlas en documentos educativos como este mismo.  Modifican el
 color de la cabeza, la plica y las barras, y el estilo de la cabeza,
@@ -657,7 +739,8 @@ está establecida a rombos rojos, la voz dos a triángulos azules, la
 voz tres a círculos verdes con aspas, y la voz cuatro (que no se
 utiliza aquí) a aspas color magenta.  Veremos más adelante cómo el
 usuario puede crear instrucciones como éstas.  Véase @ref{Visibility
-and color of objects}.
+and color of objects} y @ref{Using variables for tweaks}.
+
 
 La polifonía no cambia la relación de las notas dentro de un bloque
 @code{\relative @{ @}}.  La altura de cada nota aún se calcula con
@@ -833,6 +916,8 @@ force-hshift en @ref{Fixing overlapping notation} )
 @funindex \voiceTwo
 @funindex \voiceThree
 @funindex \voiceFour
+@funindex \new Voice
+@cindex contextos de voz, creación de
 
 Los contextos de voz también se pueden crear manualmente dentro de un
 bloque @code{<< >>} para crear música polifónica, utilizando
@@ -912,6 +997,10 @@ las ligaduras de unión y de expresión y las indicaciones de dinámica:
 }
 @end lilypond
 
+A continuación veremos tres formas distintas de componer la notación
+del mismo pasaje polifónico, cada una de las cuales tiene sus ventajas
+según la circunstancia, utilizando el ejemplo de la sección anterior.
+
 Una expresión que aparece directamente dentro de @code{<< >>}
 pertenece a la voz principal (pero, observe, @strong{no} dentro de una
 construcción @code{<< \\ >>}).  Esto es útil cuando aparecen voces
@@ -949,6 +1038,9 @@ pueda trazar una ligadura por encima de ellas.
 @cindex anidado de expresiones musicales
 @cindex anidado de construcciones simultáneas
 
+@cindex voces temporales
+@cindex voces, anidado de
+
 Son posibles construcciones polifónicas anidadas más profundamente, y
 si una voz aparece sólo brevemente podría haber una forma más natural
 de tipografiar la música.
@@ -973,8 +1065,9 @@ de tipografiar la música.
 }
 @end lilypond
 
+@cindex espaciadoras, notas
 
-Este método de anida voces nuevas brevemente es útil cuando sólo hay
+Este método de anidar voces nuevas brevemente es útil cuando sólo hay
 secciones polifónicas pequeñas, pero cuando todo el pentagrama es muy
 polifónico podría ser más claro usar varias voces todo el tiempo,
 usando notas espaciadoras para pasar por encima de las secciones en
@@ -1049,6 +1142,12 @@ columnas de notas}.
 La música vocal presenta una dificultad especial: tenemos que combinar
 dos expresiones, a saber, las notas y la letra.
 
+@funindex \new Lyrics
+@funindex \lyricsto
+@cindex Lyrics, creación de un contexto
+@cindex letra, creación de un contexto de
+@cindex letra, enlazar con una voz
+
 Ya ha visto la instrucción @code{\addlyrics@{@}}, que maneja bien
 partituras sencillas.  Sin embargo esta técnica es algo limitada.
 Para música de mayor complejidad, tenemos que introducir la letra en
@@ -1069,13 +1168,26 @@ usando el nombre asignado a la voz.
 >>
 @end lilypond
 
+Observe que la letra se debe enlazar a un contexto de @code{Voice},
+@emph{no} a un contexto de @code{Staff}.  Este es un caso en que es
+necesario crear contextos de @code{Staff} y de @code{Voice}
+explícitamente.
+
+@cindex letra y barrado
+@cindex barrado y letra
+@funindex \autoBeamOff
+
 El barrado automático que LilyPond usa de forma predeterminada
-funciona bien para la música instrumental, pero no ten bien para
+funciona bien para la música instrumental, pero no tan bien para
 música con letra, donde o bien el barrado no se necesita en absoluto,
 o bien se utiliza para indicar los melismas de la letra.  En el
 ejemplo anterior hemos utilizado la instrucción @code{\autoBeamOff}
 para desactivar el barrado automático.
 
+@funindex \new ChoirStaff
+@funindex \lyricmode
+@cindex vocal, estructura de una partitura
+
 Ahora vamos a reutilizar el ejemplo anterior de «Judas Macabeo» para
 ilustrar esta técnica más flexible.  Primero la reescribiremos para
 que use variables de manera que la música y la letra se pueda separar
@@ -1125,9 +1237,18 @@ voces a los pentagramas y más estrofas a la letra, y las variables que
 contienen la música se pueden colocar fácilmente en archivos separados
 cuando se hagan demasiado largos.
 
+@cindex himno, estructura de
+
 A continuación podemos ver un ejemplo final de la primera línea de un
 himno con cuatro estrofas, para coro SATB.  En este caso la letra de
-las cuatro partes es la misma.
+las cuatro partes es la misma.  Observe cómo utilizamos variables para
+separar la notación musical de la estructura de pentagramas.  Observe
+también cómo se utiliza una variable, para la que hemos elegido el
+nombre @q{TimeKey} («compás y tonalidad»), para que contenga varias
+instrucciones que se usarán dentro de los dos pentagramas.  En otros
+ejemplos se le suele dar el nombre de @q{global}.
+
+
 
 @lilypond[quote,verbatim]
 TimeKey = { \time 4/4 \partial 4 \key c \major}
@@ -1135,13 +1256,13 @@ SopMusic   = \relative c' { c4 | e4. e8 g4  g  | a a g }
 AltoMusic  = \relative c' { c4 | c4. c8 e4  e  | f f e }
 TenorMusic = \relative c  { e4 | g4. g8 c4. b8 | a8 b c d e4 }
 BassMusic  = \relative c  { c4 | c4. c8 c4  c  | f8 g a b c4 }
-VerseOne   = \lyricmode { 
+VerseOne   = \lyricmode {
   E -- | ter -- nal fa -- ther, | strong to save, }
-VerseTwo   = \lyricmode { 
+VerseTwo   = \lyricmode {
   O | Christ, whose voice the | wa -- ters heard, }
-VerseThree = \lyricmode { 
+VerseThree = \lyricmode {
   O | Ho -- ly Spi -- rit, | who didst brood }
-VerseFour  = \lyricmode { 
+VerseFour  = \lyricmode {
   O | Tri -- ni -- ty of | love and pow'r }
 
 \score {
@@ -1164,6 +1285,200 @@ VerseFour  = \lyricmode {
 }
 @end lilypond
 
+@cindex estrofa y estribillo
+
+Finalizamos con un ejemplo que muestra cómo podemos codificar una
+estrofa para solista seguida de un estribillo en dos partes sobre dos
+pentagramas.  El posicionado de las secciones secuencial y simultánea
+para conseguirlo dentro de una sola partitura es un poco enrevesado,
+por tanto siga esta explicación con todo cuidado.
+
+Comenzamos el ejemplo con un bloque de partitura que contiene un
+@code{ChoirStaff}, pues queremos que aparezca un corchete al comienzo
+de la parte de coro.  Normalmente necesitaríamos dobles ángulos
+después de @code{\new ChoirStaff} para meter dentro todos los
+pentagramas en paralelo, pero aquí queremos postponer el paralelismo
+mientras dura el solo y por ello usaremos llaves, aunque aquí unos
+ángulos dobles no harían daño.  Dentro del @code{ChoirStaff} queremos
+en primer lugar el pentagrama que va a contener la estrofa.  Debe
+contener notas y letra en paralelo, así que necesitamos dobles ángulos
+encerrando el @code{\new Voice} y el @code{\new Lyrics} para que den
+comienzo al mismo tiempo:
+
+@lilypond[quote,verbatim,ragged-right]
+versenotes = \relative c'' {
+  \clef "treble"
+  \key g \major
+  \time 3/4 g g g b b b
+}
+versewords = \lyricmode {
+  One two three four five six
+}
+\score {
+  \new Choirstaff {
+    \new Staff <<
+      \new Voice = "verse" {
+        \versenotes \break
+      }
+      \new Lyrics \lyricsto verse {
+        \versewords
+      }
+    >>
+  }
+}
+@end lilypond
+
+Con esto tenemos la línea de la estrofa.
+
+Ahora deseamos continuar con refrainA (la primera parte del
+estribillo) sobre el mismo pentagrama, mientras un segundo pentagrama
+aparece en paralelo con él para refrainB (estribillo, segunda parte),
+por lo que ésta es una sección paralela que se debe situar
+inmediatamente a continuación del salto de línea @code{\break} en la
+voz de la estrofa.  ¡Sí, @emph{dentro} de la voz de la estrofa!  He
+aquí dicha sección paralela.  Se podrían introducir más pentagramas de
+la misma forma.
+
+@example
+<<
+  \refrainnotesA
+  \new Lyrics \lyricsto verse @{
+    \refrainwordsA
+  @}
+  \new Staff <<
+    \new Voice = "refrainB" @{
+      \refrainnotesB
+    @}
+    \new Lyrics \lyricsto "refrainB" @{
+      \refrainwordsB
+    @}
+  >>
+>>
+@end example
+
+Aquí tenemos el resultado final con dos pentagramas en el estribillo
+mostrando cómo la sección paralela se posiciona dentro de la voz de la
+estrofa:
+
+@lilypond[quote,verbatim, ragged-right]
+versenotes = \relative c'' {
+  \clef "treble"
+  \key g \major
+  \time 3/4 g g g b b b
+}
+refrainnotesA = \relative c'' {
+  \time 2/4
+  c c g g \bar "|."
+}
+refrainnotesB = \relative c {
+  \clef "bass"
+  \key g \major
+  c e d d
+}
+versewords = \lyricmode {
+  One two three four five six
+}
+refrainwordsA = \lyricmode {
+  la la la la
+}
+refrainwordsB = \lyricmode {
+  dum dum dum dum
+}
+\score {
+  \new ChoirStaff {
+    \new Staff <<
+      \context Voice = "verse" {
+        \versenotes \break
+        <<
+          \refrainnotesA
+          \new Lyrics \lyricsto "verse" {
+            \refrainwordsA
+          }
+          \new Staff <<
+            \new Voice = "refrainB" {
+              \refrainnotesB
+            }
+            \new Lyrics \lyricsto "refrainB" {
+              \refrainwordsB
+            }
+          >>
+        >>
+      }
+      \new Lyrics \lyricsto "verse" {
+        \versewords
+      }
+    >>
+  }
+}
+@end lilypond
+
+@cindex libro
+@cindex book, ejemplo de su uso
+@funindex \book
+
+Sin embargo, y aunque esto es un interesante y útil ejercicio
+destinado a ayudarle a comprender cómo funcionan los bloques
+secuenciales y simultáneos, en la práctica quizá nos decidiríamos por
+codificarlo como dos bloques @code{\score} dentro de un bloque
+@code{\book} implícito, como sigue:
+
+@lilypond[quote,verbatim,ragged-right]
+versenotes = \relative c'' {
+  \clef "treble"
+  \key g \major
+  \time 3/4 g g g b b b
+}
+refrainnotesA = \relative c'' {
+  \time 2/4
+  c c g g \bar "|."
+}
+refrainnotesB = \relative c {
+  \clef "bass"
+  \key g \major
+  c e d d
+}
+versewords = \lyricmode {
+  One two three four five six
+}
+refrainwordsA = \lyricmode {
+  la la la la
+}
+refrainwordsB = \lyricmode {
+  dum dum dum dum
+}
+\score {
+  \new Staff <<
+    \new Voice = "verse" {
+      \versenotes
+    }
+    \new Lyrics \lyricsto "verse" {
+      \versewords
+    }
+  >>
+}
+
+\score {
+  \new ChoirStaff <<
+    \new Staff <<
+      \new Voice = "refrainA" {
+        \refrainnotesA
+      }
+      \new Lyrics \lyricsto "refrainA" {
+        \refrainwordsA
+      }
+    >>
+    \new Staff <<
+      \new Voice = "refrainB" {
+        \refrainnotesB
+      }
+      \new Lyrics \lyricsto "refrainB" {
+        \refrainwordsB
+      }
+    >>
+  >>
+}
+@end lilypond
+
 @node Contexts and engravers
 @section Contexts and engravers
 
@@ -1178,72 +1493,93 @@ LilyPond.
 * Engravers explained::         
 * Modifying context properties::  
 * Adding and removing engravers::  
-@end menu 
+@end menu
+
 @node Contexts explained
 @subsection Contexts explained
 
-Cuando se imprime la música, se tienen que añadir a la salida una gran cantidad de elementos
-notacionales.  Por ejemplo, compare la entrada y la salida del siguiente ejemplo:
+@cindex contextos, explicación de los
+
+Cuando se imprime la música, se tienen que añadir a la salida una gran
+cantidad de elementos notacionales que no aparecen explícitamente en
+el archivo de entrada.  Por ejemplo, compare la entrada y la salida
+del siguiente ejemplo:
 
 @lilypond[quote,verbatim,relative=2,fragment]
 cis4 cis2. g4
 @end lilypond
 
-La entrada es bastante escueta, pero en la salida se añaden líneas divisorias, alteraciones accidentales,
-la clave y la indicación de compás.  LilyPond @emph{interpreta} la
-entrada.  En esta fase se inspecciona la información musical en orden temporal,
-de forma parecida a la lectura de una partitura de izquierda a derecha. Mientras se lee
-la entrada, el programa recuerda dónde se encuentran los límites de los compases, y qué notas
-requieren alteraciones explícitas.  Esta información se puede presentar sobre varios
-niveles.  Por ejemplo, el efecto de una alteración accidental se encuentra limitada
-a un solo pentagrama, mientras que una barra divisoria debe estar sincronizada a través
-de la partitura de arriba a abajo.
-
-Dentro de LilyPond, estas reglas y pequeñas porciones de información se agrupan en
-@emph{Contexts}.  Algunos ejemplos de contextos son @code{Voice} (Voz),
-@code{Staff} (Pauta o pentagrama) y @code{Score} (Partitura).  Los contextos son jerárquicos, por
-ejemplo: un @code{Staff} contener muchas @code{Voice}s, y una
-@code{Score} puede contener muchos contextos de @code{Staff}.
+La entrada es bastante escueta, pero en la salida se añaden líneas
+divisorias, alteraciones accidentales, la clave y la indicación de
+compás.  LilyPond @emph{interpreta} la entrada.  En esta fase se
+inspecciona la información musical en orden temporal, de forma
+parecida a la lectura de una partitura de izquierda a
+derecha. Mientras se lee la entrada, el programa recuerda dónde se
+encuentran los límites de los compases, y qué notas requieren
+alteraciones explícitas.  Esta información se puede presentar sobre
+varios niveles.  Por ejemplo, el efecto de una alteración accidental
+se encuentra limitada a un solo pentagrama, mientras que una barra
+divisoria debe estar sincronizada a través de la partitura de arriba a
+abajo.
+
+Dentro de LilyPond, estas reglas y pequeñas porciones de información
+se agrupan en @emph{Contexts}.  Algunos ejemplos de contextos son
+@code{Voice} (Voz), @code{Staff} (Pauta o pentagrama) y @code{Score}
+(Partitura).  Los contextos son jerárquicos, de forma que reflejan la
+naturaleza jerárquica de una partitura musical.  Por ejemplo: un
+contexto de @code{Staff} contener muchos contextos de @code{Voice}, y
+un contexto de @code{Score} puede contener muchos contextos de
+@code{Staff}.
 
 @quotation
 @sourceimage{context-example,5cm,,}
 @end quotation
 
-Cada contexto asume la responsabilidad de imponer algunas reglas de notación,
-creando ciertos objetos de notación y manteniendo las propiedades
-asociadas.  Por ejemplo, el contexto @code{Voice} puede introducir una alteración
-accidental y entonces el contexto @code{Staff} mantiene la regla de mostrar o
-suprimir la alteración para el resto del compás.  La
-sincronización de las líneas divisorias se gestiona dentro del contexto de la partitura, @code{Score}.
-
-Sin embargo, en algunas músicas posiblemente no queramos que las líneas divisorias estén
-sincronizada (pensemos en una partitura polimétrica en compases de 4/4 y de 3/4).  En tales casos,
-debemos modificar los ajustes por omisión de los contextos @code{Score}
-y @code{Staff}.
-
-Para partituras muy sencillas, los contextos se crean implícitamente y no debemos
-preocuparnos por ellos.  Para piezas mayores, como por ejemplo cualquiera que tenga más de un pentagrama,
-los contextos se deben crear explícitamente para asegurarnos
-de que tendremos la cantidad exacta de pentagramas que necesitamos,
-y que están en el orden correcto.  Para tipografiar piezas
-con notación especializada, puede ser útil modificar contextos existentes
-o definir unos nuevos.
-
-
-En la referencia del programa se encuentra una descripción completa de todos los contextos que están disponibles,
-consulte
-@ifhtml
-@rinternals{Contexts}.
-@end ifhtml
-@ifnothtml
-Traducción @expansion{} Contexto.
-@end ifnothtml
-
-@c [TODO: describe propagation]
+Cada contexto asume la responsabilidad de imponer algunas reglas de
+notación, creando ciertos objetos de notación y manteniendo las
+propiedades asociadas.  Por ejemplo, el contexto @code{Voice} puede
+introducir una alteración accidental y entonces el contexto
+@code{Staff} mantiene la regla de mostrar o suprimir la alteración
+para el resto del compás.
+
+Otro ejemplo lo constituye el hecho de que la sincronización de las
+líneas divisorias se gestiona dentro del contexto de la partitura,
+@code{Score}, de forma predeterminada.  Sin embargo, en algunas
+músicas posiblemente no queramos que las líneas divisorias estén
+sincronizadas (pensemos en una partitura polimétrica en compases de
+4/4 y de 3/4).  En tales casos, debemos modificar los ajustes por
+omisión de los contextos @code{Score} y @code{Staff}.
+
+Para partituras muy sencillas, los contextos se crean implícitamente y
+no debemos preocuparnos por ellos.  Para piezas mayores, como por
+ejemplo cualquiera que tenga más de un pentagrama, los contextos se
+deben crear explícitamente para asegurarnos de que tendremos la
+cantidad exacta de pentagramas que necesitamos, y que están en el
+orden correcto.  Para tipografiar piezas con notación especializada,
+es frecuente la modificación de contextos existentes o incluso definir
+unos completamente nuevos.
+
+
+Además de los contextos @code{Score,} @code{Staff} y @code{Voice}, hay
+contextos que se sitúan entre los niveles de partitura y de pentagrama
+para controlar los grupos de pentagraamas, como los contextos
+@code{PianoStaff} y @code{ChoirStaff}.  También existen contextos
+alternativos de pentagrama y de voz, y contextos para la letra, la
+percusión, diagramas de trastes, bajo cifrado, etc.
+
+Los nombres de todos los tipos de contextos se componen de una o más
+palabras que comienzan con mayúscula y que están unidas unas a otras
+sin guión ni barra baja, por ejemplo:
+@code{GregorianTranscriptionStaff}.
 
 @node Creating contexts
 @subsection Creating contexts
 
+@funindex \new
+@cindex nuevos contextos
+@cindex creación de contextos
+@cindex contextos, creación de
+
 Sólo puede haber un contexto en el nivel más alto: el contexto de
 partitura @code{Score}.  Se crea con la instrucción @code{\score} o,
 en partituras sencillas, se crea automáticamente.
@@ -1254,10 +1590,6 @@ automáticamente, pero para partituras más complejas es necesario
 crearlos a mano.  La instrucción más simple que hace esto es
 @code{\new}.  Se antepone a una expresión musical, por ejemplo
 
-@funindex \new
-@cindex contextos nuevos
-@cindex nuevo, contexto
-
 @example
 \new @var{tipo} @var{expresión_musical}
 @end example
@@ -1272,6 +1604,65 @@ Observe que no hay ninguna instrucción @code{\new Score}; el contexto
 @code{Score} único en el nivel más alto se introduce con
 @code{\score}.
 
+
+En las secciones anteriore ha podido ver muchos ejemplos prácticos que
+creaban nuevos contextos de @code{Staff} y de @code{Voice}, pero para
+recordarle cómo se emplean estas instrucciones en la práctica, he aquí
+un ejemplo anotado de música real:
+
+@lilypond[quote,verbatim,ragged-right]
+\score {  % start single compound music expression
+  <<  % start of simultaneous staves section
+    \time 2/4
+    \new Staff {  % create RH staff
+      \key g \minor
+      \clef "treble"
+      \new Voice {  % create voice for RH notes
+        \relative c'' {  % start of RH notes
+          d4 ees16 c8. |
+          d4 ees16 c8. |
+        }  % end of RH notes
+      }  % end of RH voice
+    }  % end of RH staff
+    \new Staff <<  % create LH staff; needs two simultaneous voices
+      \key g \minor
+      \clef "bass"
+      \new Voice {  % create LH voice one
+        \voiceOne
+        \relative g {  % start of LH voice one notes
+          g8 <bes d> ees, <g c> |
+          g8 <bes d> ees, <g c> |
+        }  % end of LH voice one notes
+      }  % end of first LH voice
+      \new Voice {  % create LH voice two
+        \voiceTwo
+        \relative g {  % start of LH voice two notes
+          g4 ees |
+          g4 ees |
+        }  % end of LH voice two notes
+      }  % end of LH voice two
+    >>  % end of LH staff
+  >>  % end of simultaneous staves section
+}  % end of single compound music expression
+@end lilypond
+
+(Observe cómo todas las instrucciones que abren un bloque con una
+llave curva, @code{@{}, o con ángulos dobles, @code{<<}, están
+sangrados (tienen un margen adicional) con dos espacios adicionales, y
+la llave de cierre correspondiente tiene un margen exactamente igual.
+Aunque no es necesario, la observancia de esta práctica reducirá
+considerablemente el número de errores de @q{paréntesis
+descompensados}, y se recomienda vivamente.  Permite apreciar de un
+solo vistazo la estructura de la música, y cualquier paréntesis
+descompensado aprecerá con obviedad.  Observe también cómo el
+pentagrama de la MI se crea usando dobles ángulos porque requiere dos
+voces, mientras que el pentagrama de la MD se crea con una expresión
+musical única encerrada entre llaves porque sólo requiere una voz.)
+
+
+@cindex contextos, nombrado
+@cindex nombrar contextos
+
 La instrucción @code{\new} también puede otorgar un nombre
 identificativo al contexto para distinguirlo de otros contextos del
 mismo tipo:
@@ -1372,6 +1763,8 @@ mediante la modificación del funcionamiento de los Grabadores.
 @subsection Modifying context properties
 
 @cindex contexto, propiedades de
+@cindex contexto, propiedades de, modificación
+@cindex modificar las propiedades de contexto
 @funindex \set
 @funindex \unset
 
@@ -1467,7 +1860,7 @@ la segunda instrucción @code{\set} establece la propiedad
 @code{instrumentName} del contexto Voice a @qq{Alto}, pero como
 LilyPond no busca esta propiedad en el contexto @code{Voice}, no se
 realiza ninguna acción.  Esto no es un error, y no se registra ningún
-mensaje en el archivo de errores Log.
+mensaje en el archivo Log de registro de errores.
 
 De forma parecida, si el nombre de la propiedad se escribe con alguna
 falta, no se produce ningún mensaje de error, y claramente la acción
@@ -1520,9 +1913,17 @@ y esto los desactivará en todos los pentagramas:
 >>
 @end lilypond
 
-El valor de cada propiedad establecido de esta forma se puede devolver
-a su valor original con la instrucción @code{\unset}.
+Como un ejemplo más, si se establece @code{clefOctavation} dentro del
+contexto de @code{Score}, éste cambia inmediatamente el valor de la
+octavación en todos los pentagramas en curso y establece un nuevo
+valor predeterminado que se aplicará a todos los pentagramas.
+
+La instrucción opuesta, @code{\unset}, tiene el efecto de suprimir la
+propiedad del contexto, lo que ocasiona que la mayoría de las
+porpiedades vuelvan a su valor predeterminado.  Normalmente no es
+necesario el uso de @code{\unset}, pues una nueva instrucción
+@code{\set} hará el ajuste deseado.
+
 Las instrucciones @code{\set} y @code{\unset} pueden aparecer en
 cualquier lugar del archivo de entrada y tendrán efecto a partir del
 tiempo en que se encuentran y hasta el final de la partitura o hasta
@@ -1556,6 +1957,7 @@ utilizando la potentísima instrucción @code{markup}.
 
 
 @funindex \with
+@cindex contexto, propiedades de, establecimiento con \with
 
 Las propiedades de contexto también se pueden establecer en el momento
 en que se crea el contexto.  A veces esta forma de establecer el valor
@@ -1587,10 +1989,15 @@ de la siguiente forma:
 >>
 @end lilypond
 
-Efectivamente, esto sobreescribe el valor predeterminado de la
-propiedad.  Aún se puede modificar dinámicamente utilizando
-@code{\set} y devolverlo a su (nuevo) valor predeterminado con
-@code{\unset}.
+Las propiedades ajustadas de esta manera aún pueden cambiarse
+dinámicamente utilizando @code{\set} y ser devueltas a sus valores
+predeterminados mediante @code{\unset}.
+
+La propiedad @code{fontSize} se trata de forma distinta.  Si se ajusta
+dentro de una cláusula @code{\with}, tiene el efecto de reiniciar el
+valor predeterminado del tamaño de la fuente tipográfica.  Si más
+tarde se modifica con @code{\set}, este nuevo valor predeterminado
+puede restablecerse con la instrucción @code{\unset fontSize}.xs
 
 @node Adding and removing engravers
 @subsection Adding and removing engravers
@@ -1750,6 +2157,7 @@ contemplado aquí? Continúe leyendo.
 @node Soprano and cello
 @subsection Soprano and cello
 
+@cindex plantilla, modificar
 
 Para empezar, tome la plantilla que le parezca más parecida a aquello
 que quiere conseguir.  Digamos que quiere escribir algo para soprano y
@@ -1872,17 +2280,18 @@ LilyPond que hay más de una cosa (en este caso, @code{Staff})
 sucediendo al mismo tiempo -- .  La @code{\score} se parecerá ahora a
 esto
 
+@c Indentation in this example is deliberately poor
 @example
 \score@{
   <<
-    <<
-      \new Voice = "uno" @{
-        \autoBeamOff
-        \sopranoMusic
-      @}
-      \new Lyrics \lyricsto "uno" \letraSoprano
-    >>
-    \new Staff \musicaCello
+  <<
+    \new Voice = "uno" @{
+      \autoBeamOff
+      \sopranoMusic
+    @}
+    \new Lyrics \lyricsto "uno" \letraSoprano
+  >>
+  \new Staff \musicaCello
   >>
   \layout @{ @}
   \midi @{ @}
@@ -2191,6 +2600,8 @@ lower = \relative c, {
 @node Building a score from scratch
 @subsection Building a score from scratch
 
+@cindex plantilla, escribir su propia
+
 Después de adquirir algo de soltura en la escritura del código de
 LilyPond, se dará cuenta de que es más fácil construir completamente
 una partitura partiendo de cero, que modificar una plantilla.  También
@@ -2279,7 +2690,10 @@ No es estrictamente necesario utilizar la construcción simultánea
 @code{<< >>} para el pentagrama del manual dos y el pentagrama del
 órgano de pedal, ya que contienen una única expresión, pero no hace
 daño y es una buena costumbre utilizar siempre dobles ángulos después
-de @code{\new Staff} cuando hay varias voces.
+de @code{\new Staff} cuando hay varias voces.  Lo opuesto es cierto
+para las voces: normalmente deben ir seguidas de llaves @code{@{
+.. @}} en caso de que tengamos música codificada como distintas
+variables que se deben situar consecutivamente.
 
 Añadamos esta estructura al bloque de partitura, y ajustemos el
 sangrado de los márgenes.  También escribimos las claves
@@ -2363,4 +2777,3 @@ PedalOrganMusic = \relative c {
   >>
 }  % end Score context
 @end lilypond
-
index a6236031ef7d80c4e65fd84a2df495947d5ceebe..8e0071f8d80343abab77a31349ec342329bf8add 100644 (file)
@@ -308,7 +308,7 @@ modificar mediante un multiplicador.  Esto es útil para saltar muchos
 compases, como por ejemplo @code{s1*23}.
 
 @cindex compresión de música
-@funindex \compressMusic
+@funindex \scaleDurations
 
 De la misma forma, se pueden comprimir por una fracción trozos de
 música más largos, como si cada nota, acorde o silencio tuviera la
@@ -316,7 +316,7 @@ fracción como multiplicador.  La sintaxis general de la iinstrucción
 que lo hace es:
 
 @example
-\compressMusic #'(@emph{numerador} . @emph{denominador}) @{ @emph{música} @}
+\scaleDurations #'(@emph{numerador} . @emph{denominador}) @{ @emph{música} @}
 @end example
 
 @noindent
@@ -331,11 +331,11 @@ comprimir y expandir la música:
 % Normal durations
 <c a>4 c8 a
 % Scale music by *2/3
-\compressMusic #'(2 . 3) {
+\scaleDurations #'(2 . 3) {
   <c a f>4. c8 a f
 }
 % Scale music by *2
-\compressMusic #'(2 . 1) {
+\scaleDurations #'(2 . 1) {
   <c' a>4 c8 b
 }
 @end lilypond
index 98a76baff986eb5d9ccb5665bc75cffec9f61fc6..28d6df26c48830951d7eb88f1ea61c7e70cfb9b6 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: b5ba45ccb092324961dac292dc58cc0eddbc7307
+    Translation of GIT committish: 024932c39052e559d3541b0844660c7c9b988d5f
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -61,7 +61,7 @@ Manual de aprendizaje:
 Referencia de la notación:
 @ref{Modern chords}.
 
-Snippets:
+Fragmentos de código:
 @rlsr{Simultaneous notes}.
 
 @knownissues
@@ -109,7 +109,7 @@ Referencia de funcionamiento interno:
 @knownissues
 
 Los clusters sólo tienen un buen aspecto cuando abarcan un mínimo de
-dos acordes.  En caso contrario aperecerán excesivamente estrechos.
+dos acordes.  En caso contrario aparecerán excesivamente estrechos.
 
 Los clusters no llevan plica y por sí mismos no pueden indicar las
 duraciones.  Los racimos separados necesitarían silencios de
@@ -129,70 +129,109 @@ separación entre ellos.
 
 @cindex mezclar notas
 @cindex notas, colisiones de
+@cindex colisiones
+@funindex \shiftOn
+@funindex \shiftOnn
+@funindex \shiftOnnn
+@funindex \shiftOff
+@cindex desplazamiento de silencios, automático
+
+Las cabezas de notas con igual duración se combinan automáticamente,
+pero las que tienen duraciones distintas no se combinan.  Los
+silencios que se encuentran en el lado opuesto de una plica se
+desplazan verticalmente.
 
-Normalmente las cabezas de nota con un número de puntillos diferente
-no se mezclan en una sola, pero cuando se le da un valor verdadero a
-la propiedad @code{merge-differently-dotted} en el objeto
-@rinternals{NoteCollision}, se juntan en una sola:
-
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
-\new Voice << {
-  g8 g8
-  \override Staff.NoteCollision
-    #'merge-differently-dotted = ##t
-  g8 g8
-} \\ { g8.[ f16] g8.[ f16] } >>
+@lilypond[quote,verbatim,relative=2]
+<<
+  {
+    c8 d e d c d c4
+    g'2 fis
+  } \\ {
+    c2 c8. b16 c4
+    e,2 r
+  } \\ {
+    \oneVoice
+    s1
+    e8 a b c d2
+  }
+>>
 @end lilypond
 
-De forma similar puede mezclar cabezas de blanca con corcheas,
-ajustando @code{merge-differently-headed}:
+Las cabezas de notas diferentes se pueden combinar, con la excepción
+de blancas con negras:
 
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
-\new Voice << {
-  c8 c4.
-  \override Staff.NoteCollision
-    #'merge-differently-headed = ##t
-c8 c4. } \\ { c2 c2 } >>
+@lilypond[quote,verbatim,relative=2]
+<<
+  {
+    \override Staff.NoteCollision #'merge-differently-headed = ##t
+    c8 d e d c d c4
+    g'2 fis
+  } \\ {
+    c2 c8. b16 c4
+    e,2 r
+  } \\ {
+    \oneVoice
+    s1
+    e8 a b c d2
+  }
+>>
 @end lilypond
 
-@noindent
-@code{merge-differently-headed} y
-@code{merge-differently-dotted} se aplican solamente a direcciones de
-plica opuestas (es decir, a las voces 1 y 2).
-
-LilyPond también desplaza verticalmente los silencios que están en el
-lado contrario de una plica, por ejemplo
+Se pueden combinar cabezas con puntillos diferentes:
 
-@lilypond[quote,ragged-right,fragment,verbatim]
-\new Voice << c''4 \\ r4 >>
+@lilypond[quote,relative=2,verbatim]
+<<
+  {
+    \override Staff.NoteCollision #'merge-differently-headed = ##t
+    \override Staff.NoteCollision #'merge-differently-dotted = ##t
+    c8 d e d c d c4
+    g'2 fis
+  } \\ {
+    c2 c8. b16 c4
+    e,2 r
+  } \\ {
+    \oneVoice
+    s1
+    e8 a b c d2
+  }
+>>
 @end lilypond
 
-@cindex desplazada, nota
+@cindex desplazar nota
 
-Si tres o más notas coinciden verticalmente en la misma columna,
-@code{merge-differently-headed} no puede completar satisfactoriamente
-la mezcla de las dos notas que deberían mezclarse.  Para hacer posible
-que la mezcla funcione, aplique un @code{\shift} (desplazamiento) a la
-nota que no debe mezclarse.  En el primer compás del ejemplo
-siguiente, @code{merge-differently-headed} no funciona (la cabeza de
-la blanca está rellena) En el segundo compás, se aplica
-@code{\shiftOn} para mover horizontalmente el @code{g} (Sol) superior,
-y @code{merge-differently-headed} funciona correctamente.
+La colisión del segundo compás se produce porque
+@code{merge-differently-headed} no es capaz de completar
+satisfactoriamente la combinación cuando se encuentran tres o más
+notas alineadas en la misma columna (de hecho, se obtiene una
+advertencia por este motivo).  Para conseguir que la combinación
+funcione adecuadamente, aplique un @code{\shift} o desplazamiento a la
+nota que no se debe combinar.  Aquí, se aplica @code{\shiftOn} para
+mover el sol agudo fuera de la columna, y entonces
+@code{merge-differently-headed} hace su trabajo correctamente.
 
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\override Staff.NoteCollision #'merge-differently-headed = ##t
-<<
-  { d=''2 g2 } \\
-  { \oneVoice d=''8 c8 r4 e,8 c'8 r4 } \\
-  { \voiceFour e,,2 e'2}
->>
+@lilypond[quote,relative=2,verbatim]
 <<
-  { d'=''2 \shiftOn g2 } \\ 
-  { \oneVoice d=''8 c8 r4 e,8 c'8 r4 } \\
-  { \voiceFour e,,2 e'2}
+  {
+    \override Staff.NoteCollision #'merge-differently-headed = ##t
+    \override Staff.NoteCollision #'merge-differently-dotted = ##t
+    c8 d e d c d c4
+    \shiftOn
+    g'2 fis
+  } \\ {
+    c2 c8. b16 c4
+    e,2 r
+  } \\ {
+    \oneVoice
+    s1
+    e8 a b c d2
+  }
+
 >>
 @end lilypond
 
+Sólo se combinan las notas si tienen la plica en direcciones opuestas
+(o sea en las @code{Voice}s 1 y 2).
+
 @cindex multiple voices
 @cindex polyphonic music
 @cindex shifting voices
@@ -202,14 +241,14 @@ adicionales para evitar colisiones entre las notas.  Las voces
 adicionales se añaden definiendo una variable, como se muestra a
 continuación:
 
-@lilypond[quote,verbatim,ragged-right]
+@lilypond[quote,verbatim]
 voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
-
-\relative c''' <<
-  { \voiceOne g4 ~  \stemDown g32[ f( es d c b a b64 )g] } \\
-  { \voiceThree  b4} \\
-  { \voiceFive d,} \\
-  { \voiceTwo g,}
+\relative c'''
+<<
+  { \voiceOne g2. ~ \stemDown g32[ f( es d c b a b64) g] } \\
+  { \voiceThree b4 } \\
+  { \voiceFive d,  } \\
+  { \voiceTwo g,   }
 >>
 @end lilypond
 
@@ -256,30 +295,38 @@ y cuatro) tienen @code{\shiftOn} (desplazamiento activado).
 más grandes.
 
 Cuando LilyPond no puede con todo, se pueden usar la propiedad
-@code{force-hshift} (forzar desplazamiento) del objeto
-@rinternals{NoteColumn} y los silencios con altura para
-sobreescribir las decisiones de composición tipográfica.
-
-@lilypond[quote,verbatim,ragged-right]
-\relative <<
-{
-  <d g>
-  <d g>
-} \\ {
-  <b f'>
-  \once \override NoteColumn #'force-hshift = #1.7
-  <b f'>
-} >>
+@code{force-hshift} (forzar desplazamiento horizontal) del objeto
+@code{NoteColumn} y los silencios con altura para sobreescribir las
+decisiones de composición tipográfica.
+
+@lilypond[quote,verbatim,relative=1]
+<<
+  { <d g>2
+    <d g>  }
+  \\
+  { <b f'>2
+    \once \override NoteColumn #'force-hshift = #1.7
+    <b f'> }
+>>
 @end lilypond
 
 
 @seealso
 
+Glosario musical:
+@rglos{polyphony}.
+
+Manual de aprendizaje:
+@rlearning{Multiple notes at once},
+@rlearning{Voices contain music},
+@rlearning{Collisions of objects}.
+
 Fragmentos de código:
-@lsrdir{Simultaneous,Simultaneous-notes}.
+@rlsr{Simultaneous notes}.
 
-Referencia de funcionamiento interno: los objetos responsables de
-resolver las colisiones son
+Referencia de funcionamiento interno:
+@rinternals{NoteColumn}.
+Los objetos responsables de la resolución de colisiones son
 @rinternals{NoteCollision} y
 @rinternals{RestCollision}.
 
@@ -288,7 +335,12 @@ resolver las colisiones son
 
 Cuando se emplea @code{merge-differently-headed} con una corchea (o
 una nota más corta) con la plica hacia arriba, y una blanca con la
-plica hacia abajo, la corchea no tiene el desplazamiento correcto.
+plica hacia abajo, la corchea recibe un desplazamiento ligeramente
+incorrecto a causa de la anchura diferente del símbolo de la cabeza de
+la blanca.
+
+No está claro en qué circunstancias se pueden combinar cabezas de nota
+distintas que tienen también distinto puntillo.
 
 No están contemplados los racimos (clusters) donde la misma nota se
 presenta con diferentes alteraciones accidentales dentro del mismo
@@ -298,6 +350,7 @@ o usar la notación especial de racimos (véase @ref{Clusters}).
 
 @node Automatic part combining
 @subsubsection Automatic part combining
+
 @cindex automática, combinación de partes
 @cindex partes, combinación automática
 @cindex partes, combinador de
@@ -311,7 +364,7 @@ como voces separadas, y las direcciones de las plicas se establecen de
 forma automática.  También las partes de solo y @emph{a due} quedan
 identificadas y es posible marcarlas.
 
-La sintaxis para la combinación de las partes es
+La sintaxis para la combinación de las partes es:
 
 @example
 \partcombine @var{expresión_musical_1} @var{expresión_musical_2}
@@ -320,50 +373,44 @@ La sintaxis para la combinación de las partes es
 
 El ejemplo siguiente ejemplifica la funcionalidad básica del
 combinador de partes: poner las partes en un solo pentagrama, y
-establecer las direcciones de las plicas y la polifonía.
+establecer las direcciones de las plicas y la polifonía. Se utilizan
+las mismas variables para las partes independientes y el pentagrama
+combinado.
 
-@lilypond[quote,verbatim,ragged-right,fragment]
-\new Staff \partcombine
-  \relative g' { g g a( b) c c r r }
-  \relative g' { g g r4 r e e g g }
-@end lilypond
-
-El primer Sol (@code{g}) aparece una sola vez, aunque se especificaba
-dos veces (una en cada parte).  Las direcciones de las plicas,
-ligaduras de expresión y ligaduras de unión se establecen
-automáticamente, dependiendo de si es un solo o un unísono.  La
-primera parte (la que tiene el contexto llamado @code{one}) siempre
-tiene las plicas para arriba, y @q{Solo}, mientras que la segunda
-(llamada @code{two}) siempre tiene las plicas para abajo y @q{Solo
-II}.
+@lilypond[quote,verbatim]
+instrumentOne = \relative c' {
+  c4 d e f
+  R1
+  d'4 c b a
+  b4 g2 f4
+  e1
+}
 
-Si queremos sólo las partes mezcladas y no las marcas textuales,
-podemos establecer la propiedad @code{printPartCombineTexts} al valor
-false.
+instrumentTwo = \relative g' {
+  R1
+  g4 a b c
+  d c b a
+  g f( e) d
+  e1
+}
 
-@lilypond[quote,verbatim,ragged-right,fragment]
-\new Staff <<
-  \set Staff.printPartCombineTexts = ##f
-  \partcombine
-    \relative g' { g a( b) r }
-    \relative g' { g r4 r f }
+<<
+  \new Staff \instrumentOne
+  \new Staff \instrumentTwo
+  \new Staff \partcombine \instrumentOne \instrumentTwo
 >>
 @end lilypond
 
-Para cambiar el texto que se imprime para los solos o la fusión,
-podemos establecer las propiedades @code{soloText}, @code{soloIIText}
-y @code{aDueText}.
-
-@lilypond[quote,verbatim,ragged-right,fragment]
-\new Staff <<
-  \set Score.soloText = #"ichi"
-  \set Score.soloIIText = #"ni"
-  \set Score.aDueText = #"tachi"
-  \partcombine
-    \relative g' { g4 g a( b) r }
-    \relative g' { g4 g r r f }
->>
-@end lilypond
+Las notas del tercer compás aparecen solamente una vez a pesar de que
+se han especificado en las dos partes.  Las direcciones de las plicas
+y ligaduras se establecen de forma automática, según se trate de un
+solo o de un unísono.  Cuando se necesita en situaciones de polifonía,
+la primera parte (que recibe el nombre de contexto @code{one}) siempre
+recibe las plicas hacia arriba, mientras que la segunda (llamada
+@code{two}) siempre recibe las plicas hacia abajo.  En los fragmentos
+de solo, las partes se marcan con @q{Solo} y @q{Solo II},
+respectivamente.  Las partes en unísono (@notation{a due}) se marcan
+con el texto predeterminado @qq{a2}.
 
 Los dos argumentos de @code{\partcombine} se interpretan como
 contextos de @rinternals{Voice}.  Si se están usando octavas
@@ -381,16 +428,50 @@ Una sección @code{\relative} que se encuentra fuera de
 @code{\partcombine} no tiene ningún efecto sobre las notas de
 @var{expresión_musical_1} y @var{expresión_musical_2}.
 
+@snippets
+
+Las partes se pueden combinar sin imprimir ningún texto:
+
+@lilypond[quote,verbatim]
+\new Staff <<
+  \set Staff.printPartCombineTexts = ##f
+  \partcombine
+    \relative g' { g a( b) r }
+    \relative g' { g r4 r f }
+>>
+@end lilypond
+
+Es posible modificar los textos que se imprimen:
+
+@c KEEP LY
+@lilypond[quote,verbatim]
+\new Staff <<
+  \set Score.soloText = #"ellas"
+  \set Score.soloIIText = #"ellos"
+  \set Score.aDueText = #"todos"
+  \partcombine
+    \relative g' { g4 g r r a2 g }
+    \relative g' { r4 r a( b) a2 g }
+>>
+@end lilypond
+
+
 @seealso
 
 Glosario musical:
-@rglos{a due}.
+@rglos{a due},
+@rglos{part}.
+
+Referencia de la notación:
+@ref{Writing parts}.
 
 Fragmentos de código:
-@lsrdir{Simultaneous,Simultaneous-notes}.
+@rlsr{Simultaneous notes}.
+
 
 Referencia de funcionamiento interno:
-@rinternals{PartCombineMusic}, @rinternals{Voice}.
+@rinternals{PartCombineMusic},
+@rinternals{Voice}.
 
 @knownissues
 
@@ -414,66 +495,108 @@ diferentes, los eventos que contienen se ignorarán.
 
 @cindex Escribir música en paralelo
 @cindex Música intercalada
+@funindex parallelMusic
+
+La música para varias partes se puede intercalar dentro del código de
+entrada.  La función @code{\parallelMusic} admite una lista que
+contiene los nombres de las variables que se van a crear, y una
+expresión musical.  El contenido de los compases alternativos
+extraídos de la expresión se convierten en el valor de las variables
+respectivas, de manera que podemos utilizarlas más tarde para imprimir
+la música.
 
-La música para varias partes se puede intercalar:
+@warning{Es obligatorio utilizar comprobaciones de compás @code{|}, y
+los compases deben tener la misma longitud.}
 
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,verbatim]
 \parallelMusic #'(voiceA voiceB) {
+  % Bar 1
   r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
   c'2                               c'2                         |
+
+  % Bar 2
   r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
   c'2                               c'2                         |
 }
 \new StaffGroup <<
-  \new Staff \new Voice \voiceA
-  \new Staff \new Voice \voiceB
+  \new Staff  \voiceA
+  \new Staff  \voiceB
 >>
 @end lilypond
 
-Esto funciona bastante bien para música de piano.
+Se puede usar el modo relativo.  Observe que la instrucción
+@code{\relative} no se utiliza dentro del propio bloque
+@code{\parallelMusic}.  Las notas guardan relación con la nota
+anterior en la misma voz, no con la nota anterior dentro del código de
+entrada (dicho de otra manera, las notas relativas de @code{vozA}
+ignoran a las notas que hay en @code{vozB}.
 
 @lilypond[quote,verbatim]
-global = { \key g \major  \time 2/4 }
-music = {
-  \parallelMusic #'(voiceA voiceB voiceC voiceD) {
-    % Bar 1 
-    a'8 b'      c'' d''   |
-    d'4         e'        |
-    c16 d e f   d e f g   |
-    a,4         a,4       |
-
-    % Bar 2
-    e''8 f''    g'' a''   |
-    f'4         g'        |
-    e16 f g a   f g a b   |
-    a,4         a,4       |
-
-    % Bar 3 ...
-  }
+\parallelMusic #'(voiceA voiceB) {
+  % Bar 1
+  r8 g16 c e g, c e r8 g,16 c e g, c e  |
+  c2                c                   |
+
+  % Bar 2
+  r8 a,16 d f a, d f r8 a,16 d f a, d f |
+  c2                 c                  |
+ }
+\new StaffGroup <<
+  \new Staff \relative c'' \voiceA
+  \new Staff \relative c'  \voiceB
+>>
+@end lilypond
+
+Esto funciona aceptablemente bien para música de piano.  El siguiente
+ejemplo asigna cada cuatro compases consecutivos a cuatro variables:
+
+@lilypond[quote,verbatim]
+global = {
+  \key g \major
+  \time 2/4
 }
 
-\score {      
-  \new PianoStaff <<
-    \new Staff {
-      \global
-      <<
-        \voiceA \\
-        \voiceB
-      >>
-    }
-    \new Staff {
-      \global \clef bass
-      <<
-        \voiceC \\
-        \voiceD
-      >>
-    }
-  >>
+\parallelMusic #'(voiceA voiceB voiceC voiceD) {
+  % Bar 1
+  a8    b     c   d     |
+  d4          e         |
+  c16 d e fis d e fis g |
+  a4          a         |
+
+  % Bar 2
+  e8      fis  g     a   |
+  fis4         g         |
+  e16 fis g  a fis g a b |
+  a4           a         |
+
+  % Bar 3 ...
+}
+
+\score {
+\new PianoStaff <<
+ \new Staff {
+   \global
+   <<
+     \relative c'' \voiceA \\
+     \relative c'  \voiceB
+   >>
+ }
+ \new Staff {
+   \global \clef bass
+   <<
+     \relative c \voiceC \\
+     \relative c \voiceD
+   >>
+ }
+>>
 }
 @end lilypond
 
 @seealso
 
+Manual de aprendizaje:
+@rlearning{Organizing pieces with variables}
+
 Fragmentos de código:
 @rlsr{Simultaneous notes}.
 
index 49fdc49997a7d779705e847b68c0d69bce7529ef..e1ae49040fac8bfce3dc4a3aa76bbb636d9b24eb 100644 (file)
@@ -819,11 +819,11 @@ commune à toutes les portées,  que vous proratiserez manuellement
 selon le cas en utilisant @code{timeSignatureFraction} pour obtenir la
 division adéquate pour chaque portée.  Les durées, dans chacune des
 portées, seront alors échelonnées par rapport à la métrique commune.
-L'échelle de représentation se règle avec @code{\compressMusic} ---
+L'échelle de représentation se règle avec @code{\scaleDurations} ---
 qui fonctionne comme @code{\times}, sans toutefois créer de crochet.
 La syntaxe appropriée est :
 @example
-\compressMusic #'(@var{numérateur} . @var{dénominateur}) @var{exprmusicale}
+\scaleDurations #'(@var{numérateur} . @var{dénominateur}) @var{exprmusicale}
 @end example
 
 
@@ -841,13 +841,13 @@ multipliées par 3/5, de telle sorte que @w{3/5 * 10/8 = 3/4}.
   \new Staff {
     \time 3/4
     \set Staff.timeSignatureFraction = #'(9 . 8)
-    \compressMusic #'(2 . 3)
+    \scaleDurations #'(2 . 3)
       \repeat unfold 6 { c8[ c c] }
   }
   \new Staff {
     \time 3/4
     \set Staff.timeSignatureFraction = #'(10 . 8)
-    \compressMusic #'(3 . 5) {
+    \scaleDurations #'(3 . 5) {
       \repeat unfold 2 { c8[ c c] }
       \repeat unfold 2 { c8[ c] }
       | c4. c4. \times 2/3 { c8 c c } c4
index 8c1b7d0bf97423ebd3bdfd6a2f2358f58ddfc327..2b87d6216c0788210cc3c524efe1c059cb8410ec 100644 (file)
@@ -4648,7 +4648,7 @@ msgstr "cbjo"
 #. @node in Documentation/de/user/staff.itely
 #. @section in Documentation/de/user/staff.itely
 msgid "Staff notation"
-msgstr "Notación de los pentragramas"
+msgstr "Notación de los pentagramas"
 
 #. @node in Documentation/user/staff.itely
 #. @subsection in Documentation/user/staff.itely
index 6b3cda888ab0c762813e7a357f6f9d2833059079..27d55cbe81c9f27ce3c5c54b1f25cd00ada0d976 100644 (file)
@@ -5725,15 +5725,20 @@ DK: pythagoræisk komma,
 S: pytagoreiskt komma,
 FI: pytagorinen komma.
 
-A sequence of fifths starting on C eventually circles back to C, but this C,
-obtained by adding 12 fifths, is 24 @ref{cent}s higher than the C obtained
-by adding 7 octaves.  The difference between those two pitches is called the
-Pythagorean comma.
+Originally, the interval by which the sum of six whole tones exceeds the octave
+-- (9:8)^6 - 2:1 = 531441:524288, or 23.5 cents.
+
+Modern acoustical theory defines it as the interval by which twelve fifths
+exceed seven octaves.  To put it another way: A sequence of fifths that starts
+on C eventually circles back to C.  However, this C is 23.5 @ref{cent}s higher
+than the C obtained by adding 7 octaves.  The difference between those two
+pitches is the Pythagorean comma.
 
 @seealso
 
 @ref{cent}, @ref{temperament}.
 
+
 @node quadruplet
 @section quadruplet
 
@@ -6713,8 +6718,18 @@ S: syntoniskt komma,
 FI: syntoninen komma, terssien taajuusero luonnollisessa ja
 Pytagorisessa viritysjärjestelmässä.
 
-Difference between the natural third and the third obtained by
-Pythagorean tuning (@ref{Pythagorean comma}), equal to 22@w{ }cents.
+Named after Ptolemy's syntonic diatonic genus.  Originally, the difference
+by which the ditone exceeds the pure major third obtained by Pythagorean
+tuning -- (9:8)^2 - 5:4 = 81:80, or 21.5@w{ }cents.
+
+Modern acoustical theory defines it as the interval by which four fifths exceed
+the sum of two octaves plus a major third.  (3:2)^4 - (2:1)^2 + (5:4)
+
+This comma is also known as the comma of Didymus, or didymic comma.
+
+@seealso
+
+@ref{Pythagorean comma}
 
 
 @node system
@@ -6985,7 +7000,7 @@ FI: ääni.
 A sound of definite pitch and duration, as distinct from @emph{noise}.
 Tone is a primary building material of music.
 
-Music from the 20th century may be based on atonal sounds.
+@c Music from the 20th century may be based on atonal sounds. Meh, not so much
 
 
 @node tonic
index f862ec53097afb3e27dc7404945afb6ee6e3476b..0bb23654a4d16ef1c5ac94323d8a4d629c4a1fd8 100644 (file)
@@ -76,8 +76,10 @@ The syntax for a normal repeat is
 \repeat volta @var{repeatcount} @var{musicexpr}
 @end example
 
-where @var{musicexpr} is a music expression.  Alternate endings can
-be produced using @code{\alternative}.
+where @var{musicexpr} is a music expression.  Alternate endings can be
+produced using @code{\alternative}.  If there are more repeats than
+there are alternate endings, the earliest repeats are given the first
+alternative.
 
 Normal repeats without alternate endings:
 
@@ -95,6 +97,11 @@ Normal repeats with alternate endings:
     { cis2 g' }
     { cis,2 b }
   }
+\repeat volta 3 { c4 d e f }
+  \alternative {
+    { d2 e }
+    { f2 g }
+  }
 c1
 @end lilypond
 
@@ -266,8 +273,10 @@ the writing out of repetitious music.  The syntax is
 @end example
 
 where @var{musicexpr} is a music expression.  Unfold repeats can be
-made with or without alternate endings.  Unfold repeats without
-alternate endings:
+made with or without alternate endings.  If there are more repeats
+than there are alternate endings, the first alternative ending is
+applied to the earliest endings.  Unfold repeats without alternate
+endings:
 
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
 c1
@@ -285,6 +294,12 @@ c1
     { cis,2 b }
   }
 c1
+\repeat unfold 3 { d4 c b2 }
+  \alternative {
+    { c4 d e f }
+    { d4 c b a }
+  }
+c1
 @end lilypond
 
 @seealso
index 9219f8a06a51980388f6560ae692a50f45617654..f2365278cc47700acf4a6bd8ae7b21c24a277359 100644 (file)
 @ignore
 GDP TODO list
 
-\compressMusic -> \scaleDurations.
-approved by Han-Wen; just needs somebody to kick up a fuss about
-it.
-
 1.2.3.1 Time signature
 Needs an example of beatLength, which is broken (see my recent
 mail
@@ -296,8 +292,6 @@ placed within tuplet brackets.
 @cindex scaling durations
 @cindex durations, scaling
 
-TODO Change \compressMusic to \scaleDurations when implemented.
-
 You can alter the duration of single notes, rests or chords by a
 fraction @code{N/M} by appending @code{*N/M} (or @code{*N} if
 @code{M} is 1) to the duration.
@@ -326,7 +320,7 @@ a multiplier.  This is useful for skipping many measures, e.g.,
 @code{s1*23}.
 
 @cindex compressing music
-@funindex \compressMusic
+@funindex \scaleDurations
 
 Longer stretches of music may be compressed by a fraction in the
 same way, as if every note, chord or rest had the fraction as a
@@ -341,11 +335,11 @@ and expanded:
 % Normal durations
 <c a>4 c8 a
 % Scale music by *2/3
-\compressMusic #'(2 . 3) {
+\scaleDurations #'(2 . 3) {
   <c a f>4. c8 a f
 }
 % Scale music by *2
-\compressMusic #'(2 . 1) {
+\scaleDurations #'(2 . 1) {
   <c' a>4 c8 b
 }
 @end lilypond
@@ -1212,7 +1206,7 @@ This notation can be created by setting a common time signature
 for each staff but replacing the symbol manually by setting
 @code{timeSignatureFraction} to the desired fraction and scaling
 the printed durations in each staff to the common time
-signature.  This done with @code{\compressMusic}, which
+signature.  This done with @code{\scaleDurations}, which
 is used in a similar way to @code{\times}, but does not create
 a tuplet bracket, see @ref{Scaling durations}.
 
@@ -1231,13 +1225,13 @@ staff, shown durations are multiplied by 3/5, as 3/5 * 10/8 = 3/4.
   \new Staff {
     \time 3/4
     \set Staff.timeSignatureFraction = #'(9 . 8)
-    \compressMusic #'(2 . 3)
+    \scaleDurations #'(2 . 3)
       \repeat unfold 6 { c8[ c c] }
   }
   \new Staff {
     \time 3/4
     \set Staff.timeSignatureFraction = #'(10 . 8)
-    \compressMusic #'(3 . 5) {
+    \scaleDurations #'(3 . 5) {
       \repeat unfold 2 { c8[ c c] }
       \repeat unfold 2 { c8[ c] } |
       c4. c4. \times 2/3 { c8 c c } c4
@@ -2492,20 +2486,16 @@ Grace notes may be forced to use align with regular notes
 in other staves by setting @code{strict-grace-spacing} to
 ##t:
 
-@lilypond[relative=2,ragged-right]
+@lilypond[verbatim,quote,relative=2]
 <<
   \override Score.SpacingSpanner #'strict-grace-spacing = ##t
   \new Staff {
-     c'4
-     \afterGrace
-     c'4
-     { c'16[ c'8 c'16] }
-     c'4
+    c4
+    \afterGrace c4 { c16[ c8 c16] }
+    c4 r
   }
   \new Staff {
-     c'16[ c'16 c'16 c'16]
-     c'16[ c'16 c'16 c'16]
-     c'4
+    c16 c c c c c c c c4 r
   }
 >>
 @end lilypond
index 6f8b2c5557869167fddc1ea5250ff6a0a9f8864c..a9f4d88ed9c65fb7720caab326a248dafbea3938 100644 (file)
@@ -104,8 +104,6 @@ Internals Reference:
 @rinternals{ClusterSpannerBeacon},
 @rinternals{Cluster_spanner_engraver}.
 
-@c Examples: @rlsr{contemporary,cluster@/.ly}.
-
 @knownissues
 
 Clusters only look good if they span at least two chords; otherwise
@@ -140,16 +138,6 @@ Note heads with equal durations are automatically merged, while
 note heads with unequal durations are not merged.  Rests opposite
 a stem are shifted vertically.
 
-@c   old material to delete, I think.  -gp
-@c Normally, equal note heads with the same number of dots and the same
-@c note head are automatically merged, while note heads with different note
-@c heads and/or a different number of dots are not.
-@c The following example
-@c has two cases of this, plus an undesired merging (the half-note head
-@c @code{e} is solid):
-@c Note that LilyPond has vertically shifted the rest, which is opposite
-@c of a stem.
-
 @lilypond[quote,verbatim,relative=2]
 <<
   {
@@ -166,10 +154,8 @@ a stem are shifted vertically.
 >>
 @end lilypond
 
-Note heads with different note heads may be merged:
-@c First we will merge the initial half note head with the eighth
-@c note by setting the @code{merge-differently-headed} property of the
-@c @code{NoteCollision} object:
+Note heads with different note heads may be merged, with the exception
+of half-note heads and quarter-note heads:
 
 @lilypond[quote,verbatim,relative=2]
 <<
@@ -189,7 +175,6 @@ Note heads with different note heads may be merged:
 @end lilypond
 
 Note heads with different dots may be merged:
-@c Similarly, you can merge differently dotted note heads:
 
 @lilypond[quote,relative=2,verbatim]
 <<
@@ -239,9 +224,8 @@ column, and @code{merge-differently-headed} works properly.
 >>
 @end lilypond
 
-Merging notes by setting @code{merge-differently-headed} and
-@code{merge-differently-dotted} only works for opposing stem
-directions (i.e., to @code{Voice}s 1 and 2).
+Notes are only merged if they have opposing stem directions (i.e., in
+@code{Voice} 1 and 2).
 
 @cindex multiple voices
 @cindex polyphonic music
diff --git a/VERSION b/VERSION
index 0b55ba86346b18236bd00d179759bbd2ee6d0901..c4607d3a627ad4bed78a1d399cdeb79de0cdca6b 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=2
 MINOR_VERSION=11
-PATCH_LEVEL=47
+PATCH_LEVEL=48
 MY_PATCH_LEVEL=
 
diff --git a/input/lsr/changing-time-signatures-inside-a-polymetric-section-using--compressmusic.ly b/input/lsr/changing-time-signatures-inside-a-polymetric-section-using--compressmusic.ly
deleted file mode 100644 (file)
index 46df951..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
-%% This file is in the public domain.
-\version "2.11.46"
-
-\header {
-  lsrtags = "rhythms, contexts-and-engravers"
-
-  texidoc = "
-The @code{measureLength} property, together with
-@code{measurePosition}, determines when a bar line is needed. However,
-when using @code{\\compressMusic}, the scaling of durations makes it
-difficult to change time signatures without making a mess of it.
-Therefore, @code{measureLength} has to be set manually, using the
-@code{ly:make-moment} callback. The second argument must be the same as
-the second argument of @code{\\compressMusic}. 
-
-"
-  doctitle = "Changing time signatures inside a polymetric section using \\compressMusic"
-} % begin verbatim
-\layout {
-  \context {
-    \Score
-    \remove "Timing_translator"
-    \remove "Default_bar_line_engraver"
-  }
-  \context {
-    \Staff
-    \consists "Timing_translator"
-    \consists "Default_bar_line_engraver"
-  }
-}
-
-<<
-  \new Staff {
-    \compressMusic #'(8 . 5) {
-      \time 6/8
-      \set Timing.measureLength = #(ly:make-moment 3 5)
-      b8 b b b b b
-      \time 2/4
-      \set Timing.measureLength = #(ly:make-moment 2 5)
-      b4 b
-    }
-  }
-  \new Staff {
-    \clef bass
-    \time 2/4
-    c2 d e f
-  }
->>
diff --git a/input/lsr/changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly b/input/lsr/changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly
new file mode 100644 (file)
index 0000000..09dfad9
--- /dev/null
@@ -0,0 +1,45 @@
+%% Do not edit this file; it is auto-generated from input/new
+%% This file is in the public domain.
+\version "2.11.48"
+\header {
+  lsrtags = "rhythms,contexts-and-engravers"
+  texidoc = "The @code{measureLength} property, together with
+@code{measurePosition}, determines when a bar line is needed. However,
+when using @code{\\scaleDurations}, the scaling of durations makes it
+difficult to change time signatures without making a mess of it.
+Therefore, @code{measureLength} has to be set manually, using the
+@code{ly:make-moment} callback. The second argument must be the same as
+the second argument of @code{\\scaleDurations}."
+  doctitle = "Changing time signatures inside a polymetric section using @code{\\scaleDurations}"
+} % begin verbatim
+
+\layout {
+  \context {
+    \Score
+    \remove "Timing_translator"
+    \remove "Default_bar_line_engraver"
+  }
+  \context {
+    \Staff
+    \consists "Timing_translator"
+    \consists "Default_bar_line_engraver"
+  }
+}
+
+<<
+  \new Staff {
+    \scaleDurations #'(8 . 5) {
+      \time 6/8
+      \set Timing.measureLength = #(ly:make-moment 3 5)
+      b8 b b b b b
+      \time 2/4
+      \set Timing.measureLength = #(ly:make-moment 2 5)
+      b4 b
+    }
+  }
+  \new Staff {
+    \clef bass
+    \time 2/4
+    c2 d e f
+  }
+>>
index 34d873ef8c00f2f0e2f0656e8feab84a0037a7d6..85119e85766aea7fe08a7d05964a9412ee10c4ac 100644 (file)
@@ -1,11 +1,11 @@
 creating-blank-staves.ly
 vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
+changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly
 adding-a-figured-bass-above-or-below-the-notes.ly
 adding-an-extra-staff-at-a-line-break.ly
 adding-an-extra-staff.ly
 chant-or-psalms-notation.ly
-changing-time-signatures-inside-a-polymetric-section-using--compressmusic.ly
+use-square-bracket-at-the-start-of-a-staff-group.ly
 mensurstriche-layout-bar-lines-between-the-staves.ly
 engravers-one-by-one.ly
-use-square-bracket-at-the-start-of-a-staff-group.ly
 nesting-staves.ly
index 17f851a1706943542fd1ffcc393944126cff3512..d36a0ea57559751a7802980d6ec9f71d932902dc 100644 (file)
@@ -4,23 +4,23 @@ manually-controlling-beam-positions.ly
 adding-drum-parts.ly
 rest-styles.ly
 chant-or-psalms-notation.ly
-heavily-customized-polymetric-time-signatures.ly
 controlling-tuplet-bracket-visibility.ly
-skips-in-lyric-mode-2.ly
+heavily-customized-polymetric-time-signatures.ly
 positioning-multi--measure-rests.ly
 using-ties-with-arpeggios.ly
 forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly
 integrating-text-indications-in-metronome-marks.ly
 compound-time-signatures.ly
+changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly
 modifying-tuplet-bracket-length.ly
 printing-metronome-and-rehearsal-marks-below-the-staff.ly
-changing-time-signatures-inside-a-polymetric-section-using--compressmusic.ly
 making-an-object-invisible-with-the-transparent-property.ly
 merging-multi-measure-rests-in-a-polyphonic-part.ly
 automatic-beam-subdivisions.ly
 changing-the-tuplet-number.ly
 entering-several-tuplets-using-only-one--times-command.ly
 conducting-signs,-measure-grouping-signs.ly
+skips-in-lyric-mode-2.ly
 changing-form-of-multi--measure-rests.ly
 rhythmic-slashes.ly
 automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly
diff --git a/input/new/changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly b/input/new/changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly
new file mode 100644 (file)
index 0000000..6cef1f8
--- /dev/null
@@ -0,0 +1,43 @@
+\version "2.11.48"
+\header {
+  lsrtags = "rhythms,contexts-and-engravers"
+  texidoc = "The @code{measureLength} property, together with
+@code{measurePosition}, determines when a bar line is needed. However,
+when using @code{\\scaleDurations}, the scaling of durations makes it
+difficult to change time signatures without making a mess of it.
+Therefore, @code{measureLength} has to be set manually, using the
+@code{ly:make-moment} callback. The second argument must be the same as
+the second argument of @code{\\scaleDurations}."
+  doctitle = "Changing time signatures inside a polymetric section using @code{\\scaleDurations}"
+}
+
+\layout {
+  \context {
+    \Score
+    \remove "Timing_translator"
+    \remove "Default_bar_line_engraver"
+  }
+  \context {
+    \Staff
+    \consists "Timing_translator"
+    \consists "Default_bar_line_engraver"
+  }
+}
+
+<<
+  \new Staff {
+    \scaleDurations #'(8 . 5) {
+      \time 6/8
+      \set Timing.measureLength = #(ly:make-moment 3 5)
+      b8 b b b b b
+      \time 2/4
+      \set Timing.measureLength = #(ly:make-moment 2 5)
+      b4 b
+    }
+  }
+  \new Staff {
+    \clef bass
+    \time 2/4
+    c2 d e f
+  }
+>>
diff --git a/input/regression/part-combine-markup.ly b/input/regression/part-combine-markup.ly
new file mode 100644 (file)
index 0000000..3185b37
--- /dev/null
@@ -0,0 +1,14 @@
+\version "2.11.47"
+
+\header {
+  texidoc = "Part combine texts accept markup."
+}
+
+\new Staff <<
+  \set Score.soloText = \markup { \concat { I \super o } }
+  \set Score.soloIIText = \markup { \huge \italic II }
+  \set Score.aDueText = \markup { \normal-text \rounded-box { "a 2" } }
+  \partcombine
+    \relative g' { g4 g r r a2 g }
+    \relative g' { r4 r a( b) a2 g }
+>>
index 010370930b1972db3dbe4715ebcf623dafbfc84d..fac631e03810689b226d2e332527479dd9923ca7 100644 (file)
@@ -4,7 +4,7 @@
        sense mostly in combination with ragged-right mode: the notes
        are then printed at minimum distance.  This is mostly useful
        for ancient notation, but may also be useful for some flavours
-       of contemporary music.  If not in raggedright mode, lily will
+       of contemporary music.  If not in ragged-right mode, lily will
        pack as many bars of music as possible into a line, but the
        line will then be stretched to fill the whole linewidth.
 "
 
 \version "2.11.40"
 
-\layout {
-  ragged-right = ##t
-}
-
-
 \relative {
   \override Score.SpacingSpanner #'packed-spacing = ##t
   c2 d4 f8[ g]
index a1d9d74cf85f2089dc4ce657c702197a35bd7d39..829ae3228b4821ee9a176ad92da682b0647d1e65 100644 (file)
@@ -2,14 +2,14 @@
 
 \header {
 
-  texidoc = "If @code{raggedlast} is set, the systems are broken
+  texidoc = "If @code{ragged-last} is set, the systems are broken
     similar to paragraph formatting in text: the last line is
     unjustified. "
 
 }
 
 \layout{
-  raggedlast = ##t
+  ragged-last = ##t
 }
 
 \relative c'' \new Staff { \repeat unfold 20 { c1 } }
index 4b9756ee9f15ead6eddd9115a4b35023bdd177b1..39ca9cf867b9918541ad5b208f8b496c7964e15c 100644 (file)
@@ -1,11 +1,14 @@
 \version "2.10.0"
-%If you specify two different key sigs at one point, a
-%warning is printed.
+
+\header {
+  texidoc = "If you specify two different key signatures at one point, a
+warning is printed."
+
+}
 
 \score { 
 \context Voice <<
  { \key cis \major cis4 \key bes \major bes4 }
- { \key cis \major fis4 \key es \major g4 }  
+ { \key cis \major fis4 \key es \major g4 }
 >>
 }
-
index 66a645f3202fa93518757b21ed1da9f368f26c4e..6cb7f5e253f4fb26483f89b7492bb1bf3a714aa4 100644 (file)
@@ -172,7 +172,7 @@ char const *LILYPOND_DATADIR = PACKAGE_DATADIR "/" TOPLEVEL_VERSION;
    unpredictable places. To get around this, we tell the x87 FPU to use only
    double precision. Note that this is not needed for x86_64 because that uses
    the SSE unit by default instead of the x87 FPU. */
-#ifdef __x86__
+#if defined(__x86__) || defined(__i386__)
 
 #include <fpu_control.h>
 static void configure_fpu() {
@@ -185,7 +185,7 @@ static void configure_fpu() {
 static void configure_fpu() {
 }
 
-#endif /* __x86__ */
+#endif /* defined(__x86__) || defined(__i386__) */
 
 
 static void
index 3f9ad80c5ddbf04a20c2f879ff9e5da8ae0e452d..129f6a3ade08d91a79ecfc446d1ffd13dee96e0c 100644 (file)
@@ -157,7 +157,7 @@ clef =
    (make-clef-set type))
 
 
-compressMusic =
+scaleDurations =
 #(define-music-function
                  (parser location fraction music) (number-pair? ly:music?)
                  (ly:music-compress music (ly:make-moment (car fraction) (cdr fraction))))
index ebf2b5afb90fd451601bb4e68f3b5a211ff1dc9a..66c083599ddbb675e9ebfadc370b4b388c97db59 100644 (file)
@@ -3050,3 +3050,9 @@ def conv (str):
     return str
 
 conversions.append (((2, 11, 46), conv, """\\set hairpinToBarline -> \\override Hairpin #'to-barline"""))
+
+def conv (str):
+    str = re.sub (r"compressMusic", r"scaleDurations", str)
+    return str
+
+conversions.append (((2, 11, 48), conv, """\\compressMusic -> \\scaleDurations"""))
index 42c8e1652794f90bb629c4c46310136f93b1f92c..469b900acee053f7ffceef6d33d9814df9f161bf 100644 (file)
@@ -363,9 +363,9 @@ context and a list of music objects.  The list of contains entries with
 start times, music objects and whether they are processed in this
 context.")
      (rehearsalMark ,integer? "The last rehearsal mark printed.")
-     (repeatCommands ,list? "This property is read to find any command
-of the form @code{(volta . @var{x})}, where @var{x} is a string or
-@code{#f}.")
+     (repeatCommands ,list? "This property is a list of commands
+of the form @code{(list 'volta @var{x})}, where @var{x} is a string or
+@code{#f}.  @code{'end-repeat} is also accepted as a command.")
      (restNumberThreshold ,number? "If a multimeasure rest has more
 measures than this, a number is printed.")
 
index a538b3f3edca73f8b0bfea5edd12fb7030073ded..b8f9a672b7169a249d0d1e5995bcc8146f4a12bf 100644 (file)
@@ -141,7 +141,7 @@ on errors, and print a stack trace.")
 ;;; have a more sensible default.
 
 (if (or (ly:get-option 'verbose)
-       (ly:get-option 'trace-memory-frequencency)
+       (ly:get-option 'trace-memory-frequency)
        (ly:get-option 'trace-scheme-coverage)
        )
     (begin