| [ << Duraciones ] | [Top][Contents][Index] | [ Expresiones >> ] |
| [ < Barras automáticas ] | [ Up: Barras ] | [ Barras manuales > ] |
2.4.2 Establecer el comportamiento de las barras automáticas
Cuando está habilitado el barrado automático, la colocación de las
barras automáticas viene determinada por tres propiedades de
contexto: beatBase, beatStructure y
beamExceptions. Los valores predeterminados de estas
variables se pueden sobreescribir como se describe más abajo, o de
forma alternativa los propios valores predeterminados se pueden
cambiar como se explica en Indicación de compás.
Si hay definida una regla de beamExceptions para el compás
en curso, se usa dicha regla para determinar la colocación de las
barras; se ignoran los valores de beatBase y
beatStructure.
Si no está definida ninguna regla de beamExceptions para el
tipo de compás en curso, la colocación de las barras está
determinada por los valores de beatBase y
beatStructure.
Barrado basado en beatBase y beatStructure
De forma predeterminada, las reglas de beamExceptions están
definidas para los compases más comunes, y así las reglas de
beamExceptions se deben desactivar si pretendemos que el
barrado automático esté basado en beatBase y
beatStructure. Las reglas de beamExceptions se
desactivan mediante
\set Timing.beamExceptions = #'()
Cuando el valor de beamExceptions se ha fijado a
#'(), ya sea debido a un ajuste explícito o a causa de que
no hay ninguna regla de beamExceptions definida
internamente para el compás actual, los puntos finales de las
barras están en los pulsos según viene determinado por las
propiedades de contexto beatBase y beatStructure.
beatStructure es una lista de Scheme que define la longitud
de cada pulso dentro del compás en unidades de beatBase.
De forma predeterminada, beatBase es una unidad más que
el denominador del compás. De forma predeterminada también, cada
unidad de longitud beatBase es un único pulso.
Observe que existen valores de beatStructure y de
beatBase diferentes para cada indicación de compás. Los
cambios que se hacen a estas variables se aplican solamente al
tipo de compás en vigor, por lo que dichos cambios se deben
escribir después de la instrucción \time que da comienzo a
una sección nueva con un tipo de compás distinto, no antes. Los
valores nuevos que se dan a una indicación de compás concreta se
retienen y se vuelven a aplicar cuando ese tipo de compás vuelve a
establecerse.
\relative c'' { \time 5/16 c16^"default" c c c c | % beamExceptions are unlikely to be defined for 5/16 time, % but let's disable them anyway to be sure \set Timing.beamExceptions = #'() \set Timing.beatStructure = 2,3 c16^"(2+3)" c c c c | \set Timing.beatStructure = 3,2 c16^"(3+2)" c c c c | }![]()
\relative { \time 4/4 a'8^"default" a a a a a a a % Disable beamExceptions because they are definitely % defined for 4/4 time \set Timing.beamExceptions = #'() \set Timing.beatBase = #1/4 \set Timing.beatStructure = 1,1,1,1 a8^"changed" a a a a a a a }![]()
Los cambios en los ajustes de barrado se pueden limitar a contextos específicos. Si no se incluye ningún ajuste en un contexto de nivel más bajo, se aplican los ajustes del contexto circundante.
\new Staff { \time 7/8 % No need to disable beamExceptions % as they are not defined for 7/8 time \set Staff.beatStructure = 2,3,2 << \new Voice = one { \relative { a'8 a a a a a a } } \new Voice = two { \relative { \voiceTwo \set Voice.beatStructure = 1,3,3 f'8 f f f f f f } } >> }![]()
En caso de usar varias voces, se debe especificar el contexto
Staff si queremos aplicar el barrado a todas las voces del
pentagrama:
\time 7/8 % rhythm 3-1-1-2 % Change applied to Voice by default -- does not work correctly % Because of auto-generated voices, all beating will % be at beatBase #1/8 \set beatStructure = 3,1,1,2 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >> % Works correctly with context Staff specified \set Staff.beatStructure = 3,1,1,2 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >>![]()
El valor de beatBase se puede ajustar para cambiar el
comportamiento de las barras, si se desea. Cuando se hace, el
valor de beatStructure se debe fijar de manera que sea
compatible con el nuevo valor de beatBase.
\time 5/8 % No need to disable beamExceptions % as they are not defined for 5/8 time \set Timing.beatBase = #1/16 \set Timing.beatStructure = 7,3 \repeat unfold 10 { a'16 }![]()
De forma predeterminada beatBase está fijado a una unidad
más que el denominador del compás. Todas las excepciones a este
valor predeterminado están en
scm/time-signature-settings.scm.
Barrado basado en beamExceptions
Las reglas de autobarrado especiales (distintas de terminar una
barra sobre un pulso) están definidas en la propiedad
beamExceptions.
El valor de beamExceptions, que es una estructura de datos
de Scheme bastante compleja, se genera fácilmente con la función
\beamExceptions. Esta función recibe uno o más patrones
rítmicos barrados manualmente y con un compás de duración (los
compases se deben separar por una barra de comprobación de
compás | porque la función no tiene otra manera de
discernir la longitud del compás). He aquí un ejemplo sencillo:
\relative c'' { \time 3/16 \set Timing.beatStructure = 2,1 \set Timing.beamExceptions = \beamExceptions { 32[ 32] 32[ 32] 32[ 32] } c16 c c | \repeat unfold 6 { c32 } | }![]()
Nota: Un valor de beamExceptions debe ser una lista de
excepciones completa. Esto es, toda excepción que se tenga
que aplicar debe estar incluida en este ajuste. No es posible
añadir, eliminar o cambiar solo una de las excepciones. Aunque
esto puede parecer engorroso, significa que no es necesario
conocer los ajustes de barrado actuales para poder especificar un
patrón de barrado nuevo.
Cuando cambia el compás, se fijan los valores predeterminados de
Timing.beatBase, Timing.beatStructure y
Timing.beamExceptions. Un ajuste en el tipo de compás da
como resultado un reinicio de los ajustes de barrado automático
para el contexto Timing al comportamiento predeterminado.
\relative a' { \time 6/8 \repeat unfold 6 { a8 } % group (4 + 2) \set Timing.beatStructure = 4,2 \repeat unfold 6 { a8 } % go back to default behavior \time 6/8 \repeat unfold 6 { a8 } }![]()
Los ajustes de barrado automático predeterminados para un tipo de compás están determinados en el archivo scm/time-signature-settings.scm. La forma de cambiar los ajustes predeterminados de barrado automático para un tipo de compás se describe en Indicación de compás.
Muchos ajustes de barrado automáticos para un tipo de compás
contienen una entrada para beamExceptions. Por ejemplo, el
compás de 4/4 trata de unir el compás en dos partes si solo hay
corcheas. La regla beamExceptions puede sobreescribir el
ajuste beatStructure si no se reinicia
beamExceptions.
\time 4/4 \set Timing.beatBase = #1/8 \set Timing.beatStructure = 3,3,2 % This won't beam (3 3 2) because of beamExceptions \repeat unfold 8 {c''8} | % This will beam (3 3 2) because we clear beamExceptions \set Timing.beamExceptions = #'() \repeat unfold 8 {c''8}![]()
De forma similar, las corcheas en compás de 3/4 se unen mediante
una sola barra para todo el compás, de forma predeterminada. Para
unir las corcheas en 3/4 mediante una barra en cada parte,
reinicie beamExceptions.
\time 3/4 % by default we beam in (6) due to beamExceptions \repeat unfold 6 {a'8} | % This will beam (1 1 1) due to default beatBase and beatStructure \set Timing.beamExceptions = #'() \repeat unfold 6 {a'8}![]()
En la música tipografiada de los períodos clásico y romántico, con
frecuencia las barras comienzan a mitad de un compás en 3/4, pero
la práctica moderna es evitar la falsa impresión de 6/8 (véase
Gould, pág. 153). Se producen situaciones similares en el compás
de 3/8. Este comportamiento viene controlado mediante la
propiedad de contexto beamHalfMeasure, que tiene efecto
solamente sobre indicaciones de compás que tienen la cifra 3 en el
numerador:
\relative a' { \time 3/4 r4. a8 a a | \set Timing.beamHalfMeasure = ##f r4. a8 a a | }![]()
Cómo funciona el barrado automático
Cuando se habilita el barrado automático, la colocación de las
barras de corchea automáticas viene determinada por las
propiedades de contexto beatBase, beatStructure y
beamExceptions.
Son de aplicación las siguientes reglas, en orden de prioridad, cuando se determina el aspecto de las barras:
- Si está especificada una barra manual con
[…], fijar la barra tal y como se ha especificado; en caso contrario, - si está definida en
beamExceptionsuna regla de barrado para este tipo de barra, utilizarla para determinar los lugares válidos en que pueden terminar las barras; en caso contrario, - si está definida en
beamExceptionsuna regla de final de barra para un tipo de barra más largo, utilizarla para determinar los lugares válidos en que pueden terminar las barras; en caso contrario, - usar los valores de
beatBasey debeatStructurepara determinar los finales de los pulsos dentro del compás, y terminar las barras al final de los pulsos.
En las reglas anteriores, el tipo de barra beam type es la duración de la nota más breve dentro del grupo unido por una barra.
Las reglas de barrado predefinidas están en el archivo scm/time-signature-settings.scm.
Fragmentos de código seleccionados
Subdivisión de barras
Las barras de semicorchea, o de figuras más breves, no se
subdividen de forma predeterminada. Esto es, las barras de más de
dos plicas se amplían sobre el grupo completo de notas, sin
dividirse. Este comportamiento se puede modificar para subdividir
las barras en subgrupos mediante el establecimiento de la
propiedad subdivideBeams al valor #t. Cuando está
activada, las barras se subdividen a intervalos definidos por el
valor actual de la subivisión.
Usando las propiedades beamMinimumSubdivision y
beamMaximumSubdivision se pueden configurar los límites de
la subdivisión automática de las barras, concretamente las
duraciones mínima y máxima en que las barras secundarios se
eliminan. Los valores por omisión son 0 para la
primera y +inf.0 para la segunda, haciendo que LilyPond
subdivida las barras tanto como sea posible.
Existen dos casos especiales que tener en cuenta.
- Si el numerador de
beamMaximumSubdivisionno es una potencia de 2, las duraciones candidatas a la subdivisión sonbeamMaximumSubdivisiondividido por las potencias de 2 que sean mayores o iguales quebeamMinimumSubdivision. - Si
beamMaximumSubdivisiones menor quebeamMinimumSubdivision, la profundidad de las subdivisiones de las barras está limitada porbeamMaximumSubdivision, pero no la frecuencia y los intervalos rítmicos, desviándose por tanto, posiblemente, de las longitudes correctas o esperadas.
Si respectIncompleteBeams se fija al valor #t, las
subdivisiones incompletas con más de dos plicas se tratan como una
‘extensión’ del grupo de subdivisión previo, es decir, la
duración del grupo de subdivisión anterior se extiende para que
comprenda también la subdivisión incompleta. Si en vez de ello se
fija a #f (que es lo predeterminado), se inicia un grupo de
subdivisión nuevo.
\relative c'' { \time 1/4 <>^"default" c32 c c c c c c c <>^"with subdivision" \set subdivideBeams = ##t c32 c c c c c c c <>^"min 1/8" \once \set beamMinimumSubdivision = #1/8 c32 c c c c c c c <>^"max 1/16" \once \set beamMaximumSubdivision = #1/16 c32 c c c c c c c <>^"max 3/8" \once \set beamMaximumSubdivision = #3/8 \repeat unfold 16 c64 <>^"min 1/32, max 1/64" % Set maximum beam subdivision interval to 1/64 to limit % subdivision depth, despite not being metrically correct. \once \set beamMinimumSubdivision = #1/32 \once \set beamMaximumSubdivision = #1/64 \repeat unfold 32 c128 \break <>^"beams with incomplete subdivisions" c32 c c c c c c r32 c32 c c c c r16. <>^\markup { "the same with" \typewriter { "respectIncomplete=#t" } } \set respectIncompleteBeams = ##t % The incomplete subgroup extends the completed subgroup. c32 c c c c c c r32 % No visual change since we have only two stems in the % incomplete subgroup. c32 c c c c r16. }![]()
Barras que se atienen al pulso estrictamente
Se puede hacer que las barras secundarias apunten en la dirección del pulso o fracción a que pertenecen. La primera barra evita los corchetes sueltos (que es el comportamiento predeterminado); la segunda barra sigue el pulso o fracción estrictamente.
\relative c'' { \time 6/8 a8. a16 a a \set strictBeatBeaming = ##t a8. a16 a a }![]()
Símbolos de dirección y símbolos de agrupación de compás
Las propiedades de contexto controlan el agrupamiento de los
pulsos dentro de un compás: beatStructure lists the length
of each beat in units of beatBase. Hay establecidos
valores de beatStructure para muchos tipos de compases en
scm/time-signature-settings.scm. Estas propiedades se
pueden cambiar o establecer con \set.
Como alternativa, \time acepta opcionalmente una
estructura de pulsos para usarla de forma predeterminada.
\time se aplica al contexto Timing, por lo que no
restablece los valores de beatStructure ni de
beatBase que se establezcan en otros contextos de nivel
inferior, como Voice.
Si el grabador Measure_grouping_engraver está incluido en
uno de los contextos de presentación, se imprimirán signos de
agrupación de pulsos. Estos símbolos facilitan la lectura de
música moderna rítmicamente compleja. En este ejemplo, el compás
de 9/8 se agrupa según dos patrones distintos utilizando los dos
métodos, mientras que el compás de 5/8 se agrupa de acuerdo con el
ajuste predeterminado que está en
scm/time-signature-settings.scm. Para el compás de 4/4 hay
que fijar explícitamente beatBase a corcheas para que se
muestre el patrón irregular del compás.
\score { \new Voice \relative c'' { \time 9/8 g8 g d d g g a( bes g) | \set Timing.beatStructure = 2,2,2,3 g8 g d d g g a( bes g) | \time 4,5 9/8 g8 g d d g g a( bes g) | \time 5/8 a4. g4 | \time 3,3,2 4/4 \set Timing.beatBase = #1/8 f4 d8 f4 d8 g4 } \layout { \context { \Staff \consists "Measure_grouping_engraver" } } }![]()
Finales de barra en el contexto Score
Las reglas de final de barra especificadas en el contexto
Score se aplican a todos los pentagramas, pero se pueden
modificar tanto en los niveles de Staff como de
Voice:
\relative c'' { \time 5/4 % Set default beaming for all staves \set Score.beatBase = #1/8 \set Score.beatStructure = 3,4,3 << \new Staff { c8 c c c c c c c c c } \new Staff { % Modify beaming for just this staff \set Staff.beatStructure = 6,4 c8 c c c c c c c c c } \new Staff { % Inherit beaming from Score context << { \voiceOne c8 c c c c c c c c c } % Modify beaming for this voice only \new Voice { \voiceTwo \set Voice.beatStructure = 6,4 a8 a a a a a a a a a } >> } >> }![]()
Véase también
Referencia de la notación: Indicación de compás.
Archivos de inicio: scm/time-signature-settings.scm.
Fragmentos de código: Rhythms.
Referencia de funcionamiento interno: Auto_beam_engraver, Beam, BeamForbidEvent, beam-interface.
Advertencias y problemas conocidos
Si una partitura termina mientras una barra de corchea automática
no ha terminado y aún acepta notas, esta última barra no se
imprime en absoluto. Lo mismo sirve para las voces polifónicas
introducidas con << … \\ … >>. Si una voz
polifónica termina mientras una barra de corchea automática aún
admite notas, no se imprime. El rodeo para estos problemas es
aplicar el barrado manual a la última barra de la voz o partitura.
De forma predeterminada, el traductor Timing recibe el
nombre del contexto Score como alias. Esto significa que
el establecimiento del compás en ua pauta afectará al barrado de
las otras pautas también. Así, un ajuste en el compás en un
pentagrama tardío reiniciará el barrado personalizado que se había
ajustado en un pentagrama más temprano. Una forma de evitar este
problema es ajustar la indicación de compás en un pentagrama
solamente.
<< \new Staff { \time 3/4 \set Timing.beatBase = #1/8 \set Timing.beatStructure = 1,5 \set Timing.beamExceptions = #'() \repeat unfold 6 { a'8 } } \new Staff { \repeat unfold 6 { a'8 } } >>![]()
Los ajustes de barrado predeterminados para dicho compás también se pueden cambiar, de forma que siempre se utilice siempre el barrado deseado. La manera de efectuar cambios en los ajustes de barrado automático para una indicación de compás se describe en Indicación de compás.
<< \new Staff { \overrideTimeSignatureSettings 3/4 % timeSignature #1/8 % beatBase 1,5 % beatStructure #'() % beamExceptions \time 3/4 \repeat unfold 6 { a'8 } } \new Staff { \time 3/4 \repeat unfold 6 { a'8 } } >>![]()
| [ << Duraciones ] | [Top][Contents][Index] | [ Expresiones >> ] |
| [ < Barras automáticas ] | [ Up: Barras ] | [ Barras manuales > ] |
![[image of music]](../b7/lily-9de3c64c.png)
![[image of music]](../65/lily-10f31985.png)
![[image of music]](../3e/lily-3c1e58bd.png)
![[image of music]](../56/lily-6b263ee8.png)
![[image of music]](../a8/lily-143feb0b.png)
![[image of music]](../65/lily-fcd2a836.png)
![[image of music]](../19/lily-5fc3e5c9.png)
![[image of music]](../34/lily-fb0a4b9e.png)
![[image of music]](../18/lily-0a46b39e.png)
![[image of music]](../92/lily-a5294847.png)
![[image of music]](../2b/lily-1825a134.png)
![[image of music]](../c4/lily-97c0f8eb.png)
![[image of music]](../74/lily-39310e4e.png)
![[image of music]](../72/lily-2798cad3.png)
![[image of music]](../fa/lily-89037e94.png)
![[image of music]](../9c/lily-720b1dcb.png)