X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fes%2Fessay%2Fengraving.itely;fp=Documentation%2Fes%2Fessay%2Fengraving.itely;h=0e2af31b1e2bc5d12b46ad5d1216ea29a9601e05;hb=e90f0536f9be39ada0bef0aeb0d275dec3b2fb5b;hp=0000000000000000000000000000000000000000;hpb=a8c9e8a7ca320ab0df5fd32e717fd62cd7635ce6;p=lilypond.git diff --git a/Documentation/es/essay/engraving.itely b/Documentation/es/essay/engraving.itely new file mode 100644 index 0000000000..0e2af31b1e --- /dev/null +++ b/Documentation/es/essay/engraving.itely @@ -0,0 +1,1840 @@ +@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- + +@ignore + Translation of GIT committish: 7ad21bc1c7d8407e8f21088415c1ad117e84fd9d + + When revising a translation, copy the HEAD committish of the + version that you are working on. For details, see the Contributors' + Guide, node Updating translation committishes.. +@end ignore + +@c \version "2.14.0" + +@node Grabado musical +@chapter Grabado musical +@translationof Music engraving + +Este ensayo describe porqué se creó LilyPond +y cómo puede producir partituras musicales tan bellas. + +@c TODO: +@c remove 3mm eps bounding box left padding for Sarabande (This will +@c require adding a new snippet option to lilypond-book.py +@c check formatting of HTML output + +@menu +* Historia de LilyPond:: +* Detalles del grabado:: +* Grabado automatizado:: +* Construcción del software:: +* Poner a LilyPond a trabajar:: +* Ejemplos de partituras (BWV 861):: +@end menu + +@node Historia de LilyPond +@section Historia de LilyPond +@translationof The LilyPond story + +Mucho antes de que LilyPond se hubiese utilizado para editar preciosas +partituras de trabajo, antes de que pudiese crear apuntes de cursos +universitarios o incluso melodías sencillas, antes de que tuviera una +comunidad de usuarios a lo largo y ancho del mundo o incluso un ensayo +sobre grabado musical, LilyPond comenzó con esta pregunta: + +@quotation +¿Por qué casi ninguna de las partituras hechas con ordenador consigue +la belleza y el equilibrio de una partitura grabada a mano? +@end quotation + +@noindent +Algunas de las respuestas pueden descubrirse examinando cuidadosamente +las dos partituras que aparecen +@ifnottex +debajo. +@end ifnottex +@iftex +en las siguientes páginas. +@end iftex +La primera es una hermosa partitura grabada a mano en 1950 y la +segunda es una edición moderna hecha con ordenador. + +@ifnottex +@quotation +@noindent +Bärenreiter BA 320, @copyright{}1950: + +@sourceimage{baer-suite1-fullpage,,,png} +@end quotation + +@quotation +@noindent +Henle núm. 666, @copyright{}2000: + +@sourceimage{henle-suite1-fullpage,,,png} +@end quotation +@end ifnottex + +Aquí, las notas son idénticas, y proceden de la primera suite para +violoncello solo de Bach, pero el aspecto es distinto, sobre todo si +las imprimimos en papel y las observamos desde una cierta distancia. +@ifnottex +(La versión del presente manual en PDF contiene imágenes de alta +resolución, adecuadas para la impresión en papel.) +@end ifnottex +Trate de leer o tocar a partir de cada una de las partituras, y se +dará cuenta de que la partitura grabada a mano es más agradable de +utilizar. Tiene unas líneas y un movimiento que parecen fluir, y se +aprecia como un fragmento de música vivo y palpitante, mientras que la +edición más reciente parece fría y mecánica. + +Es difícil apreciar inmediatamente en qué consiste la +diferencia entra las ediciones antigua y nueva. En ésta todo parece +pulcro y ordenado, posiblemente incluso @qq{mejor} a causa de su +aspecto computerizado y uniforme. De hecho, esto nos tuvo confundidos +durante un cierto tiempo. Queríamos mejorar la notación por +ordenador, pero en primer lugar teníamos que averiguar qué era lo que +fallaba. + +La respuesta radica en la uniformidad precisa y matemática de la +edición nueva. Fíjese en la línea divisoria central de cada línea: en +la partitura grabada a mano, la posición de estas líneas divisorias +tiene una cierta variación natural, mientras que en la versión moderna +estas líneas están alineadas de forma casi perfecta. Lo podemos +apreciar en estos diagramas simplificados de disposición de las +páginas, trazados a partir de la música grabada a mano (a la +izquierda) y la generada por ordenador (a la derecha): + +@quotation +@iftex +@sourceimage{pdf/page-layout-comparison,,,} +@end iftex +@ifnottex +@sourceimage{page-layout-comparison,,,png} +@end ifnottex +@end quotation +@noindent + +En el resultado producido por el ordenador, incluso las cabezas de las +notas individuales se alinean en columnas verticales, haciendo +desaparecer el contorno de la melodía en una cuadrícula rígida de +símbolos musicales. + +Existen también otras diferencias: en la edición grabada a mano todas +las líneas verticales son más gruesas, las ligaduras quedan más cerca +de la cabeza de las notas, y hay más variedad en las inclinaciones +de las barras de corchea. Aunque dichos detalles pueden parecer +minucias, el resultado es una partitura más fácil de leer. En la +partitura de ordenador, todas las líneas son casi idénticas y si el +músico levanta la mirada por un momento probablemente se pierda por +la página. + +LilyPond se diseñó para resolver los problemas que encontramos en el +software existente y para crear notación musical bella que emulara a +las mejores partituras trazadas a mano. + +@iftex +@page +@noindent +Bärenreiter BA 320, @copyright{}1950: + +@sourceimage{baer-suite1-fullpage-hires,16cm,,} +@page +@noindent +Henle núm. 666, @copyright{}2000: +@sp 3 +@sourceimage{henle-suite1-fullpage-hires,16cm,,} +@page +@end iftex + +@node Detalles del grabado +@section Detalles del grabado +@translationof Engraving details + +@cindex grabado +@cindex tipografía musical +@cindex musical, tipografía +@cindex grabado en placas +@cindex grabado musical + +El arte de la tipografía musical recibe el nombre de @emph{grabado (en +plancha)}, un término que deriva del proceso manual de la impresión +musical@footnote{Los impresores europeos de la antigüedad exploraron +diversos procesos, entre los que se incluían los bloques de madera +tallados a mano, los tipos móviles y planchas finas de metal grabadas. +La composición tipográfica tenía la ventaja de poderse corregir más +fácilmente y facilitar la inclusión de textos y la letra de las +canciones, pero sólo el grabado ofrecía la posibilidad de elaborar +notación libre de compromisos y limitaciones anticipadas. Al final, +las partituras grabadas a mano se convirtieron en el estándar de toda +la música impresa, con la excepción de algunos himnarios y cancioneros +en los que la composición tipográfica estaba justificada por su +comodidad y economía, incluso bien entrado el s.XX.}. Hace tan sólo +unas décadas, las partituras se hacían cortando y estampando la música +en una plancha de zinc o estaño en imagen invertida como en un espejo. +La plancha se entintaba, y las depresiones producidas por el grabado y +el estampado retenían la tinta. Se formaba una imagen presionando el +papel contra la plancha. El cortado y estampado se hacía +completamente a mano y era muy fastidioso hacer una corrección, por lo +que el grabado había de ser casi perfecto a la primera. El grabado +era una habilidad fuertemente especializada; un artesano tenía que +cursar unos cinco años de entrenamiento antes de poder obtener el +título de maestro grabador, y se necesitaban otros cinco años para +adquirir una verdadera habilidad en el oficio. + +@quotation +@iftex +@sourceimage{hader-slaan,,7cm,} +@end iftex +@ifnottex +@sourceimage{hader-slaan,,,jpg} +@end ifnottex +@end quotation + +La inspiración de LilyPond proviene de los grabados manuales +tradicionales publicados por los editores de música europeos de y +hasta la primera mitad del s.XX, entre ellos Bärenreiter, Duhem, +Durand, Hofmeister, Peters y Schott. En ocasiones se consideran a +éstos como la cima de la práctica del grabado musical tradicional. +Según hemos estudiado estas ediciones, hemos aprendido una gran +lección sobre el trabajo implícito en una partitura bien trazada, y +los aspectos de ella que queríamos tratar de imitar en LilyPond. + +@c Now all newly printed music is produced with computers. This has +@c obvious advantages: prints are cheaper to make, editorial work can be +@c delivered by email, and the original data can be easily stored. +@c Unfortunately, computer-generated scores rarely match the quality of +@c hand-engraved scores. Instead, computer printouts have a bland, +@c mechanical look, which makes them unpleasant to play from. + +@menu +* Fuentes tipográficas de música:: +* Espaciado óptico:: +* Líneas adicionales:: +* Escalado óptico:: +* ¿Para qué tanto esfuerzo?:: +@end menu + +@node Fuentes tipográficas de música +@unnumberedsubsec Fuentes tipográficas de música +@translationof Music fonts + +Las imágenes de abajo ilustran algunas de las diferencias entre el +grabado musical tradicional y la típica impresión por ordenador. La +imagen de la izquierda presenta un símbolo de bemol procedente de una +edición Bärenreiter grabada a mano, mientras que la imagen de la +derecha representa un símbolo procedente de una edición de la misma +música, publicada en el año 2000. Aunque las dos imágenes están +impresas en el mismo tono de tinta, la versión antigua parece más +oscura: las líneas del pentagrama son más gruesas, y el bemol de +Bärenreiter tiene una apariencia pesada y redonda, casi voluptuosa. +La imagen escaneada de la derecha, en cambio, tiene líneas más finas y +una disposición simple con esquinas afiladas. + +@multitable @columnfractions .25 .25 .25 .25 +@item @tab +@ifnotinfo +@iftex +@sourceimage{baer-flat-gray,,4cm,} +@end iftex +@ifnottex +@sourceimage{baer-flat-gray,,,png} +@end ifnottex + +@tab +@iftex +@sourceimage{henle-flat-gray,,4cm,} +@end iftex +@ifnottex +@sourceimage{henle-flat-gray,,,png} +@end ifnottex + +@end ifnotinfo +@ifinfo +@sourceimage{henle-flat-bw,,,png} +@sourceimage{baer-flat-bw,,,png} +@sourceimage{lily-flat-bw,,,png} +@end ifinfo + + +@item @tab +Bärenreiter (1950) +@tab +Henle (2000) + +@end multitable + +@cindex símbolos musicales +@cindex fuente tipográfica +@cindex negrura +@cindex equilibrio + +Cuando quisimos escribir un programa de ordenador para crear +tipografía musical, no existían fuentes tipográficas musicales que +estuviesen libremente disponibles y que igualaran la elegancia de +nuestras partituras favoritas. Sin desanimarnos, creamos una fuente de +símbolos musicales, apoyándonos en música grabada a mano muy bien +impresa. La experiencia nos ayudó a desarrollar un gusto tipográfico, +y nos hizo apreciar los sutiles detalles del diseño. Sin esa +experiencia, no nos habríamos dado cuenta de lo feas que eran las +fuentes que en un principio habíamos admirado. + +A continuación podemos ver una muestra de dos fuentes tipográficas de +música: el conjunto de arriba es la fuente predeterminada del programa +Sibelius (la fuente @emph{Opus}), y el conjunto inferior es nuestra +propia fuente de LilyPond. + +@quotation +@iftex +@sourceimage{pdf/OpusAndFeta,,,} +@end iftex +@ifnottex +@sourceimage{OpusAndFeta,,,png} +@end ifnottex +@end quotation + +Los símbolos de LilyPond son más pesados y sus pesos son más +consistentes, lo que los hace más fáciles de leer. Las terminaciones +finas, como las de los lados del silencio de negra, no deben finalizar +en puntas afiladas, sino de forma redonda. esto se debe a que las +esquinas afiladas de los punzones de grabado son frágiles y se +desgastan con rapidez al estampar con ellos sobre el metal. Si se +toma en su conjunto, la negrura de la fuente se debe ajustar +cuidadosamente en relación con el grosor de las líneas, las barras y +las ligaduras para dar una impresión general fuerte y pesada pero +equilibrada. + +Observe también que la cabeza de nuestra blanca no es elíptica sino +ligeramente romboidal. El trazo vertical del símbolo del bemol se +asemeja al trazo de un pincel, haciéndose más ancho en la parte +superior. El sostenido y el becuadro son más fáciles de distinguir +desde una cierta distancia porque sus ángulos tienen distinta +inclinación y los trazos verticales son más pesados. + +@node Espaciado óptico +@unnumberedsubsec Espaciado óptico +@translationof Optical spacing + +En el espaciado, la distribución del espacio debe reflejar las +duraciones de las figuras. Sin embargo, como vimos en la suite de +Bach más arriba, muchas partituras modernas se atañen a las duraciones +con precisión matemática, lo que lleva a un resultado pobre. En el +siguiente ejemplo se muestra un motivo impreso dos veces: la primera +vez utilizando espaciado matemático exacto, y la segunda con +correcciones. ¿Cuál prefiere? + +@cindex espaciado óptico + +@lilypond +\paper { + ragged-right = ##t + indent = #0.0 +} + +music = { + c'4 e''4 e'4 b'4 + \stemDown + b'8[ e'' a' e''] + \stemNeutral + e'8[ e'8 e'8 e'8] +} +\score +{ + \music + \layout { + \context { + \Staff + \override NoteSpacing #'stem-spacing-correction = #0.0 + \override NoteSpacing #'same-direction-correction = #0.0 + \override StaffSpacing #'stem-spacing-correction = #0.0 + } + } +} +@end lilypond + +@lilypond +\paper { + ragged-right = ##t + indent = #0.0 +} + +music = { + c'4 e''4 e'4 b'4 | + \stemDown + b'8[ e'' a' e''] + \stemNeutral + e'8[ e'8 e'8 e'8] +} + +\score +{ + \music + \layout { + \context { + \Staff + \override NoteSpacing #'stem-spacing-correction = #0.6 + } + } +} +@end lilypond + +@cindex duraciones regulares +@cindex espaciado regular +@cindex regular, espaciado + +Cada compás de este fragmento utiliza figuras de duración constante. +El espaciado debe reflejarlo. Desgraciadamente, el ojo nos traiciona; +no sólo aprecia la distancia entre la cabeza de las figuras, también +tiene en cuenta la distancia entre las plicas consecutivas. Como +resultado, las notas de una combinación plica arriba @/ plica abajo +deben separarse más, y las notas de una combinación plica abajo @/ +plica arriba se deben colocar más juntas, dependiendo siempre de las +posiciones verticales relativas de las notas. Los dos compases +inferiores están impresos con esta corrección; los dos superiores, por +el contrario, forman conglomerados de notas plica abajo @/ plica +arriba. Un grabador maestro ajustaría el espacio según se necesite +para agradar al ojo. + +Los algoritmos de espaciado de LilyPond tienen incluso en cuenta a las +líneas divisorias que es la razón por la que la última plica dirigida +hacia arriba en el ejemplo bien espaciado ha recibido un poco más de +espacio antes de la línea divisoria para evitar que tenga un aspecto +aglomerado. Una plica hacia abajo no necesitaría este ajuste. + +@node Líneas adicionales +@unnumberedsubsec Líneas adicionales +@translationof Ledger lines + +@cindex líneas adicionales +@cindex colisiones + +Las líneas adicionales presentan un desafío tipográfico: hacen más +difícil juntar los símbolos musicales y deben ser lo bastante claras +como para identificar la altura de la nota de un vistazo. En el +ejemplo siguiente, vemos que las líneas adicionales deben ser más +gruesas que las líneas normales del pentagrama y que un grabador +experto acortará una línea adicional para permitir un espaciado más +cercano con las alteraciones accidentales. Hemos incluido esta +posibilidad en el grabado que hace LilyPond. + +@multitable @columnfractions .25 .25 .25 .25 +@item @tab + +@iftex +@sourceimage{baer-ledger,3cm,,} +@end iftex +@ifnottex +@sourceimage{baer-ledger,,,png} +@end ifnottex + +@tab + +@iftex +@sourceimage{lily-ledger,3cm,,} +@end iftex +@ifnottex +@sourceimage{lily-ledger,,,png} +@end ifnottex + +@end multitable + + +@node Escalado óptico +@unnumberedsubsec Escalado óptico +@translationof Optical sizing + +Puede ser necesario imprimir la música en distintos tamaños. +Originalmente esto se conseguía mediante la creación de punzones de +estampado en cada uno de los tamaños necesarios, lo que significaba +que cada punzón estaba diseñado para presentar el mejor aspecto a ese +tamaño. Con la llegada de las fuentes tipográficas digitales, un solo +diseño se puede escalar matemáticamente a cualquier tamaño, lo que es +sin duda muy conveniente, pero a los tamaños menores los glifos +aparecen en tipo muy delgado. + +En LilyPond hemos creado las fuentes tipográficas en un cierto rango +de pesos que corresponden a la correspondiente variedad de tamaños de +notación musical. He aquí un grabado musical de LilyPond a un tamaño +de pentagrama de 26: + +@quotation +@iftex +@sourceimage{pdf/size26,,23mm,} +@end iftex +@ifnottex +@sourceimage{size26,,,png} +@end ifnottex +@end quotation + +@noindent +y éste es el mismo fragmento a un tamaño de 11, aumentado +posteriormente en un 236% para que se imprima al mismo tamaño que el +ejemplo anterior: + +@quotation +@iftex +@sourceimage{pdf/size11,,23mm,} +@end iftex +@ifnottex +@sourceimage{size11,,,png} +@end ifnottex +@end quotation + +@noindent +A tamaños más pequeños, LilyPond utiliza líneas proporcionalmente más +gruesas de manera que la música siga leyéndose con comodidad. + +@ignore +This also allows staves of different sizes to coexist peacefully when +used together on the same page: + +@c TODO: are the stems in this example the right thickness? How should +@c line weights be scaled for small staves? + +@c Grieg's Violin Sonata Op. 45 +@lilypond[indent=1.5cm] +global = { + \time 6/8 + \key c \minor +} + +\score { + << + \new Staff \with { + fontSize = #-4 + \override StaffSymbol #'staff-space = #(magstep -4) + \override StaffSymbol #'thickness = #(magstep -3) + } + \relative c' { + \global + \set Staff.instrumentName = #"Violin" + c8.(\f^> b16 c d) ees8.(^> d16 c b) + g8.(^> b16 c ees) g8-.^> r r + R2. + } + \new PianoStaff << + \set PianoStaff.instrumentName = #"Piano" + \new Staff \relative c' { + \global + s2. + s4. s8 r8 r16 + 4.^> 8 r r + } + \new Staff \relative c { + \global + \clef "bass" + << + { + \once \override DynamicText #'X-offset = #-3 + 2.~->^\f + 4.~ 8 + } \\ { + 2.~ + 4.~ 8 + } + >> + r8 r16 16 + 4.-> 8 r r + } + >> + >> +} +@end lilypond +@end ignore + +@node ¿Para qué tanto esfuerzo? +@unnumberedsubsec ¿Para qué tanto esfuerzo? +@translationof Why work so hard? + +Los músicos están normalmente más absortos en su interpretación que en +el estudio del aspecto gráfico de una partitura impresa, por lo que +las minucias sobre los detalles tipográficos pueden parecer +académicas. Pero no lo son. La música impresa es material de +interpretación: todo se hace para ayudar al músico a tocar mejor, y +todo aquello que no está claro o no es agradable se convierte en un +obstáculo. + +La música grabada de forma tradicional utiliza símbolos gruesos sobre +pautas de líneas pesadas para producir una notación de aspecto fuerte +y equilibrado que adquiere gran presencia cuando el papel está lejos +del lector: por ejemplo, sobre un atril. Una distribución cuidadosa +del espacio vacío permite que la música se pueda disponer de forma muy +apretada sin aglomerar los símbolos entre sí. El resultado reduce a +un mínimo el número de saltos de página, lo que es una gran ventaja. + +Ésta es una característica común de la tipografía. La disposición +sobre la página debe ser bonita, no sólo por sí misma, sino +especialmente porque ayuda al lector en su cometido. Para las +partituras musicales esto es de doble importancia porque los músicos +tienen una cantidad de atención limitada. Cuanta menos atención +necesitan para leer, más pueden centrarse en tocar la música. En +otras palabras, una mejor tipografía lleva a mejores interpretaciones. + +Estos ejemplos demuestran que la tipografía musical es un arte sutil y +complejo, y que producirla requiere una considerable experiencia, algo +que los músicos no suelen tener. LilyPond es el resultado de nuestro +esfuerzo para llevar a la era de los ordenadores la excelencia gráfica +de la música grabada a mano, y ponerla a disposición de los músicos +normales. Hemos ajustado nuestros algoritmos, el diseño de nuestras +fuentes tipográficas y los valores predeterminados del programa para +producir una impresión que iguala en calidad a la de las antiguas +ediciones que tanto nos gusta ver y a partir de las que tanto nos +gusta tocar. + + +@node Grabado automatizado +@section Grabado automatizado +@translationof Automated engraving + +@cindex grabado automatizado +@cindex automatizado, grabado + +Aquí describimos lo que se necesita para crear un software que pueda +recrear la disposición de las partituras grabadas: un método de +explicar las buenas disposiciones al ordenador, y gran cantidad de +comparaciones detalladas con grabados de música reales. + +@menu +* Concursos de belleza:: +* Mejoras por medio de pruebas:: +* Hacer las cosas bien:: +@end menu + +@node Concursos de belleza +@unnumberedsubsec Concursos de belleza +@translationof Beauty contests + +¿Cómo realizamos las decisiones de formateo? En otras palabras, ¿cuál +de las tres configuraciones elegiríamos para la siguiente ligadura? + +@lilypond +\relative c { + \clef bass + \once \override Slur #'positions = #'(1.5 . 1) + e8[( f] g[ a b d,)] r4 + \once \override Slur #'positions = #'(2 . 3) + e8[( f] g[ a b d,)] r4 + e8[( f] g[ a b d,)] r4 +} +@end lilypond + +Están a nuestra disposición unos cuantos libros sobre el arte del +grabado musical. Desgraciadamente, contienen unas sencillas reglas +prácticas y unos pocos ejemplos. Dichas reglas pueden ser +instructivas, pero están muy lejos de constituir un algoritmo +preparado para poderlo implementar dentro de un programa. Siguiendo +las instrucciones de esta literatura nos lleva a algoritmos con gran +cantidad de excepciones codificadas manualmente. Hacer todo este +análisis de casos es mucho trabajo, y a menudo no todos los casos +están cubiertos completamente: + +@quotation +@iftex +@sourceimage{ross-beam-scan,7cm,,} +@end iftex +@ifnottex +@sourceimage{ross-beam-scan,,,.jpg} +@end ifnottex +@end quotation + +(Fuente de la imagen: Ted Ross, @emph{The Art of Music Engraving}) + +En lugar de intentar escribir detalladas reglas de disposición para +cada uno de los escenarios posibles, únicamente tenemos que describir +los objetivos lo suficientemente bien como para que LilyPond pueda +juzgar el nivel de atractivo visual de varias alternativas. Después, +para cada posible configuración calculamos una puntuación de +fealdad y seleccionamos la configuración menos fea. + +Por ejemplo, tenemos aquí tres configuraciones posibles para la +ligadura, y LilyPond ha otorgado una puntuación a cada una en +@q{puntos de fealdad}. El primer ejemplo obtiene 15.39 puntos por +rozar la cabeza de una de las figuras: + +@lilypond +\relative c { + \clef bass + \once \override Slur #'positions = #'(1.5 . 1) + e8[(_"15.39" f] g[ a b d,)] r4 +} +@end lilypond + +El segundo es mejor, pero la ligadura no comienza ni termina sobre la +cabeza de las notas. Obtiene 1.71 puntos por el lado izquierdo y 9.37 +puntos por el lado derecho, más otros 2 puntos porque la ligadura +asciende mientras la melodía desciende, dando un total de 13.08 puntos +de fealdad: + +@lilypond +\relative c { + \clef bass + \once \override Slur #'positions = #'(2 . 3) + e8[(_"13.08" f] g[ a b d,)] r4 +} +@end lilypond + +La ligadura final obtiene 10.04 puntos por el salto de la derecha y 2 +puntos por la inclinación hacia arriba, pero es la más atractiva de +las tres configuraciones, así que LilyPond selecciona ésta: + +@lilypond +\relative c { + \clef bass + e8[(_"12.04" f] g[ a b d,)] r4 +} +@end lilypond + +Esta técnica es bastante general, y se utiliza para tomar decisiones +óptimas para la configuración de las barras, ligaduras y puntillos de +los acordes, saltos de línea y saltos de página. El resultado de +estas decisiones se puede juzgar por comparación con grabados reales. + +@node Mejoras por medio de pruebas +@unnumberedsubsec Mejoras por medio de pruebas +@translationof Improvement by benchmarking + +La salida de LilyPond ha mejorado paulatinamente con el tiempo, y +continúa mejorando mediante su comparación con partituras grabadas a +mano. + +Por ejemplo, he aquí una línea de una pieza utilizada como banco de +pruebas procedente de una edición realizada a mano (Bärenreiter +BA320): + +@iftex +@sourceimage{baer-sarabande-hires,16cm,,} +@end iftex +@ifnottex +@sourceimage{baer-sarabande,,,png} +@end ifnottex + +@noindent +y el mismo fragmento grabado tal y como lo hacía una versión muy +antigua de LilyPond (versión 1.4, mayo de 2001): + +@iftex +@sourceimage{pdf/lily14-sarabande,16cm,,} +@end iftex +@ifnottex +@sourceimage{lily14-sarabande,,,png} +@end ifnottex + +@noindent +Ciertamente, la salida de LilyPond 1.4 es legible pero una comparación +detenida con la partitura hecha a mano mostraba numerosos errores en +los detalles de formateo: + +@iftex +@sourceimage{lily14-sarabande-annotated-hires,16cm,,} +@end iftex +@ifnottex +@sourceimage{lily14-sarabande-annotated,,,png} +@end ifnottex + +@itemize @bullet +@item hay demasiado espacio antes de la indicación de compás +@item las plicas de las notas unidas por una barra son muy largas +@item los compases segundo y cuarto son muy estrechos +@item la ligadura tiene un aspecto extraño +@item el símbolo del trino es demasiado grande +@item las plicas son delgadas +@end itemize + +@noindent +(También faltaban dos cabezas de nota y varias anotaciones +editoriales, y ¡la altura de una nota era incorrecta!) + +Mediante el ajuste de las reglas de disposición y del diseño de la +fuente tipográfica, la salida ha mejorado de forma considerable. +Compare la misma partitura de referencia y la salida de la versión +actual de LilyPond (@version{}): + +@iftex +@sourceimage{baer-sarabande-hires,16cm,,} +@end iftex +@ifnottex +@sourceimage{baer-sarabande,,,png} +@end ifnottex + +@lilypond[staffsize=17.5,line-width=15.9\cm] +\relative c { + \clef "bass" + \key d \minor + \time 3/4 + \mergeDifferentlyDottedOn + << + { \slurDashed d8.-\flageolet( e16) e4.-\trill( d16 e) } + \\ + { d4_2 a2 } + >> + \slurDashed + 4. e8( d c) + \slurSolid + bes8 g' f e16( f g_1 a_2 bes_3 d,_2) + \slurDashed + cis4.-\trill b8_3( a g) + << + { \slurDashed d'8.( e16) e4.-\trill( d16 e) } + \\ + { 4 a2 } + >> +} +@end lilypond + +@noindent +La salida actual no es un clon de la edición de referencia, pero está +mucho más cerca de la calidad de publicación que la salida más +antigua. + +@node Hacer las cosas bien +@unnumberedsubsec Hacer las cosas bien +@translationof Getting things right + +También podemos medir la capacidad de LilyPond para tomar decisiones +de grabado musical automáticamente comparando su salida con la de un +producto de software comercial. En este caso hemos elegido Finale +2008, que es uno de los editores de partituras comerciales más +populares, especialmente en los Estados Unidos. Sibelius es su +principal competidor y parece tener especial presencia en el mercado +europeo. + +Para nuestra comparación elegimos la fuga en Sol menor del Clave bien +temperado de Bach, libro I, BWV 861, cuyo sujeto inicial es + +@lilypond +\relative c' { + \key g \minor + \clef "treble_8" + r8 d ees g, fis4 g + r8 a16 bes c8 bes16 a bes8 +} +@end lilypond + +@noindent + +Hemos realizado nuestra comparación grabando los últimos siete +compases de la pieza (28 al 34) en Finale y en LilyPond. Éste es el +punto de la pieza en que el sujeto vuelve a aparecer en un estrecho a +tres partes y conduce a la sección conclusiva. En la versión de +Finale, hemos resistido la tentación de hacer cualquier ajuste sobre +la salida predeterminada porque tratamos de mostrar qué cosas hace +bien cada programa sin ayuda. Las únicas manipulaciones de +importancia que hemos hecho ha sido los ajustes del tamaño de la +página para que se corresponda con este ensayo y forzar que la música +quepa en dos sistemas para facilitar la comparación. De forma +predeterminada, Finale habría compuesto dos sistemas de tres compases +cada uno y un último sistema de plena anchura con un solo compás. + +Muchas de las diferencias entre los dos grabados son visibles en los +compases 28 al 29, como se muestra aquí con Finale en primer lugar y +LilyPond en segundo: + +@iftex +@sourceimage{pdf/bwv861mm28-29,14cm,,} +@end iftex +@ifnottex +@sourceimage{bwv861mm28-29,,,png} +@end ifnottex + +@lilypond[staffsize=19.5,line-width=14\cm] +global = { \key g \minor } + +partI = \relative c' { + \voiceOne + fis8 d' ees g, fis4 g + r8 a16 bes c8 bes16 a d8 r r4 +} + +partII = \relative c' { + \voiceTwo + d4 r4 r8 d'16 c bes8 c16 d + ees8 d c ees a, r r4 +} + +partIII = \relative c' { + \voiceOne + r2 r8 d ees g, fis4 g r8 a16 bes c8 bes16 a +} + +partIV = \relative c { + \voiceTwo + d4 r r2 + r8 d ees g, fis4 a +} + +\score { + << + % \set Score.barNumberVisibility = #all-bar-numbers-visible + % required in 2.13 + \set Score.currentBarNumber = #28 + \bar "" + \new PianoStaff << + \new Staff = "RH" << + \global + \new Voice = "voiceI" { \partI } + \new Voice = "voiceII" { \partII } + >> + \new Staff = "LH" + << + \clef "bass" + \global + \new Voice = "voiceIII" { \partIII } + \new Voice = "voiceIV" { \partIV } + >> + >> + >> + \layout { + \context { + \Staff + \remove "Time_signature_engraver" + } + \context { + \PianoStaff + \override StaffGrouper #'staff-staff-spacing #'padding = #1 + } + } +} +@end lilypond + +Entre algunos de los puntos negativos de la salida sin retocar de +Finale se encuentran los siguientes: +@itemize @bullet +@item Casi todas las barras se salen demasiado del pentagrama. +Una barra que apunta hacia el centro del pentagrama debe tener una +longitud de una octava aproximadamente, pero los grabadores acortan +esta longitud cuando la barra apunta hacia fuera de la pauta en música +de varias voces. El barrado de Finale se puede mejorar fácilmente con +su complemento de barras de Patterson, pero hemos decidido saltarnos +ese paso para este ejemplo. +@item Finale no ajusta las posiciones de las cabezas que se bloquean mutuamente, +lo que hace a la música extremadamente difícil de leer cuando las +voces superior e inferior intercambian temporalmente sus posiciones: + +@c KEEP LY +@lilypond +collide = \once \override NoteColumn #'force-hshift = #0 + +\score { + << + \new Voice = "sample" \relative c''{ + \key g \minor + << + { \voiceOne g4 \collide g4 } + \new Voice { \voiceTwo bes \collide bes } + >> + } + \new Lyrics \lyricsto "sample" \lyricmode { "bien " " mal" } + >> +} +@end lilypond + +@item Finale ha colocado todos los silencios en alturas fijas sobre el +pentagrama. El usuario es libre de ajustarlos según se necesite, pero +el programa no hace ningún intento de tener en consideración el +contenido de la otra voz. Por suerte, en este ejemplo no se producen +verdaderas colisiones entre notas y silencios, pero ello tiene que ver +más con las posiciones de las notas que con otra cosa. Dicho de otro +modo, Bach se merece algo más de crédito para evitar una colisión +completa que la que Finale le concede. + +@end itemize + +Este ejemplo no pretende sugerir que Finale no se pueda usar para +producir resultados con calidad de producción. Por el contrario, en +las manos de un usuario hábil puede hacerlo y de hecho lo hace, pero +requiere destreza y tiempo. Una de las diferencias fundamentales +entre LilyPond y los editores de partituras comerciales es que +LilyPond aspira a reducir la cantidad de intervención humana a un +mínimo absoluto, mientras que otros paquetes pretenden ofrecer un +interfaz atractivo en el que hacer este tipo de ediciones. + +Una omisión particularmente flagrante que hemos encontrado por parte +de Finale es un bemol en el compás 33: + +@quotation +@iftex +@sourceimage{pdf/bwv861mm33-34-annotate,7.93cm,,} +@end iftex +@ifnottex +@sourceimage{bwv861mm33-34-annotate,,,png} +@end ifnottex +@end quotation + +@noindent +El símbolo del bemol es necesario para cancelar el becuadro que está +en el mismo compás, pero Finale lo omite porque aparece en una voz +distinta. De forma que además de ejecutar un complemento de barrado y +comprobar el espaciado sobre las cabezas de nota y los silencios, el +usuario también tiene que comprobar las alteraciones entre voces +cruzadas para cada compás si pretende evitar la interrupción de un +ensayo a causa de un error en la edición de la partitura. + +Si está interesado en examinar estos ejemplos con más detalle, el +ejemplo de siete compases completo está al final de este ensayo junto +a cuatro ediciones publicadas distintas. Un examen detenido revela +que hay una cierta variación aceptable entre los grabados manuales, +pero también que LilyPond se compara de forma razonablemente buena con +este rango aceptable. Aún existen algunos inconvenientes en la salida +de LilyPond, por ejemplo, parece ser un tanto agresiva en acortar +algunas de las plicas, así que aún hay lugar para un desarrollo y +ajuste fino posteriores. + +Por supuesto, la tipografía se basa en el juicio humano sobre la +apariencia, de manera que las personas no se pueden sustituir por +completo. Con todo, gran parte del trabajo tedioso se puede +automatizar. Si LilyPond resuelve casi todas las situaciones más +comunes correctamente, esto ya constituirá una enorme ventaja sobre +los programas existentes. Con el transcurso de los años, software se +puede refinar de forma que realice más y más cosas automáticamente de +forma que los ajustes manuales sean también cada vez menos necesarios. +Donde se necesitan ajustes manuales, la estructura de LilyPond está +diseñada teniendo en mente esa flexibilidad. + + +@node Construcción del software +@section Construcción del software +@translationof Building software + +Esta sección describe algunas de las decisiones de programación que +hicimos cuando diseñamos el programa LilyPond. + +@menu +* Representación musical:: +* ¿Qué símbolos grabar?:: +* Arquitectura flexible:: +@end menu + + +@node Representación musical +@unnumberedsubsec Representación musical +@translationof Music representation + +@cindex sintaxis +@cindex recursivas, estructuras + +Idealmente, el formato de entrada de cualquier sistema de formateado +de alto nivel es una descripción abstracta del contenido. En este +caso, eso sería la propia música. Ello presenta un enorme problema: +¿cómo podemos definir qué es la música realmente? En lugar de buscar +una respuesta, le hemos dado la vuelta a la pregunta. Escribimos un +programa capaz de producir música impresa, y luego ajustamos el +formato de forma que sea lo más escueto posible. Cuando el formato ya +no se puede recortar más, por definición nos estamos quedando con el +propio contenido. Nuestro programa sirve como una definición formal +de un documento musical. + +La sintaxis es también el interfaz de usuario de LilyPond, de aquí +que sea tan fácil teclear: + +@example +@{ + c'4 d'8 +@} +@end example + +@noindent +para crear un Do central negra (Do 4) y un Re por encima del Do +central, corchea (Re 4). + +@lilypond[quote] +{ + c'4 d'8 +} +@end lilypond + +A una escala microscópica, esta sintaxis es fácil de usar. A una +escala mayor, la sintaxis necesita también una estructura. ¿De qué +otra forma podríamos introducir piezas complejas como sinfonías u +óperas? La estructura se forma por medio del concepto de expresiones +musicales: combinando pequeños fragmentos de música dentro de otros +más grandes, se puede expresar una música más compleja. Por ejemplo: + +@lilypond[quote,verbatim,fragment,relative=1] +f4 +@end lilypond + +@noindent +Las notas simultáneas se pueden construir encerrándolas dentro de +@code{<<} y @code{>>}: + +@example +<> +@end example + +@lilypond[quote,fragment,relative=1] +\new Voice { <> } +@end lilypond + +@noindent +La expresión se pone en secuencia encerrándola dentro de llaves +@code{@{@tie{}@dots{}@tie{}@}}: + +@example +@{ f4 <> @} +@end example + +@lilypond[quote,relative=1,fragment] +{ f4 <> } +@end lilypond + +@noindent +Esto es también una expresión, y así se puede combinar de nuevo con +otra expresión simultánea (una blanca) utilizando @code{<<}, @code{\\} +y @code{>>}: + +@example +<< g2 \\ @{ f4 <> @} >> +@end example + +@lilypond[quote,fragment,relative=2] +\new Voice { << g2 \\ { f4 <> } >> } +@end lilypond + +Tales estructuras recursivas se pueden especificar limpia y +formalmente dentro de una gramática independiente del contexto. El +código del analizador sintáctico también se genera a partir de esta +gramática. Dicho de otra forma, la sintaxis de LilyPond está definida +claramente y sin ambigüedades. + +Los interfaces de usuario y la sintaxis son aquello que la gente ve y +con lo que trata más frecuentemente. Son, en parte, cuestión de +gusto, y también objeto de mucha discusión. Aunque las discusiones +sobre el gusto tienen su mérito, no son muy productivas. Bajo el +punto de vista más amplio de LilyPond, la importancia de la sintaxis +de la entrada es pequeña: inventarse una sintaxis limpia es fácil, +pero escribir un código de formatead que sea decente es mucho más +difícil. Esto queda ilustrado por la cantidad de líneas que están +dedicadas a los componentes respectivos: el análisis sintáctico y la +representación se llevan menos del 10% del código fuente. + +Cuando estábamos diseñando las estructuras utilizadas dentro de +LilyPond, tomamos algunas decisiones de forma diferente a como es +aparente en otros programas. Consideremos la naturaleza jerárquica de +la notación musical: + +@lilypond[quote,fragment] +<< + \new Staff \relative c'' { + \key g \major + \time 3/4 + d4 g,8 a b c d4 g, g + } + \new Staff \relative c' { + \clef "bass" + \key g \major + 2 a4 b2. + } +>> +@end lilypond + +En este caso, hay notas agrupadas en acordes que están dentro de +compases, que pertenecen a pentagramas. Esto se parece a una +estructura ordenada de cajas anidadas unas dentro de otras: + +@quotation +@iftex +@sourceimage{pdf/nestedboxes,,4cm,} +@end iftex +@ifnottex +@sourceimage{nestedboxes,,,png} +@end ifnottex +@end quotation + +Desgraciadamente la estructura resulta ordenada porque está basada en +algunas suposiciones excesivamente restrictivas. Este extremo se hace +aparente si tenemos en cuenta un ejemplo musical más complejo: + +@lilypond[quote] +\layout { + \context { + \Score + \remove "Timing_translator" + \remove "Default_bar_line_engraver" + } + \context { + \Staff + \consists "Timing_translator" + \consists "Default_bar_line_engraver" + } +} + +\new PianoStaff << + \new Staff = "RH" << + \new Voice = "I" \relative c''' { + \time 3/4 + \voiceOne + \times 6/7 { g8 g g g g g g } + \oneVoice + r4 r4\fermata + } + \new Voice = "II" \relative c' { + \voiceTwo + c4 + \times 4/5 { + 8 f g + \change Staff = "LH" \oneVoice + \stemUp g,( c} + r4 + \override Stem #'cross-staff = ##t + \override Stem #'length = #12 + ) r\fermata + } + >> + \new Staff = "LH" << + \new Voice = "III" \relative c' { + \time 2/4 + \clef "bass" + g4 \stopStaff s + \startStaff s2*2 + } + >> +>> +@end lilypond + +En este ejemplo, los pentagramas parecen iniciarse y terminar a +capricho, las voces saltan de un pentagrama a otro, y las pautas +tienen tipos de compás diferentes. Muchos programas se las ven y se +las desean para reproducir este ejemplo porque están construidos sobre +la estructura de las cajas anidadas. Con LilyPond, por el contrario, +hemos tratado de conservar el formato del código de entrada y la +estructura lo más flexibles posible. + +@node ¿Qué símbolos grabar? +@unnumberedsubsec ¿Qué símbolos grabar? +@translationof What symbols to engrave? + +@cindex grabado +@cindex tipografía +@cindex grabador +@cindex plug-in o complemento +@cindex complemento o plug-in + +El proceso de formateo decide dónde colocar los símbolos. Sin +embargo, esto sólo puede hacerse una vez que se ha decidido @emph{qué} +símbolos se deben imprimir: en otras palabras, qué notación utilizar. + +La notación musical común es un sistema de registro de la música que +ha evolucionado durante los últimos mil años. La forma que es hoy día +de uso común data del Renacimiento temprano. Aunque la forma básica +(es decir, puntos sobre una pauta de cinco líneas) no ha cambiado, los +detalles aún evolucionan para expresar las innovaciones de la notación +contemporánea. De aquí que la notación musical común abarque unos +quinientos años de música. El ámbito de sus aplicaciones comprende +desde melodías monofónicas hasta monstruosos contrapuntos para gran +orquesta. + +¿Cómo podemos ensillar a tal bestia de siete cabezas, y forzarla +dentro de los confines de un programa de ordenador? Nuestra solución +es escindir el problema de la notación (en oposición al grabado, es +decir, a la tipografía) en fragmentos fácilmente digeribles y +programables: cada tipo de símbolo se maneja por parte de un módulo +separado conocido como plug-in. Cada plug-in es completamente modular +e independiente, de manera que cada uno se puede desarrollar y mejorar +por separado Estos plugines reciben el nombre de @code{engraver}s o +@qq{grabadores}, por analogía con los artesanos que traducían las +ideas musicales en símbolos gráficos. + +En el ejemplo siguiente, comenzamos con un plug-in para la cabeza de +las notas, el grabador @code{Note_heads_engraver}. + +@lilypond[quote,ragged-right] +\include "engraver-example.ily" + +\score { + \topVoice + \layout { + \context { + \Voice + \remove "Stem_engraver" + \remove "Phrasing_slur_engraver" + \remove "Slur_engraver" + \remove "Script_engraver" + \remove "Beam_engraver" + \remove "Auto_beam_engraver" + } + \context { + \Staff + \remove "Accidental_engraver" + \remove "Key_engraver" + \remove "Clef_engraver" + \remove "Bar_engraver" + \remove "Time_signature_engraver" + \remove "Staff_symbol_engraver" + \consists "Pitch_squash_engraver" + } + } +} +@end lilypond + +@noindent +A continuación, un grabador del pentagrama, el +@code{Staff_symbol_engraver}, añade la pauta: + +@lilypond[quote,ragged-right] +\include "engraver-example.ily" + +\score { + \topVoice + \layout { + \context { + \Voice + \remove "Stem_engraver" + \remove "Phrasing_slur_engraver" + \remove "Slur_engraver" + \remove "Script_engraver" + \remove "Beam_engraver" + \remove "Auto_beam_engraver" + } + \context { + \Staff + \remove "Accidental_engraver" + \remove "Key_engraver" + \remove "Clef_engraver" + \remove "Bar_engraver" + \consists "Pitch_squash_engraver" + \remove "Time_signature_engraver" + } + } +} +@end lilypond + +@noindent +el grabador de la clave o @code{Clef_engraver} define un punto de +referencia para el pentagrama: + +@lilypond[quote,ragged-right] +\include "engraver-example.ily" + +\score { + \topVoice + \layout { + \context { + \Voice + \remove "Stem_engraver" + \remove "Phrasing_slur_engraver" + \remove "Slur_engraver" + \remove "Script_engraver" + \remove "Beam_engraver" + \remove "Auto_beam_engraver" + } + \context { + \Staff + \remove "Accidental_engraver" + \remove "Key_engraver" + \remove "Bar_engraver" + \remove "Time_signature_engraver" + } + } +} +@end lilypond + +@noindent +y el grabador de las plicas @code{Stem_engraver} añade las plicas. + +@lilypond[quote,ragged-right] +\include "engraver-example.ily" + +\score { + \topVoice + \layout { + \context { + \Voice + \remove "Phrasing_slur_engraver" + \remove "Slur_engraver" + \remove "Script_engraver" + \remove "Beam_engraver" + \remove "Auto_beam_engraver" + } + \context { + \Staff + \remove "Accidental_engraver" + \remove "Key_engraver" + \remove "Bar_engraver" + \remove "Time_signature_engraver" + } + } +} +@end lilypond + +@noindent +El grabador @code{Stem_engraver} que traza las plicas recibe una +notificación por cada nota que le llega. Cada vez que se ve la cabeza +de una nota (o más, en el caso de un acorde), se crea un objeto plica +y se conecta a la cabeza. Añadiendo grabadores para las barras, +ligaduras, acentos, alteraciones, líneas divisorias, la indicación de +compás y la armadura, obtenemos un fragmento de notación musical +completo. + +@lilypond[quote,ragged-right] +\include "engraver-example.ily" +\score { \topVoice } +@end lilypond + +@cindex polifonía +@cindex grabado de varias voces +@cindex contextos + +Este sistema funciona bien para la música a una voz, pero ¿qué tal +para la polifonía? En la notación polifónica, muchas voces pueden +llegar a compartir el mismo pentagrama. + +@lilypond[quote,ragged-right] +\include "engraver-example.ily" +\new Staff << \topVoice \\ \botVoice >> +@end lilypond + +En esta situación, las alteraciones accidentales y la pauta se +comparten, pero las plicas, ligaduras, barras, etc., son privadas para +cada voz. De aquí que los grabadores deban estar agrupados. Los +grabadores de la cabeza de las notas, plicas, ligaduras, etc., van a +un grupo llamado @q{contexto de voz}, mientras que los grabadores de +la armadura, las alteraciones, los compases, etc., van a un grupo +llamado @q{contexto de pauta}. En el caso de la polifonía, un solo +contexto de pauta contiene más de un contexto de voz. De forma +similar, varios contextos de pentagrama se pueden reunir dentro de un +único contexto de partitura. El contexto de partitura es el contexto +de notación del nivel más alto que hay. + +@lilypond[quote,ragged-right] +\include "engraver-example.ily" +\score { + << + \new Staff << \topVoice \\ \botVoice >> + \new Staff << \pah \\ \hoom >> + >> +} +@end lilypond + +@seealso +Referencia de funcionamiento interno: +@rinternals{Contexts}. + +@node Arquitectura flexible +@unnumberedsubsec Arquitectura flexible +@translationof Flexible architecture + +Al principio escribimos el programa LilyPond completamente en el +lenguaje de programación C++; la funcionalidad del programa estaba +grabada en piedra por parte de los desarrolladores. Se comprobó que +esto no era satisfactorio por unas cuantas razones: + +@itemize + +@item Cuando LilyPond comete errores, los usuarios necesitan sobreescribir +las decisiones de formateo. Por tanto, el usuario debe tener acceso +al motor de formateo. De aquí que las reglas y los ajustes +predeterminados no se puedan fijar por nuestra parte en el tiempo de +compilación sino que deben estar accesibles para los usuarios en el +tiempo de ejecución. + +@item El grabado musical es cuestión de juicio visual, y por tanto está en +el terreno del buen gusto. Por más entendidos que pretendamos ser, +nuestros usuarios siempre podrían discrepar de nuestras decisiones +personales. Por ello, las definiciones del estilo tipográfico debe +también ser accesible para el usuario. + +@item Finalmente, nos encontramos refinando continuamente los algoritmos de +formateo, por lo que necesitamos un enfoque flexible para las reglas. +El lenguaje C++ fuerza un cierto método de agrupación de las reglas +que no está preparado para aplicarse al formateo de la notación +musical. + +@end itemize + +@cindex Scheme, lenguaje de programación + +Estos programas se han solucionado integrando un intérprete para el +lenguaje de programación Scheme y reescribiendo partes de LilyPond en +Scheme. La arquitectura de formateo actual está construida alrededor +de la noción de objetos gráficos, descritos por medio de variables y +funciones de Scheme. Esta arquitectura coordina las reglas de +formateo, el estilo tipográfico y las decisiones de formateo +individuales. El usuario tiene acceso directo a la mayoría de esos +controles. + +Las variables de Scheme controlan las decisiones de disposición en la +página. Por ejemplo, muchos objetos gráficos tienen una variable de +dirección que codifica la elección entre arriba y abajo (o izquierda y +derecha). A continuación vemos dos acordes, con acentos y símbolos de +arpegio. En el primer acorde, los objetos gráficos tienen todas las +direcciones hacia abajo (o hacia la izquierda). El segundo acorde +tiene todas las direcciones hacia arriba (o hacia la derecha). + +@lilypond[quote,ragged-right] +\score { + \relative c' { + \stemDown 4_>-\arpeggio + \override Arpeggio #'direction = #RIGHT + \stemUp 4^>-\arpeggio + } + \layout { + \context { + \Score + \override SpacingSpanner #'spacing-increment = #3 + \override TimeSignature #'transparent = ##t + } + } +} +@end lilypond + +@cindex partitura, formateo de +@cindex formateo de una partitura +@cindex formateo, reglas de + +@noindent +El proceso de dar formato a una partitura comprende la lectura y +escritura de las variables de los objetos gráficos. Algunas variables +tienen un valor preestablecido. Por ejemplo, el grosor de muchas +líneas (una característica del estilo tipográfico) es una variable con +un valor preestablecido. Somos libres de alterar este valor, dando a +nuestra partitura una impresión tipográfica distinta. + +@lilypond[quote,ragged-right] +fragment = { + \clef bass f8 as8 + c'4-~ c'16 as g f e16 g bes c' des'4 +} +<< + \new Staff \fragment + \new Staff \with { + \override Beam #'beam-thickness = #0.3 + \override Stem #'thickness = #0.5 + \override Bar #'thickness = #3.6 + \override Tie #'thickness = #2.2 + \override StaffSymbol #'thickness = #3.0 + \override Tie #'extra-offset = #'(0 . 0.3) + } + \fragment +>> +@end lilypond + +Las reglas de formateado también son variables preestablecidas: cada +objeto tiene variables que contienen procedimientos. Estos +procedimientos realizan el formateo propiamente dicho, y mediante la +sustitución de unos u otros, podemos modificar el aspecto de los +objetos. En el ejemplo siguiente, la regla que gobierna qué objetos +de cabeza se utilizan para producir el símbolo de la cabeza, se cambia +a lo largo del fragmento musical. + +@lilypond[quote,ragged-right] +#(set-global-staff-size 30) + +#(define (mc-squared grob orig current) + (let* ((interfaces (ly:grob-interfaces grob)) + (pos (ly:grob-property grob 'staff-position))) + (if (memq 'note-head-interface interfaces) + (begin + (ly:grob-set-property! grob 'stencil + (grob-interpret-markup grob + (make-lower-markup 0.5 + (case pos + ((-5) "m") + ((-3) "c ") + ((-2) (make-smaller-markup (make-bold-markup "2"))) + (else "bla"))))))))) + +\new Voice \relative c' { + \stemUp + \set autoBeaming = ##f + \time 2/4 + 4 + \once \override NoteHead #'stencil = #note-head::brew-ez-stencil + \once \override NoteHead #'font-size = #-7 + \once \override NoteHead #'font-family = #'sans + \once \override NoteHead #'font-series = #'bold + 4 + \once \override NoteHead #'style = #'cross + 4 + \applyOutput #'Voice #mc-squared + 4 + << + { d8[ es-( fis^^ g] fis2-) } + \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 } + >> +} +@end lilypond + + + +@node Poner a LilyPond a trabajar +@section Poner a LilyPond a trabajar +@translationof Putting LilyPond to work + +@cindex simple, ejemplos +@cindex ejemplos simples + +Escribimos LilyPond como un experimento sobre cómo condensar el arte +del grabado musical dentro de un programa de ordenador. Gracias a +todo ese duro trabajo, ahora el programa se puede utilizar para que +realice muchas tareas útiles. La aplicación más simple es la +impresión de notas. + +@lilypond[quote,relative=1] +{ + \time 2/4 + c4 c g'4 g a4 a g2 +} +@end lilypond + +@noindent +Añadiendo nombres de acorde y la letra de la canción obtenemos una +hoja guía de acordes. + +@c KEEP LY +@lilypond[quote,ragged-right] +<< + \chords { c2 c f2 c } + \new Staff + \relative c' { + \time 2/4 + c4 c g' g a a g2 + } + \addlyrics { Cam -- pa ni -- ta del lu -- gar } +>> +@end lilypond + +También puede imprimirse notación polifónica y música para piano. El +ejemplo siguiente combina unas pocas construcciones algo más exóticas. + +@lilypond[quote,line-width=15.9\cm] +\header { + title = "Screech and boink" + subtitle = "Random complex notation" + composer = "Han-Wen Nienhuys" +} + +\score { + \context PianoStaff << + \new Staff = "up" { + \time 4/8 + \key c \minor + << { + \revert Stem #'direction + \change Staff = down + \set subdivideBeams = ##t + g16.[ + \change Staff = up + c'''32 + \change Staff = down + g32 + \change Staff = up + c'''32 + \change Staff = down + g16] + \change Staff = up + \stemUp + \set followVoice = ##t + c'''32([ b''16 a''16 gis''16 g''32)] + } \\ { + s4 \times 2/3 { d'16[ f' g'] } as'32[ b''32 e'' d''] + } \\ { + s4 \autoBeamOff d''8.. f''32 + } \\ { + s4 es''4 + } >> + } + + \new Staff = "down" { + \clef bass + \key c \minor + \set subdivideBeams = ##f + \override Stem #'french-beaming = ##t + \override Beam #'beam-thickness = #0.3 + \override Stem #'thickness = #4.0 + g'16[ b16 fis16 g16] + << \makeClusters { + as16 + + + } \\ { + \override Staff.Arpeggio #'arpeggio-direction =#down + 4\arpeggio + } + >> } + >> + \midi { + \context { + \Score + tempoWholesPerMinute = #(ly:make-moment 60 8) + } + } + \layout { + \context { + \Staff + \consists Horizontal_bracket_engraver + } + } +} +@end lilypond + +Los fragmentos que se muestran arriba se han escrito a mano, pero esto +no es obligatorio. Puesto que el motor de formateado es casi +totalmente automático, puede servir como un medio de salida para otros +programas que manipulan música. Por ejemplo, también se puede usar +para convertir bases de datos de fragmentos musicales en imágenes +orientadas a su utilización en páginas web y presentaciones +multimedia. + +Este manual muestra también una aplicación: el formato de entrada es +texto, y puede ser por tanto fácilmente empotrado dentro de otros +formatos basados en texto como @LaTeX{}, HTML, o en el caso de este +manual, Texinfo. Utilizando el programa @command{lilypond-book}, que +viene incluido con LilyPond, los fragmentos de entrada se pueden +reemplazar por imágenes de la música en los archivos de salida PDF o +HTML resultantes. Otro ejemplo es la extensión (de terceras partes) +OOoLilyPond para OpenOffice.org, que hace de la inclusión de ejemplos +musicales dentro de los documentos, una tarea extremadamente sencilla. + +Para ver más ejemplos de LilyPond en acción, la documentación +completa, y el programa propiamente dicho, visite nuestra página +principal: www.lilypond.org. + +@page +@node Ejemplos de partituras (BWV 861) +@section Ejemplos de partituras (BWV 861) +@translationof Engraved examples (BWV 861) + +Esta sección contiene cuatro grabados musicales de referencia y dos +versiones grabadas por ordenador de la fuga en Sol menor del libro I +del Clave Bien Temperado, BWV 861, de Bach (los últimos siete +compases). + +@noindent +Bärenreiter BA5070 (Neue Ausgabe Sämtlicher Werke, Serie V, Band 6.1, +1989): + +@iftex +@sourceimage{bwv861-baer,16cm,,} +@end iftex +@ifnottex +@sourceimage{bwv861-baer-small,,,png} +@end ifnottex + +@noindent +Bärenreiter BA5070 (Neue Ausgabe Sämtlicher Werke, Serie V, Band 6.1, +1989), una fuente musical alternativa. Aparte de las diferencias +textuales, esto presenta ligeras variaciones en las decisiones de +grabado, incluso de la misma editorial y edición: + +@iftex +@sourceimage{bwv861-baer-alt,16cm,,} +@end iftex +@ifnottex +@sourceimage{bwv861-baer-alt-small,,,png} +@end ifnottex + +@noindent +Breitkopf & Härtel, editado por Ferruccio Busoni (Wiesbaden, 1894), +disponible también a través de la Biblioteca Musical Petrucci (IMSLP +#22081). Las indicaciones editoriales (digitaciones, articulaciones, +etc.) se han suprimido para una comparación más clara con las otras +ediciones que presentamos aquí: + +@iftex +@sourceimage{bwv861-breitkopf,16cm,,} +@end iftex +@ifnottex +@sourceimage{bwv861-breitkopf-small,,,png} +@end ifnottex + +@noindent +Edición Bach-Gesellschaft (Leipzig, 1866), disponible a través de la +Biblioteca Musical Petrucci (IMSPL #02221): + +@iftex +@sourceimage{bwv861-gessellschaft,16cm,,} +@end iftex +@ifnottex +@sourceimage{bwv861-gessellschaft-small,,,png} +@end ifnottex + +@noindent +Finale 2008: + +@iftex +@sourceimage{pdf/bwv861-finale2008a,,,} +@end iftex +@ifnottex +@sourceimage{bwv861-finale2008a,,,png} +@end ifnottex + +@sp 4 +@noindent +LilyPond, versión @version{}: + +@lilypond[staffsize=14.3,line-width=15.9\cm] +global = {\key g \minor} + +partI = \relative c' { + \voiceOne + fis8 d' ees g, fis4 g + r8 a16 bes c8 bes16 a d8 r r4 + r2 r8 d16 ees f8 ees16 d + ees4 ~ ees16 d c bes a4 r8 ees'16 d + c8 d16 ees d8 e16 fis g8 fis16 g a4 ~ + a8 d, g f ees d c bes + a2 g\fermata \bar "|." +} + +partII = \relative c' { + \voiceTwo + d4 r4 r8 d'16 c bes8 c16 d + ees8 d c ees a, r r4 + r8 fis16 g a8 g16 fis g2 ~ + g2 r8 d' ees g, + fis4 g r8 a16 bes c8 bes16 a + bes4. 8 r r + 4 d2 +} +partIII = \relative c' { + \voiceOne + r2 r8 d ees g, fis4 g r8 a16 bes c8 bes16 a + bes2 ~ bes8 b16 a g8 a16 b + c4 r r2 + R1 + r8 d ees g, fis4 g + r8 a16 bes c8 bes16 a b2 +} +partIV = \relative c { + \voiceTwo + d4 r r2 + r8 d ees g, fis4 a + d,8 d'16 c bes8 c16 d ees2 ~ + ees8 ees16 d c8 d16 ees fis,8 a16 g fis8 g16 a + d,8 d'16 c bes8 c16 d ees8 c a fis' + g f ees d c bes a g + c a d d, g2\fermata +} + +\score { + << + % \set Score.barNumberVisibility = #all-bar-numbers-visible + % required in 2.13 + \set Score.currentBarNumber = #28 + \bar "" + \new PianoStaff << + \new Staff = "RH" << + \global + \new Voice = "voiceI" { \partI } + \new Voice = "voiceII" { \partII } + >> + + \new Staff = "LH" << + \clef "bass" + \global + \new Voice = "voiceIII" { \partIII } + \new Voice = "voiceIV" { \partIV } + >> + >> + >> + \layout { + \context { + \Staff + \remove "Time_signature_engraver" + } + \context { + \PianoStaff + \override StaffGrouper #'staff-staff-spacing #'padding = #1 + } + } +} +@end lilypond