From: Han-Wen Nienhuys Date: Tue, 26 Feb 2008 02:33:54 +0000 (-0300) Subject: Merge branch 'master' of ssh+git://hanwen@git.sv.gnu.org/srv/git/lilypond X-Git-Tag: release/2.11.42-1~21^2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=9a14a394dfa23b38ab78c3eb09a2d7b5f504fa35;hp=82e98bb5d304b87749261f2054b219a5ab78433f;p=lilypond.git Merge branch 'master' of ssh+git://hanwen@git.sv.gnu.org/srv/git/lilypond --- diff --git a/Documentation/es/user/editorial.itely b/Documentation/es/user/editorial.itely index cc9399afcc..cc62b270ce 100644 --- a/Documentation/es/user/editorial.itely +++ b/Documentation/es/user/editorial.itely @@ -1,6 +1,6 @@ @c -*- coding: utf-8; mode: texinfo; -*- @ignore - Translation of GIT committish: 459d5b872a370b53f61e747784fb56cf23f56e4b + Translation of GIT committish: e5ddf62fed87ae3b1a0b28fa6842e10f39734fb7 When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -9,99 +9,15 @@ @node Editorial annotations @section Editorial annotations +@lilypondfile[ragged-right,line-width=16\cm,staffsize=16,quote] +{editorial-headword.ly} + @menu -* Note heads:: * Inside the staff:: * Outside the staff:: @end menu -@node Note heads -@subsection Note heads - -@menu -* Easy notation note heads:: -* Shape note heads:: -* Improvisation:: -* Special noteheads:: -@end menu - -@node Easy Notation note heads -@unnumberedsubsubsec Easy Notation note heads - -@cindex notas, cabezas de, estudio -@cindex notas, cabezas de, notación simplificada -@cindex simplificada, notación -@cindex Hal Leonard - -Las cabezas @q{easy play} (fáciles de tocar) tienen el nombre de la nota (en inglés) dentro de la cabeza. Se usa -en la música para principiantes - -@lilypond[quote,ragged-right,verbatim,fragment,staffsize=26] - \easyHeadsOn - c'2 e'4 f' | g'1 -@end lilypond - -La orden @code{\easyHeadsOn} sobreescribe los ajustes del objeto -@internalsref{NoteHead}. Para que las letras sean legibles, se tienen que imprimir -en un tamaño grande de la tipografía. Para imprimir con un tamaño de tipografía mayor, consulte -@ref{Setting the staff size}. - -@predefined - -@funindex \easyHeadsOn -@code{\easyHeadsOn} - - -@node Shape note heads -@unnumberedsubsubsec Shape note heads - -@cindex notas, cabezas de, con formas - -En notación de cabezas con forma, la forma de la cabeza corresponde -a la función armónica de una nota dentro de la escala. Esta notación se hizo popular -en los libros americanos de canciones durante el s.XIX. - -Las cabezas con formas se pueden producir estableciendo @code{\aikenHeads} o -@code{\sacredHarpHeads}, según el estilo deseado. - -@lilypond[verbatim,relative=1,fragment] - \aikenHeads - c8 d4 e8 a2 g1 - \sacredHarpHeads - c8 d4. e8 a2 g1 -@end lilypond - -Las formas se determinan en función del grado de la escala, donde la tónica -está determinada por la instrucción @code{\key} - -@funindex \key -@funindex shapeNoteStyles -@funindex \aikenHeads -@funindex \sacredHarpHeads - -Las cabezas con formas están programadas a través de la propiedad @code{shapeNoteStyles}. -Su valor es un vector de símbolos. El elemento en el lugar k indica qué estilo -usa el grado k de la escala. Son posibles las combinaciones -arbitrarias, p.ej.: - -@lilypond[verbatim,relative=1,fragment] - \set shapeNoteStyles = ##(cross triangle fa #f mensural xcircle diamond) - c8 d4. e8 a2 g1 -@end lilypond - - -@node Improvisation -@unnumberedsubsubsec Improvisation - -UNTRANSLATED NODE: IGNORE ME - - -@node Special noteheads -@unnumberedsubsubsec Special noteheads - -UNTRANSLATED NODE: IGNORE ME - @node Inside the staff @subsection Inside the staff @@ -113,7 +29,6 @@ UNTRANSLATED NODE: IGNORE ME * Hidden notes:: * Coloring objects:: * Parentheses:: -* Ambitus:: * Stems:: @end menu @@ -176,34 +91,46 @@ de nota en música monofónica, @seealso -Referencia del programa: @internalsref{Fingering}. +Fragmentos de código: @lsrdir{Editorial,Editorial-annotations}. -Ejemplos: @lsr{expressive,fingering-chords.ly} +Referencia de funcionamiento interno: @internalsref{Fingering}. @node Hidden notes -@unnumberedsubsubsec Hidden notes +@subsubsection Hidden notes @cindex ocultas, notas @cindex invisibles, notas @cindex transparentes, notas - @funindex \hideNotes @funindex \unHideNotes + Las notas ocultas (o invisibles, o transparentes) pueden ser de utilidad en la preparación de ejercicios de teoría o de composición. @lilypond[quote,ragged-right,verbatim,relative=2,fragment] -c4 d4 +c4 d \hideNotes -e4 f4 +e4 f \unHideNotes -g4 a +g a +\hideNotes +b +\unHideNotes +c @end lilypond +@predefined + +@code{\hideNotes}, @code{\unHideNotes} + +@seealso + +Fragmentos de código: @lsrdir{Editorial,Editorial-annotations}. + @node Coloring objects -@unnumberedsubsubsec Coloring objects +@subsubsection Coloring objects Se pueden asignar colores a los objetos individuales. Podemos usar los nombres de color que se relacionan en la @ref{List of colors}. diff --git a/Documentation/es/user/lilypond-learning.tely b/Documentation/es/user/lilypond-learning.tely index 456aea9525..bfb081a744 100644 --- a/Documentation/es/user/lilypond-learning.tely +++ b/Documentation/es/user/lilypond-learning.tely @@ -1,6 +1,6 @@ \input texinfo @c -*- coding: utf-8; mode: texinfo; -*- @ignore - Translation of GIT committish: e9a620b6e7e1c0a1bf39b7063ff1744ad61efb08 + Translation of GIT committish: 993fc5189dc039afd51a98df9b71adf59f2ab20f When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -10,6 +10,8 @@ @documentencoding UTF-8 @documentlanguage es +@include macros.itexi + @iftex @afourpaper @c don't replace quotes with directed quotes @@ -82,21 +84,7 @@ Free Documentation License''. @vskip 20pt -@lilypond[ragged-right] -\score { - \context Lyrics { - \override Score.RehearsalMark #'self-alignment-X = #LEFT - \override Score.RehearsalMark #'font-size = #-2 - \mark #(ly:export (string-append - "(For LilyPond version " (lilypond-version) ")")) - s2 - } - \layout { - indent = 0.0\pt - } -} -@end lilypond - +Para LilyPond versión @version{} @end titlepage @copying @@ -168,10 +156,7 @@ Free Documentation License''. @top GNU LilyPond --- learning manual @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX. -This is the program usage manual for GNU LilyPond 2.11.x series. -@ifhtml -(See the bottom of this page for the exact version number). -@end ifhtml +Éste es el manual de aprendizaje de GNU LilyPond, versión @version{}. @cindex web site @cindex URL @@ -201,8 +186,6 @@ Apéndices @contents -@include macros.itexi - @include preface.itely @include introduction.itely @include tutorial.itely diff --git a/Documentation/es/user/lilypond-program.tely b/Documentation/es/user/lilypond-program.tely index 30c2f701c3..35d88f2e2c 100644 --- a/Documentation/es/user/lilypond-program.tely +++ b/Documentation/es/user/lilypond-program.tely @@ -1,6 +1,6 @@ \input texinfo @c -*- coding: utf-8; mode: texinfo; -*- @ignore - Translation of GIT committish: 9919203607214decd1775e05a36ecf8261e4a5a6 + Translation of GIT committish: 993fc5189dc039afd51a98df9b71adf59f2ab20f When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -10,6 +10,8 @@ @documentencoding UTF-8 @documentlanguage en +@include macros.itexi + @iftex @afourpaper @c don't replace quotes with directed quotes @@ -54,6 +56,23 @@ Este documento está disponible también en formato Copyright @copyright{} 1999--2007 por los autores +@emph{The translation of the following copyright notice is provided +for courtesy to non-English speakers, but only the notice in English +legally counts.} + +@emph{La traducción de la siguiente nota de copyright se ofrece como +cortesía para las personas de habla no inglesa, pero únicamente la +nota en inglés tiene validez legal.} + +@quotation +Se otorga permiso para copiar, distribuir y/o modificar este documento +bajo los términos de la Licencia de Documentación Libre de GNU, versión 1.1 +o cualquier versión posterior publicada por la Free Software Foundation; +sin ninguna de las secciones invariantes. +Se incluye una copia de esta licencia dentro de la sección titulada ``Licencia +de Documentación Libre de GNU''. +@end quotation + @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 @@ -65,26 +84,30 @@ Free Documentation License''. @vskip 20pt -@lilypond[ragged-right] -\score { - \context Lyrics { - \override Score.RehearsalMark #'self-alignment-X = #LEFT - \override Score.RehearsalMark #'font-size = #-2 - \mark #(ly:export (string-append - "(For LilyPond version " (lilypond-version) ")")) - s2 - } - \layout { - indent = 0.0\pt - } -} -@end lilypond - +Para LilyPond versión @version{} @end titlepage + @copying Copyright @copyright{} 1999--2007 por los autores +@emph{The translation of the following copyright notice is provided +for courtesy to non-English speakers, but only the notice in English +legally counts.} + +@emph{La traducción de la siguiente nota de copyright se ofrece como +cortesía para las personas de habla no inglesa, pero únicamente la +nota en inglés tiene validez legal.} + +@quotation +Se otorga permiso para copiar, distribuir y/o modificar este documento +bajo los términos de la Licencia de Documentación Libre de GNU, versión 1.1 +o cualquier versión posterior publicada por la Free Software Foundation; +sin ninguna de las secciones invariantes. +Se incluye una copia de esta licencia dentro de la sección titulada ``Licencia +de Documentación Libre de GNU''. +@end quotation + @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 @@ -100,6 +123,23 @@ Este archivo es la documentación de la utilización del programa GNU LilyPond. Copyright 1999--2007 por los autores +@emph{The translation of the following copyright notice is provided +for courtesy to non-English speakers, but only the notice in English +legally counts.} + +@emph{La traducción de la siguiente nota de copyright se ofrece como +cortesía para las personas de habla no inglesa, pero únicamente la +nota en inglés tiene validez legal.} + +@quotation +Se otorga permiso para copiar, distribuir y/o modificar este documento +bajo los términos de la Licencia de Documentación Libre de GNU, versión 1.1 +o cualquier versión posterior publicada por la Free Software Foundation; +sin ninguna de las secciones invariantes. +Se incluye una copia de esta licencia dentro de la sección titulada ``Licencia +de Documentación Libre de GNU''. +@end quotation + @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 @@ -115,10 +155,7 @@ Free Documentation License''. @top GNU LilyPond --- program usage @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX. -El presente documento es el manual de utilización del programa GNU LilyPond, serie 2.11.x. -@ifhtml -(Consulte el final de la presente página para ver el número exacto de la versión). -@end ifhtml +El presente documento es el manual de utilización del programa GNU LilyPond, versión @version{}. @cindex web site @cindex URL @@ -144,8 +181,6 @@ Apéndices @contents -@include macros.itexi - @include install.itely @include setup.itely @include running.itely diff --git a/Documentation/es/user/lilypond.tely b/Documentation/es/user/lilypond.tely index 0ac45d902b..c76de7ac1b 100644 --- a/Documentation/es/user/lilypond.tely +++ b/Documentation/es/user/lilypond.tely @@ -1,6 +1,6 @@ \input texinfo @c -*- coding: utf-8; mode: texinfo; -*- @ignore - Translation of GIT committish: 1859194a9f46a8886166cafee0e450b39fc5a963 + Translation of GIT committish: 993fc5189dc039afd51a98df9b71adf59f2ab20f When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -10,6 +10,8 @@ @documentencoding UTF-8 @documentlanguage es +@include macros.itexi + @iftex @afourpaper @c don't replace quotes with directed quotes @@ -111,21 +113,7 @@ Free Documentation License''. @vskip 20pt -@lilypond[ragged-right] -\score { - \context Lyrics { - \override Score.RehearsalMark #'self-alignment-X = #LEFT - \override Score.RehearsalMark #'font-size = #-2 - \mark #(ly:export (string-append - "(For LilyPond version " (lilypond-version) ")")) - s2 - } - \layout { - indent = 0.0\pt - } -} -@end lilypond - +Para LilyPond versión @version{} @end titlepage @copying @@ -195,10 +183,7 @@ Free Documentation License''. @top GNU LilyPond --- El tipografiador de música @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX. -Éste es el manual del usuario para GNU LilyPond de la serie 2.11.x. -@ifhtml -(Consulte el final de esta página para ver el número exacto de la versión). -@end ifhtml +Éste es el manual del usuario para GNU LilyPond versión @version{}. @cindex web, sitio @cindex URL @@ -235,8 +220,6 @@ Apéndices @contents -@include macros.itexi - @include notation.itely @include specialist.itely diff --git a/Documentation/es/user/macros.itexi b/Documentation/es/user/macros.itexi index f8bc7cc68a..7a860d85fb 100644 --- a/Documentation/es/user/macros.itexi +++ b/Documentation/es/user/macros.itexi @@ -6,6 +6,10 @@ version that you are working on. See TRANSLATION for details. @end ignore +@macro version +@value{version} +@end macro + @c ***** Displaying text ***** @c we need this since @q{\} doesn't work with makeinfo 4.8 -- diff --git a/Documentation/es/user/simultaneous.itely b/Documentation/es/user/simultaneous.itely index c9a27b10c4..638ffb82b1 100644 --- a/Documentation/es/user/simultaneous.itely +++ b/Documentation/es/user/simultaneous.itely @@ -1,6 +1,6 @@ @c -*- coding: utf-8; mode: texinfo; -*- @ignore - Translation of GIT committish: 459d5b872a370b53f61e747784fb56cf23f56e4b + Translation of GIT committish: e5ddf62fed87ae3b1a0b28fa6842e10f39734fb7 When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -9,6 +9,9 @@ @node Simultaneous notes @section Simultaneous notes +@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16] +{simultaneous-headword.ly} + La polifonía en música hace referencia a tener más de una voz en una pieza cualquiera de música. En LilyPond la polifonía hace referencia a tener más de una voz en el mismo pentagrama. @@ -23,12 +26,12 @@ a tener más de una voz en el mismo pentagrama. @subsection Single voice @menu -* Chords:: +* Chorded notes:: * Clusters:: @end menu -@node Chords -@unnumberedsubsubsec Chords +@node Chorded notes +@subsubsection Chorded notes @cindex Acordes @@ -40,11 +43,27 @@ articulaciones, como si fueran simples notas. 4 8 @end lilypond -Para ver más información sobre los acordes, consulte @ref{Chord names}. +Para ver más información sobre los acordes, consulte @ref{Introducing chord +names}. + +@seealso + +Glosario musical: @rglos{chord}. + +Referencia de la notación: @ref{Introducing chord names}. + +Fragmentos de código: @lsrdir{Simultaneous,Simultaneous-notes}. + +@knownissues + +Las expresiones musicales como @code{<< @{ g8 e8 @} a4 >>} no se +imprimen con exactitud. Utilice @code{8 8} en su lugar. + @node Clusters -@unnumberedsubsubsec Clusters +@subsubsection Clusters + UNTRANSLATED NODE: IGNORE ME diff --git a/Documentation/es/user/tutorial.itely b/Documentation/es/user/tutorial.itely index 920d0d4eb8..a235205448 100644 --- a/Documentation/es/user/tutorial.itely +++ b/Documentation/es/user/tutorial.itely @@ -1,66 +1,40 @@ @c -*- coding: utf-8; mode: texinfo; -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: 4d9a81ea05bea52229dd9045b9eceecd64dbe61d + Translation of GIT committish: e344dd780c20717963ed77658f3ce169822bc5cb When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @end ignore @ignore -Tutorial guidelines: +Tutorial guidelines: (different from policy.txt!) - unless you have a really good reason, use either - @l ilypond[quote,ragged-right,verbatim] + @lilypond[verbatim,quote,ragged-right] or - @l ilypond[quote,ragged-right,verbatim,fragment,relative=2] - (without spaces) + @lilypond[verbatim,quote,ragged-right,fragment,relative=2] + Don't use any other relative=X commands (make it a non-fragment example), and don't use fragment without relative=2. -- use "aes" and "ees" instead of "as" and "aes". I know it's not - correct Dutch naming, but let's not confuse people with this until - we get to the Basic notation chapter. -@end ignore +- use "aes" and "ees" instead of "as" and "es". I know it's not + correct Dutch naming, but let's not confuse people with this + until we get to the Basic notation chapter. +- Add "Music Glossary: @rglos{foo}" to the _top_ of the relevant + portions of the tutorial. -@c old info that will probably be removed. -@c TODO: -@c * more details about running lilypond; error messages, -@c compiling/viewing (emacs?) -@c * where to go from First steps+More basics? - -@c wherever possible, do not include index entries here; the -@c index should point to stuff in the reference manual. -gp +@end ignore -@c Your first LilyPond score in 10 minutes? @node Tutorial @chapter Tutorial -Este tutorial comienza con una introducción al lenguaje musical LilyPond -y cómo producir música impresa. Después de este primer contacto, -explicaremos cómo crear notación musical usual. +Este tutorial comienza con una introducción al lenguaje musical +LilyPond y explica cómo producir música impresa. Después de este +primer contacto, explicaremos cómo crear música impresa de forma +bella, que contenga notación musical usual. -@ifhtml -Muchas personas aprenden a utilizar programas probando y enredando con ellos. -Esto también puede hacerse con LilyPond. Si hace clic sobre una imagen -en la versión en HTML de este manual, podrá ver la entrada exacta de LilyPond -que se utilizó para generar esa imagen. -Pruébelo sobre esta imagen: - -@c no verbatim here -@lilypond[quote,ragged-right] -\relative c'' { - c-\markup { \bold \huge { Click here. } } -} -@end lilypond - -Cortando y pegando todo lo que se encuentra dentro de la sección @qq{ly snippet} (fragmento de tipo ly), tendrá una -plantilla inicial para sus experimentos. Si le agrada esta forma de aprender, -probablemente quiera imprimir o añadir a sus favoritos la dirección de la -@ruser{Cheat sheet}, que es una relación en forma de tabla de las instrucciones más comunes -de manera que sirvan de referencia rápida. -@end ifhtml @menu * First steps:: @@ -80,16 +54,21 @@ Esta sección le ofrece una introducción básica al trabajo con LilyPond. * Compiling a file:: * Simple notation:: * Working on text files:: -* How to read the tutorial:: +* How to read the manual:: @end menu @node Compiling a file @subsection Compiling a file -El primer ejemplo demuestra cómo empezar a trabajar con LilyPond. Para -crear una partitura, escribimos un archivo de texto que especifica la -notación. Por ejemplo, si escribimos +@qq{Compilación} es una palabra que significa procesar un texto de +entrada eb formato de LilyPond para producir un archivo que se puede +imprimir y (de manera opcional) un archivo MIDI que se puede +reproducir. El primer ejemplo muestra el aspecto de un sencillo +archivo de texto de entrada. + +Para crear una partitura, escribimos un archivo de texto que detalla +la notación deseada. Por ejemplo, si escribimos @example @{ @@ -107,80 +86,92 @@ el resultado tiene este aspecto } @end lilypond -@strong{Advertencia:} Todo el código que se da como entrada a LilyPond tiene que -ir entre @strong{@{ llaves @}}. Las llaves deberían también estar -rodeadas por espacios a no ser que se encuentren al principio o al final de una línea, -para evitar ambigüedades. Es posible que se omitan en algunos ejemplos del presente -manual ¡pero no las omita en su propia música! +@warning{La música y la letra escrita en el código de entrada de +LilyPond tiene que ir siempre entre @strong{@{ llaves @}}. Las llaves +deberían también estar rodeadas por espacios a no ser que se +encuentren al principio o al final de una línea, para evitar +ambigüedades. Es posible que se omitan en algunos ejemplos del +presente manual ¡pero no las omita en su propia música! Paara ver más +información sobre la presentación de los ejemplos del manual, consulte +@ref{How to read the manual}.} + @cindex Sensible a las mayúsculas Además la entrada de LilyPond es @strong{sensible a las mayúsculas}. @code{ @{ c d e @}} es una entrada válida; @code{@{ C D E @}} producirá un mensaje de error. -@sp 1 +@smallspace @subheading Entering music and viewing output -En esta sección vamos a explicar qué órdenes hay que ejecutar -y cómo, para ver o imprimir el resultado. +@cindex PDF, archivo +@cindex ver la música -@subsubheading MacOS X +En esta sección vamos a explicar qué órdenes hay que ejecutar y cómo, +para ver o imprimir el resultado. + +Tenga en cuenta que están disponibles varios otros editores de texto +con un mejor apoyo a la edición de texto de LilyPond. Para ver más +información, consulte @rprogram{Text editor support}. -Si hace doble clic sobre @code{LilyPond.app}, se abrirá con un archivo -de ejemplo. Guárdelo, por ejemplo, como @file{prueba.ly} en el Escritorio, y -a continuación procéselo con la orden de menú @samp{Compilar > Componer archivo}. -El PDF resultante se mostrará en la pantalla. +@warning{La primera vez que ejecute LilyPond, tardará un minuto o dos +porque todas las tipografías del sistema han de ser analizadas +previamente. ¡Después de esto, LilyPond será mucho más rápido!} -Advierta que la primera vez que ejecute LilyPond, tardará un minuto -o dos porque todas las tipografías del sistema han de ser analizadas previamente. +@subsubheading MacOS X -Para posteriores usos de LilyPond, debería comenzar eligiendo @q{Nuevo} -o @q{Abrir}. Tiene que grabar el archivo antes de componerlo tipográficamente. -Si se produce algún error durante el proceso, observe la ventana del registro. +Si hace doble clic sobre @code{LilyPond.app}, se abrirá con un archivo +de ejemplo. Guárdelo, por ejemplo, como @file{prueba.ly} en el +Escritorio, y a continuación procéselo con la orden de menú +@samp{Compilar > Componer archivo}. El PDF resultante se mostrará en +la pantalla. -@subsubheading Windows -En Windows, si hace doble clic sobre el icono de LilyPond que está en el escritorio, se -abrirá un sencillo editor de texto con un archivo de ejemplo. Guárdelo, por ejemplo, con -el nombre @file{prueba.ly} en el escritorio y después haga doble clic sobre el icono del -archivo para procesarlo (el icono tiene la forma de una nota). Transcurridos unos segundos, -obtendrá un archivo @file{prueba.pdf} en el escritorio. Haga doble clic sobre este archivo -PDF para ver la partitura compuesta tipográficamente. Un método alternativo para procesar el -archivo @file{prueba.ly} es arrastrarlo y soltarlo sobre el icono de LilyPond utilizando -el ratón. +Para posteriores usos de LilyPond, debería comenzar eligiendo +@q{Nuevo} o @q{Abrir}. Tiene que grabar el archivo antes de +componerlo tipográficamente. Si se produce algún error durante el +proceso, observe la ventana del registro. -Para editar un archivo @file{.ly} existente, haga clic sobre él con el botón derecho del ratón -y elija @qq{Edit source} (editar el archivo fuente). Para empezar con un archivo vacío, -arranque el editor como se describe más arriba y elija @qq{New} (nuevo) del menú @qq{File} (archivo). -Al hacer doble clic sobre el archivo no sólo se obtiene como resultado un archivo PDF, -sino también un archivo @file{.log} que contiene cierta información acerca de lo que -LilyPond ha hecho con el archivo. Si se produce algún error, examine este archivo de registro. +@subsubheading Windows + +En Windows, si hace doble clic sobre el icono de LilyPond que está en +el escritorio, se abrirá un sencillo editor de texto con un archivo de +ejemplo. Guárdelo, por ejemplo, con el nombre @file{prueba.ly} en el +escritorio y después haga doble clic sobre el icono del archivo para +procesarlo (el icono tiene la forma de una corchea). Transcurridos +unos segundos, obtendrá un archivo @file{prueba.pdf} en el +escritorio. Haga doble clic sobre este archivo PDF para ver la +partitura compuesta tipográficamente. Un método alternativo para +procesar el archivo @file{prueba.ly} es arrastrarlo y soltarlo sobre +el icono de LilyPond utilizando el ratón. + +Para editar un archivo @file{.ly} existente, haga clic sobre él con el +botón derecho del ratón y elija @qq{Editar la fuente}. Para empezar +con un archivo vacío, arranque el editor como se describe más arriba y +elija @qq{Nuevo} del menú @qq{Archivo}, o haga clic con el botón +derecho sobre el escritorio y elija @qq{Nuevo..Documento de texto}, +cámbiele el nombre por otro de su elección y cambie la extensión del +archivo a @code{.ly}. Edítelo y luego haga doble click sobre él para +procesarlo como se explicó antes. + +Al hacer doble clic sobre el archivo no sólo se obtiene como resultado +un archivo PDF, sino también un archivo @file{.log} que contiene +cierta información acerca de lo que LilyPond ha hecho con el +archivo. Si se produce algún error, examine este archivo de registro. -Tenga en cuenta que hay disponibles varios editores de texto -alternativos con un mejor apoyo para la realización de documentos de -LilyPond, consulte @rprogram{Text editor support} para ver más información. @subsubheading Unix -Comience abriendo una ventana de terminal e iniciando un editor de texto. Por -ejemplo, puede abrir un xterm y ejecutar -@code{joe}@footnote{Existen macros para los adictos a VIM, y hay -un @code{LilyPond-mode} (modo de LilyPond) para los adictos a Emacs. Si no han sido -instalados aún, consulte el archivo @file{INSTALL.txt}. El -entorno de edición más sencillo es @file{LilyPondTool}. Consulte -@rprogram{Text editor support} para más información.}. En su -editor de texto, introduzca la siguiente entrada y guarde el archivo como -@file{prueba.ly} - -@verbatim -{ +Cree un archivo de texto con el nombre @file{prueba.ly} y escriba en él: + +@example +@{ c' e' g' e' -} -@end verbatim +@} +@end example -@noindent -Para procesar @file{prueba.ly}, haga lo siguiente: +Para procesar el archivo @file{prueba.ly} haga lo siguiente: @example lilypond prueba.ly @@ -191,100 +182,152 @@ Verá algo parecido a: @example lilypond prueba.ly -GNU LilyPond 2.10.0 +GNU LilyPond 2.12.0 Procesando `prueba.ly' Analizando... -Interpretando la música... [1] +Interpretando la música... Preprocesando los objetos gráficos... -Calculando los cortes de línea... [2] +Buscando el número de páginas ideal... +Disponiendo la música en 1 página... +Dibujando los sistemas... Escribiendo la página de salida en `prueba.ps'... Convirtiendo a `prueba.pdf'... @end example -@cindex Archivo PDF -@cindex Ver la música - -@noindent -El resultado es el archivo @file{prueba.pdf} que podrá imprimir o ver -con las utilidades estándar de su sistema operativo.@footnote{Si -su sistema no dispone de dichas herramientas, puede probar -@uref{http://@/www@/.cs@/.wisc@/.edu/@/~ghost/,Ghostscript}, un programa -de libre disposición para ver e imprimir archivos PDF y PostScript.} - @node Simple notation @subsection Simple notation -LilyPond añadirá ciertos elementos de notación de manera automática. En el siguiente -ejemplo hemos especificado solamente cuatro alturas, pero LilyPond ha -añadido la clave, el compás y las duraciones. +LilyPond añadirá ciertos elementos de notación de manera automática. +En el siguiente ejemplo hemos especificado solamente cuatro alturas, +pero LilyPond ha añadido la clave, el compás y las duraciones. -@lilypond[quote,ragged-right,verbatim] +@lilypond[verbatim,quote,ragged-right] { c' e' g' e' } @end lilypond @noindent -Este comportamiento se puede modificar, pero en general estos valores automáticos -son adecuados. +Este comportamiento se puede modificar, pero en general estos valores +automáticos son adecuados. @subheading Pitches -La manera más sencilla de introducir las notas es mediante la utilización del modo @code{\relative}. En -este modo se supone que el @rglos{interval} entre la nota anterior y la actual -se encuentra dentro de una @rglos{fourth}. Comenzamos -introduciendo la pieza musical más elemental, una @rglos{scale}. - -@lilypond[quote,ragged-right,verbatim] -\relative c' { +Glosario musical: @rglos{pitch}, @rglos{interval}, +@rglos{scale}, @rglos{middle C}, @rglos{octave}, +@rglos{accidental}. + +La manera más sencilla de introducir las notas es mediante la +utilización del modo @code{\relative} (relativo). En este modo, se +elige la octava automáticamente bajo la suposición de que la siguiente +nota se colocará siempre lo más cerca de la nota actual, es decir, se +colocará en la octava comprendida dentro de hasta tres espacios de +pentagrama a partir de la nota anterior. Comenzaremos por introducir +el fragmento musical más elemental: una @notation{escala}, donde cada +nota está comprendida dentro de tan sólo un espacio de pentagrama +desde la nota anterior. + +@lilypond[verbatim,quote,ragged-right] +\relative c' { % set the starting point to middle C c d e f g a b c } @end lilypond -La nota inicial es @rglos{middle C}. Cada nota sucesiva -se encuentra dentro de una cuarta de la nota previa (en otras palabras: la primera -@samp{c} es el Do más cercano al Do central; a éste le sigue el Re más cercano a la -nota previa, y así sucesivamente). Podemos crear melodías con intervalos mayores: +La nota inicial es @rglos{middle C}. Cada nota sucesiva se coloca lo +más cerca posible de la nota previa (en otras palabras: la primera +@samp{c} es el Do más cercano al Do central; a éste le sigue el Re más +cercano a la nota previa, y así sucesivamente). Podemos crear +melodías con intervalos mayores, aún sin dejar de utilizar el modo +relativo: -@lilypond[quote,ragged-right,verbatim] +@lilypond[verbatim,quote,ragged-right] \relative c' { d f a g c b f d } @end lilypond -@noindent -Como puede observar, este ejemplo no comienza en el Do central. La primera nota -(la @samp{d}) es el Re más cercano al Do central. +No es necesario que la primera nota de la melodía comience exactamente +en aquella que especifica la altura de inicio. En el ejemplo +anterior, la primera nota (@code{d}) es el Re más cercano al Do +central. -Para poner intervalos mayores de una cuarta, podemos elevar la octava -añadiendo una comilla simple @code{'} (o apóstrofe) al nombre de la nota. También podemos bajar -la octava adjuntando una coma @code{,} al nombre de la nota. +Añadiendo (o eliminando) comillas simples @code{'} o comas @code{,} de +la instrucción @code{\relative c' @{}, podemos cambiar la octava de +inicio: -@lilypond[quote,ragged-right,verbatim] +@lilypond[verbatim,quote,ragged-right] +\relative c'' { % one octave above middle C + e c a c +} +@end lilypond + +Al principio, el modo relativo puede resultar algo confuso, pero es la +forma más sencilla de introducir la mayor parte de las melodías. +Veamos cómo funciona en la práctica este cálculo relativo. Comenzando +por Si, que está situado en la línea central en clave de Sol, podemos +alcanzar Do, Re y Mi dentro de los tres espacios de pentagrama hacia +arriba, y La, Sol y Fa dentro de los tres espacios hacia abajo. Por +tanto, si la nota siguiente a Si es Do, Re o Mi se supondrá que está +por encima del Si, mientras que La, Sol o Fa se entenderán situados +por debajo. + +@lilypond[verbatim,quote,ragged-right] +\relative c'' { + b c % c is 1 staff space up, so is the c above + b d % d is 2 up or 5 down, so is the d above + b e % e is 3 up or 4 down, so is the e above + b a % a is 6 up or 1 down, so is the a below + b g % g is 5 up or 2 down, so is the g below + b f % f is 4 up or 3 down, so is the f below +} +@end lilypond + +Loo mismo exactamente ocurre cuando cualquiera de esas notas llevan un +sostenido o un bemol. Las @notation{Alteraciones accidentales} se +@strong{ignoran totalmente} en el cálculo de la posición relativa. +Exactamente la misma cuenta de espacios de pentagrama se hace a partir +de una nota situada en cualquier otro lugar del mismo. + +Para añadir intervalos mayores de tres espacios de pentagrama, podemos +elevar la @notation{octava} añadiendo una comilla simple @code{'} (o +apóstrofe) a continuación del nombre de la nota. También podemos +bajar la octava escribiendo una coma @code{,} a continuación del +nombre de la nota. + +@lilypond[verbatim,quote,ragged-right] \relative c'' { a a, c' f, g g'' a,, f' } @end lilypond -@noindent -Para subir o bajar una nota en dos (¡o más!) octavas, utilizamos varias @code{''} ó -@code{,,} (pero tenga cuidado de utilizar dos comillas simples @code{''} ¡y no una -comilla doble @code{"}@tie{}!) El valor inicial de -@code{\relative c'} también puede modificarse de esta forma. +@noindent +Para subir o bajar una nota en dos (¡o más!) octavas, utilizamos +varias @code{''} ó @code{,,} (pero tenga cuidado de utilizar dos +comillas simples @code{''} ¡y no una comilla doble @code{"}@tie{}!) +El valor inicial de @code{\relative c'} también puede modificarse de +esta forma. @subheading Durations (rhythms) -La @rglos{duration} de una nota se especifica mediante un número después del nombre de la nota. -@samp{1} significa @rglos{whole note}, @samp{2} significa @rglos{half note}, -@samp{4} significa @rglos{quarter note} y así sucesivamente. Las barras de corchea se añaden +Glosario musical: @rglos{beam}, @rglos{duration}, @rglos{whole note}, +@rglos{half note}, @rglos{quarter note}, @rglos{dotted note}. + +La @notation{duración} de una nota se especifica mediante un número +después del nombre de la nota. @code{1} significa @rglos{redonda}, +@code{2} significa @rglos{blanca}, @code{4} significa @rglos{negra} y +así sucesivamente. Las @notation{barras de corchea} se añaden automáticamente. +Si no especifica una duración, se utiliza la duración previa para la +nota siguiente. La figura por omisión de la primera nota es una +negra. + @lilypond[quote,ragged-right,verbatim] \relative c'' { a1 @@ -293,11 +336,10 @@ automáticamente. } @end lilypond -@noindent -Si no especifica una duración, se utiliza la duración previa para la nota siguiente. -La figura por omisión de la primera nota es una negra. - -Para crear notas con puntillo (véase @rglos{dotted note}), añada un punto @samp{.} al número de la duración. +Para crear notas con puntillo (véase @rglos{dotted note}), añada un +punto @samp{.} al número de la duración. La duración de una nota con +puntillo se debe especificar de forma explícita (es decir: mediante un +número). @lilypond[quote,ragged-right,verbatim] \relative c'' { @@ -309,9 +351,12 @@ Para crear notas con puntillo (véase @rglos{dotted note}), añada un punto @sam @subheading Rests -Un @rglos{rest} se introduce igual que una nota, con el nombre @samp{r}: +Glosario musical: @rglos{rest}. -@lilypond[quote,ragged-right,verbatim] +Un @notation{rest} se introduce igual que si fuera una nota con el +nombre @code{r}: + +@lilypond[verbatim,quote,ragged-right] \relative c'' { a r r2 r8 a r4 r4. r8 @@ -321,7 +366,10 @@ Un @rglos{rest} se introduce igual que una nota, con el nombre @samp{r}: @subheading Time signature -La @rglos{time signature}) se puede establecer con la orden @code{\time} : +Glosario musical: @rglos{time signature}. + +La @notation{indicación de compás} se puede establecer con la orden +@code{\time} : @lilypond[quote,ragged-right,verbatim] \relative c'' { @@ -337,7 +385,10 @@ La @rglos{time signature}) se puede establecer con la orden @code{\time} : @subheading Clef -La @rglos{clef} se puede establecer utilizando la orden @code{\clef} : +Glosario musical: @rglos{clef}. + +La @notation{clave} se puede establecer utilizando la orden +@code{\clef} : @lilypond[quote,ragged-right,verbatim] \relative c' { @@ -355,7 +406,8 @@ La @rglos{clef} se puede establecer utilizando la orden @code{\clef} : @subheading All together -He aquí un pequeño ejemplo que muestra todos los elementos anteriores juntos: +He aquí un pequeño ejemplo que muestra todos los elementos anteriores +juntos: @lilypond[quote,ragged-right,verbatim] \relative c, { @@ -366,61 +418,57 @@ He aquí un pequeño ejemplo que muestra todos los elementos anteriores juntos: } @end lilypond + @seealso -@quotation -@table @asis -@item Introducir alturas y duraciones -véase @ruser{Pitches} y @ruser{Durations}. -@item Silencios -véase @ruser{Rests}. -@item Indicaciones de compás y otras instrucciones de tiempo -véase @ruser{Time signature}. -@item Claves -véase @ruser{Clef}. -@end table -@end quotation +Referencia de la notación: @ruser{Writing pitches}, +@ruser{Writing rhythms}, @ruser{Writing rests}, +@ruser{Time signature}, @ruser{Clef}. @node Working on text files @subsection Working on text files -Los archivos de entrada de LilyPond son como los archivos fuente de muchos lenguajes de programación corrientes. -Son sensibles a las mayúsculas e insensibles al número de espacios Las expresiones -se forman con llaves @{ @} y los comentarios se denotan por un signo de porcentaje (@code{%}) o por -@code{%@{ ... %@}}. +Los archivos de entrada de LilyPond son como los archivos fuente de +muchos lenguajes de programación corrientes. Son sensibles a las +mayúsculas e insensibles al número de espacios Las expresiones se +forman con llaves @{ @} y los comentarios se denotan por un signo de +porcentaje (@code{%}) o por @code{%@{ ... %@}}. -Si la frase anterior no tiene sentido para usted ¡no se preocupe! A continuación explicaremos el -significado de todos estos términos: +Si la frase anterior no tiene sentido para usted ¡no se preocupe! A +continuación explicaremos el significado de todos estos términos: @itemize @cindex Sensible a las mayúsculas @item @strong{Sensible a las mayúsculas}: -tiene importancia el hecho de que introduzca una letra -en minúsculas (p.ej. @code{a, b, s, t}) o en mayúsculas (p.ej. -@code{A, B, S, T}). Las notas son minúsculas: @code{@{ c d e @}} -es una entrada válida; @code{@{ C D E @}} produciría un mensaje de error. +tiene importancia el hecho de que introduzca una letra en minúsculas +(p.ej. @code{a, b, s, t}) o en mayúsculas (p.ej. @code{A, B, S, T}). +Las notas son minúsculas: @code{@{ c d e @}} es una entrada válida; +@code{@{ C D E @}} produciría un mensaje de error. @item @strong{Insensible al número de espacios}: -no importa cuántos -espacios (o saltos de línea) añada. @code{@{ c d e @}} significa lo mismo -que @code{@{ c @tie{} @tie{} @tie{} d e @}} y que +no importa cuántos espacios (o saltos de línea) añada. @code{@{ c d e +@}} significa lo mismo que @code{@{ c @tie{} @tie{} @tie{} d e @}} y +que + @example - @{ -c d - e @} +@{ c d + e @} @end example @noindent -Por supuesto, el ejemplo anterior es difícil de leer. Una regla práctica -es sangrar los bloques de código con un carácter de tabulación, o bien con dos espacios: +Por supuesto, el ejemplo anterior es difícil de leer. Una regla +práctica es sangrar los bloques de código con un carácter de +tabulación, o bien con dos espacios: + @example @{ c d e @} @end example -@item @strong{Expresiones:} +@item +@strong{Expresiones:} Todo fragmento de código de entrada para LilyPond ha de llevar @strong{@{ llaves @}} antes y después de la entrada. Estas llaves le dicen a LilyPond que la entrada es una expresión musical unitaria, igual que @@ -428,20 +476,36 @@ los paréntesis @samp{()} de las matemáticas. Las llaves deben ir rodeadas de un espacio a no ser que se encuentren al comienzo o al final de una línea, para evitar cualquier ambigüedad. -Una función (como por ejemplo @code{\relative @{ @}}) también es una expresión musical -unitaria. +Una instrucción de LilyPond seguida de una expresión simple entre +llaves (como por ejemplo @code{\relative @{ @}}) también es una +expresión musical unitaria. @cindex comentarios @cindex comentario de línea @cindex comentario de bloque -@item @strong{Comentarios}: -Un comentario es una nota para el lector humano de la entrada musical; se ignora -cuando esta entrada se analiza, de manera que no tiene ningún efecto sobre la salida impresa. -Existen dos tipos de comentarios. El símbolo de porcentaje @samp{%} -introduce un comentario de línea; todo lo que se encuentra después de @samp{%} en esa línea -se ignora. Un comentario de bloque marca una sección entera de entrada musical -como comentario. Todo lo que está encerrado dentro de @code{%@{} y @code{%@}} se -ignora (pero los comentarios no pueden incluir otros comentarios). El siguiente fragmento muestra algunos posibles usos para los comentarios: +@item +@strong{Comentarios}: +Un comentario es una nota para el lector humano de la entrada musical; +se ignora cuando esta entrada se analiza, de manera que no tiene +ningún efecto sobre la salida impresa. Existen dos tipos de +comentarios. El símbolo de porcentaje @samp{%} introduce un +comentario de línea; todo lo que se encuentra después de @samp{%} en +esa línea se ignora. Por convenio, una línea de comentario se coloca +@emph{por encima} del código a que se refiere el comentario. + +@example +a4 a a a +% este comentario se refiere a las notas Si +b2 b +@end example + +Un comentario de bloque marca una sección entera de entrada musical +como comentario. Todo lo que está encerrado dentro de @code{%@{} y +@code{%@}} se ignora (pero los comentarios no pueden anidarse, lo que +signnifica que un comentario de bloque no puede incluir otros +comentarios de bloque). Si lo hiciera, el primer @code{%@}} daría por +terminado @emph{los dos} comentarios de bloque. El siguiente +fragmento muestra algunos posibles usos para los comentarios: @example % a continuación van las notas de campanitas del lugar @@ -458,16 +522,16 @@ ignora (pero los comentarios no pueden incluir otros comentarios). El siguiente @end itemize -Hay más trucos para elaborar archivos de entrada en -@ruser{Suggestions for writing LilyPond files}. +@node How to read the manual +@subsection How to read the manual -@node How to read the tutorial -@subsection How to read the tutorial - -Como vimos en @ruser{Working on text files}, la entrada de LilyPond debe estar -rodeada de llaves @{ @} o de @code{\relative c'' @{ ... @}}. Durante el -resto del presente manual, la mayor parte de los ejemplos omitirán las llaves. +Como vimos en @ref{Working on text files}, la entrada de LilyPond debe +estar rodeada de llaves @{ @} o de @code{\relative c'' @{ ... @}}. +Durante el resto del presente manual, la mayor parte de los ejemplos +omitirán las llaves. Para reproducir los ejemplos, deberá copiar y +pegar la entrada que se muestra, pero @strong{deberá} escribir +@code{\relative c'' @{ @}}, de la siguiente forma: Si está leyendo la documentación HTML y quiere ver el código de LilyPond exacto que se utilizó para crear el ejemplo, sencillamente haga clic @@ -481,13 +545,45 @@ copiar y pegar la entrada que se muestra, pero @strong{deberá} añadir @} @end example -¿Por qué omitir las llaves? Casi todos los ejemplos -del presente manual se pueden insertar en medio de un fragmento mayor de -música. Para estos ejemplos no tiene ningún sentido añadir -@code{\relative c'' @{ @}} (no debería poner un @code{\relative} -dentro de otro @code{\relative}), de forma que usted no podría copiar -un ejemplo pequeño procedente de la documentación y pegarlo dentro de su propia -pieza. +¿Por qué omitir las llaves? Casi todos los ejemplos del presente +manual se pueden insertar en medio de un fragmento mayor de música. +Para estos ejemplos no tiene ningún sentido añadir @code{\relative c'' +@{ @}} (¡no debería poner un @code{\relative} dentro de otro +@code{\relative}!); si hubiésemos incluido @code{\relative c'' @{ @}} +rodeando a cada uno de los ejemplos, usted no podría copiar un ejemplo +pequeño procedente de la documentación y pegarlo dentro de su propia +pieza. La mayoría querrá insertar el código dentro de una pieza más +grande, por eso hemos formateado el manual de esta forma. + + + +@subheading Clickable examples + +Muchas personas aprenden a utilizar programas probando y enredando con ellos. +Esto también puede hacerse con LilyPond. Si hace clic sobre una imagen +en la versión en HTML de este manual, podrá ver la entrada exacta de LilyPond +que se utilizó para generar esa imagen. +Pruébelo sobre esta imagen: + +@c no verbatim here +@lilypond[quote,ragged-right] +\relative c'' { + c-\markup { \bold \huge { Click here. } } +} +@end lilypond + +Cortando y pegando todo lo que se encuentra dentro de la sección +@qq{ly snippet} (fragmento de tipo ly), tendrá una plantilla inicial +para sus experimentos. Para poder ver exactamente el mismo resultado +(con igual anchura de línea y todo), copie todo lo que está desde +@qq{Start cut-&-pastable section} hasta el final del archivo. + +@seealso + + +Podrá encontrar más consejos y trucos para la construcción de archivos +de entrada en @ref{Suggestions for writing LilyPond files}; pero +podría ser mejor leer primero el resto del presente manual. @node Single staff notation @@ -1284,7 +1380,7 @@ La indicación @code{\version} deja registrado para qué versión de LilyPond se el archivo: @example -\version "2.11.38" +\version @w{"@version{}"} @end example @noindent @@ -1305,7 +1401,7 @@ principal; el bloque @code{\header} normalmente se sitúa por debajo del @ruser{Version number}. @example -\version "2.11.38" +\version @w{"@version{}"} \header @{ title = "Symphony" composer = "Me" diff --git a/Documentation/es/user/working.itely b/Documentation/es/user/working.itely index 76ddd8f333..54ca789746 100644 --- a/Documentation/es/user/working.itely +++ b/Documentation/es/user/working.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: 338edaf1ad2b64605dcdeadb37b4cf17f98fc81a + Translation of GIT committish: 993fc5189dc039afd51a98df9b71adf59f2ab20f When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -537,7 +537,7 @@ Yo utilizo media docena de archivos de @example %%% global.ly -\version "2.11.38" +\version @w{"@version{}"} #(ly:set-option 'point-and-click #f) \include "../iniciar/iniciar-definiciones.ly" \include "../iniciar/iniciar-disposicion.ly" diff --git a/Documentation/user/README.txt b/Documentation/user/README.txt index ae345e03d0..6b39a974a3 100644 --- a/Documentation/user/README.txt +++ b/Documentation/user/README.txt @@ -11,7 +11,7 @@ General policy: policy.txt convert-ly -e --from=... --to=... --no-version *.itely % to find the current version number, -grep "version \"" fundamental.itely +grep "version \"" tutorial.itely Please don't forget updating translated docs (in LANGS/user) too! diff --git a/Documentation/user/fundamental.itely b/Documentation/user/fundamental.itely index 1ccf9bcf02..1e56b0e4f2 100644 --- a/Documentation/user/fundamental.itely +++ b/Documentation/user/fundamental.itely @@ -40,7 +40,7 @@ description of the input format, see @ruser{File structure}. A basic example of a lilypond input file is @example -\version @w{"@version{}"} +\version "2.11.38" \score @{ @var{...compound music expression...} % all the music goes here! \header @{ @} @@ -1739,7 +1739,7 @@ cello. In this case, we would start with @q{Notes and lyrics} (for the soprano part). @example -\version @w{"@version{}"} +\version "2.11.38" melody = \relative c' @{ \clef treble \key c \major @@ -1767,7 +1767,7 @@ text = \lyricmode @{ Now we want to add a cello part. Let's look at the @q{Notes only} example: @example -\version @w{"@version{}"} +\version "2.11.38" melody = \relative c' @{ \clef treble \key c \major @@ -1804,7 +1804,7 @@ celli normally use bass clef. We'll also give the cello some different notes. @example -\version @w{"@version{}"} +\version "2.11.38" sopranoMusic = \relative c' @{ \clef treble \key c \major @@ -1873,7 +1873,7 @@ This looks a bit messy; the indentation is messed up now. That is easily fixed. Here's the complete soprano and cello template. @lilypond[quote,verbatim,ragged-right] -\version "2.11.38" +\version "2.11.37" sopranoMusic = \relative c' { \clef treble \key c \major @@ -1921,6 +1921,7 @@ from Handel's Messiah: @c The following should appear as music without code @lilypond[quote,ragged-right] +\version "2.11.38" global = { \key d \major \time 4/4 } sopMusic = \relative c'' { \clef "treble" @@ -2192,7 +2193,7 @@ music definitions and one to define the time signature and key: @example -\version @w{"@version{}"} +\version "2.11.38" \header @{ title = "Jesu, meine Freude" composer = "J S Bach" diff --git a/Documentation/user/lilypond-book.itely b/Documentation/user/lilypond-book.itely index f0af1fcf17..86b274f9cf 100644 --- a/Documentation/user/lilypond-book.itely +++ b/Documentation/user/lilypond-book.itely @@ -105,10 +105,9 @@ directory as this file.) Save the code above to a file called @file{lilybook.lytex}, then in a terminal run -@c keep space after @version{} so TeX doesn't choke @example lilypond-book --output=out --pdf lilybook.lytex -@emph{lilypond-book (GNU LilyPond) @version{} } +@emph{lilypond-book (GNU LilyPond) 2.11.37} @emph{Reading lilybook.lytex...} @emph{..lots of stuff deleted..} @emph{Compiling lilybook.tex...} diff --git a/Documentation/user/lilypond-learning.tely b/Documentation/user/lilypond-learning.tely index fac164092e..c1e811970a 100644 --- a/Documentation/user/lilypond-learning.tely +++ b/Documentation/user/lilypond-learning.tely @@ -10,8 +10,6 @@ @documentencoding UTF-8 @documentlanguage en -@include macros.itexi - @iftex @afourpaper @c don't replace quotes with directed quotes @@ -66,7 +64,21 @@ Free Documentation License''. @vskip 20pt -For LilyPond version @version{} +@lilypond[ragged-right] +\score { + \context Lyrics { + \override Score.RehearsalMark #'self-alignment-X = #LEFT + \override Score.RehearsalMark #'font-size = #-2 + \mark #(ly:export (string-append + "(For LilyPond version " (lilypond-version) ")")) + s2 + } + \layout { + indent = 0.0\pt + } +} +@end lilypond + @end titlepage @copying @@ -102,7 +114,10 @@ Free Documentation License''. @top GNU LilyPond --- learning manual @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX. -This is the learning manual for GNU LilyPond version @version{}. +This is the learning manual for GNU LilyPond 2.11.x series. +@ifhtml +(See the bottom of this page for the exact version number). +@end ifhtml @cindex web site @cindex URL @@ -132,6 +147,8 @@ Appendices @contents +@include macros.itexi + @include preface.itely @include introduction.itely @include tutorial.itely diff --git a/Documentation/user/lilypond-program.tely b/Documentation/user/lilypond-program.tely index 18ced37734..6fa9f3900b 100644 --- a/Documentation/user/lilypond-program.tely +++ b/Documentation/user/lilypond-program.tely @@ -10,8 +10,6 @@ @documentencoding UTF-8 @documentlanguage en -@include macros.itexi - @iftex @afourpaper @c don't replace quotes with directed quotes @@ -66,7 +64,21 @@ Free Documentation License''. @vskip 20pt -For LilyPond version @version{} +@lilypond[ragged-right] +\score { + \context Lyrics { + \override Score.RehearsalMark #'self-alignment-X = #LEFT + \override Score.RehearsalMark #'font-size = #-2 + \mark #(ly:export (string-append + "(For LilyPond version " (lilypond-version) ")")) + s2 + } + \layout { + indent = 0.0\pt + } +} +@end lilypond + @end titlepage @copying @@ -102,7 +114,10 @@ Free Documentation License''. @top GNU LilyPond --- program usage @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX. -This is the program usage manual for GNU LilyPond version @version{}. +This is the program usage manual for GNU LilyPond 2.11.x series. +@ifhtml +(See the bottom of this page for the exact version number). +@end ifhtml @cindex web site @cindex URL @@ -128,6 +143,8 @@ Appendices @contents +@include macros.itexi + @include install.itely @include setup.itely @include running.itely diff --git a/Documentation/user/lilypond.tely b/Documentation/user/lilypond.tely index 7c203800d7..0631951f5a 100644 --- a/Documentation/user/lilypond.tely +++ b/Documentation/user/lilypond.tely @@ -10,8 +10,6 @@ @documentencoding UTF-8 @documentlanguage en -@include macros.itexi - @iftex @afourpaper @c don't replace quotes with directed quotes @@ -100,7 +98,21 @@ Free Documentation License''. @vskip 20pt -For LilyPond version @version{} +@lilypond[ragged-right] +\score { + \context Lyrics { + \override Score.RehearsalMark #'self-alignment-X = #LEFT + \override Score.RehearsalMark #'font-size = #-2 + \mark #(ly:export (string-append + "(For LilyPond version " (lilypond-version) ")")) + s2 + } + \layout { + indent = 0.0\pt + } +} +@end lilypond + @end titlepage @copying @@ -136,7 +148,10 @@ Free Documentation License''. @top GNU LilyPond --- The music typesetter @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX. -This is the user manual for GNU LilyPond version @version{}. +This is the user manual for GNU LilyPond 2.11.x series. +@ifhtml +(See the bottom of this page for the exact version number). +@end ifhtml @cindex web site @cindex URL @@ -172,6 +187,8 @@ Appendices @contents +@include macros.itexi + @include notation.itely @include specialist.itely diff --git a/Documentation/user/macros.itexi b/Documentation/user/macros.itexi index 40905c2333..b0dafefd95 100644 --- a/Documentation/user/macros.itexi +++ b/Documentation/user/macros.itexi @@ -7,7 +7,8 @@ @end ignore @macro version -@value{version} +@c @value{version} +2.11.41 @end macro @c ***** Displaying text ***** diff --git a/Documentation/user/rhythms.itely b/Documentation/user/rhythms.itely index da30265b53..2da0f2c048 100644 --- a/Documentation/user/rhythms.itely +++ b/Documentation/user/rhythms.itely @@ -204,7 +204,7 @@ must be done with @code{\tweak}. @funindex tupletNumberFormatFunction @funindex tupletSpannerDuration -@lilypondfile [ragged-right,line-width=16\cm,staffsize=14,quote] +@lilypondfile [verbatim,lilyquote,ragged-right,texidoc] {entering-several-tuplets-using-only-one--times-command.ly} @ignore @@ -384,7 +384,7 @@ create a tuplet bracket. One application is in polymetric notation, as shown in the following example. See @ref{Polymetric notation}. -@lilypondfile [ragged-right,line-width=16\cm,staffsize=14,quote] +@lilypondfile [verbatim,lilyquote,ragged-right,texidoc] {printing-music-with-different-time-signatures.ly} @@ -2615,3 +2615,4 @@ Internals Reference: @internalsref{Timing_translator}, + diff --git a/Documentation/user/tutorial.itely b/Documentation/user/tutorial.itely index dd777b9367..c4681c27cc 100644 --- a/Documentation/user/tutorial.itely +++ b/Documentation/user/tutorial.itely @@ -260,7 +260,7 @@ to enter most melodies. Let us see how this relative calculation works in practice. Starting from a B, which is on the middle line in a treble clef, you can reach a C, D and E within 3 staff spaces going up, and an A, G and F within 3 staff spaces going down. So -if the note following a B is a C, D or F it will be assumed to be +if the note following a B is a C, D or E it will be assumed to be above the B, and an A, G or F will be assumed to be below. @lilypond[verbatim,quote,ragged-right] @@ -1585,7 +1585,7 @@ The @code{\version} statement records the version of LilyPond that was used to write the file: @example -\version @w{"@version{}"} +\version "2.11.38" @end example @noindent @@ -1607,7 +1607,7 @@ main music expression; the @code{\header} block is usually placed underneath the @ref{Version number}. @example -\version @w{"@version{}"} +\version "2.11.38" \header @{ title = "Symphony" composer = "Me" diff --git a/Documentation/user/tweaks.itely b/Documentation/user/tweaks.itely index 9f7dd9ca45..698a7b30ea 100644 --- a/Documentation/user/tweaks.itely +++ b/Documentation/user/tweaks.itely @@ -160,8 +160,7 @@ properties. @node Tweaking methods @subsection Tweaking methods -@itemize -@item @strong{override command} +@strong{\override command} @cindex override command @funindex \override @@ -221,7 +220,7 @@ Again, just like @emph{context} in the @code{\override} command, @emph{context} is often not needed. It will be omitted in many of the following examples. -@item @strong{overrideProperty command} +@strong{\overrideProperty command} @cindex overrideProperty command @funindex \overrideProperty @@ -232,7 +231,7 @@ We mention it here for completeness, but for details see @ruser{Difficult tweaks}. @c Maybe explain in a later iteration -td -@item @strong{tweak command} +@strong{\tweak command} @cindex tweak command @funindex \tweak @@ -242,9 +241,9 @@ This should be used to change the properties of objects which occur at the same musical moment, such as the notes within a chord. Using @code{\override} would affect all the notes within a chord, whereas @code{\tweak} affects just the following -item in the input stream. +item in the input stream. -Here's an example. Suppose we wish to change the size of the +Here's an example. Suppose we wish to change the size of the middle note (the E) in a C major chord. Let's first see what @code{\once \override} would do: @@ -266,8 +265,8 @@ on the immediately following item in the input stream. However, it is effective only on objects which are created directly from the input stream, essentially note heads and articulations. (Objects such as stems and accidentals are created later and -cannot be tweaked in this way). Furthermore, when it is applied -to note heads these must be within a chord, i.e., within single +cannot be tweaked in this way). Furthermore, when it is applied +to note heads these must be within a chord, i.e., within single angle brackets, so to tweak a single note the @code{\tweak} command must be placed inside single angle brackets with the note. @@ -280,8 +279,19 @@ a chord would be changed in this way: 4 @end lilypond -Just one in a series of articulations can be modified with -@code{\tweak}, as shown here: +Note that the syntax of @code{\tweak} is different from that +of the @code{\override} command. Neither the context nor the +layout object should be specified; in fact, it would generate +an error to do so. These are both implied by the following +item in the input stream. So the general syntax of the +@code{\tweak} command is simply: + +@example +\tweak #'@emph{layout_property} = #@emph{value} +@end example + +A @code{\tweak} command can also be used to modify just one in +a series of articulations, as shown here: @lilypond[quote,fragment,ragged-right,verbatim,relative=2] a ^Black @@ -295,8 +305,6 @@ articulation mark as if it were an articulation itself. You can find more details of the @code{\tweak} command in @ruser{Objects connected to the input}. -@end itemize - @node The Internals Reference manual @section The Internals Reference manual @@ -2207,7 +2215,7 @@ are a few attempts to do this: @end lilypond -None work, with the second two showing a bad collision between +None work, with the second two showing bad collisions between the two signs. One way of achieving this is to override the accidental stencil @@ -3074,16 +3082,12 @@ about LilyPond, but even more information can be gathered by looking at the internal LilyPond files. To explore these, first find the directory appropriate to your system, as follows: -@itemize - -@item -@subheading Linux +@strong{Linux} Navigate to @file{@var{installdir}/lilypond/usr/share/lilypond/current/} -@item -@subheading OSX +@strong{OSX} Navigate to @file{@var{installdir}/LilyPond.app/Contents/Resources/share/lilypond/current/} @@ -3091,22 +3095,16 @@ by either @code{cd}-ing into this directory from the Terminal, or control-clicking on the LilyPond application and selecting @q{Show Package Contents}. -@item -@subheading Windows +@strong{Windows} Using Windows Explorer, navigate to @file{@var{installdir}/LilyPond/usr/share/lilypond/current/} -@end itemize - Within this directory the two interesting subdirectories are @itemize - @item @file{../ly/ } - contains files in LilyPond format - @item @file{../scm/} - contains files in Scheme format - @end itemize Let's begin by looking at some files in @file{../ly/}. @@ -3129,7 +3127,7 @@ If you do not like the default values these built-in commands can be redefined easily, just like any other variable, at the head of your input file. -The following are the most useful files to be found in +The following are the most useful files to be found in @file{../ly/}: @multitable @columnfractions .4 .6 @@ -3190,7 +3188,7 @@ compress that line of the score just enough to fit within the margins. To be effective under all circumstances these checks must be enabled -by placing the overrides in a Score @code{\with} block, rather than +by placing the overrides in a Score @code{\with} block, rather than in-line in music, as follows: @verbatim @@ -3206,21 +3204,60 @@ in-line in music, as follows: @node Advanced tweaks with Scheme @subsection Advanced tweaks with Scheme -Although many things are possible with the @code{\override} and -@code{\tweak} commands, an even more powerful way of modifying -the action of LilyPond is available through a programmable -interface to the LilyPond internal operation. Functions are -provided which enable the user to incorporate Scheme code directly -in the internal operation of LilyPond. For example, it is -possible to parametrize an override command which is used often -but with different values. - -As the use of these functions require code to be written in the -Scheme programming language, at least a basic knowledge of -programming in Scheme is required. An introduction to this is -provided in the @ref{Scheme tutorial}, and examples showing the -use of these programmable interfaces can be found in -@ref{Tweaking with Scheme}. +Although many things are possible with the @code{\override} and +@code{\tweak} commands, an even more powerful way of modifying +the action of LilyPond is available through a programmable +interface to the LilyPond internal operation. Code written in +the Scheme programming language can be incorporated directly in +the internal operation of LilyPond. Of course, at least a basic +knowledge of programming in Scheme is required to do this, and an +introduction is provided in the @ref{Scheme tutorial}. + +As an illustration of one of the many possibilities, instead of +setting a property to a constant it can be set to a Scheme +procedure which is then called whenever that property is accessed +by LilyPond. The property can then be set dynamically to a value +determined by the procedure at the time it is called. In this +example we color the note head in accordance with its position on +the staff. + +@lilypond[quote,verbatim,ragged-right] +#(define (color-notehead grob) + "Color the notehead according to its position on the staff." + (let ((mod-position (modulo (ly:grob-property grob 'staff-position) 7))) + (case mod-position ; Set rainbow colors + ((1) (ly:grob-set-property! grob 'color (x11-color 'red))) + ((2) (ly:grob-set-property! grob 'color (x11-color 'orange))) + ((3) (ly:grob-set-property! grob 'color (x11-color 'yellow))) + ((4) (ly:grob-set-property! grob 'color (x11-color 'green))) + ((5) (ly:grob-set-property! grob 'color (x11-color 'blue))) + ((6) (ly:grob-set-property! grob 'color (x11-color 'purple))) + ((0) (ly:grob-set-property! grob 'color (x11-color 'violet))) + ) + ) +) + +rainbow = { + % Override color so it is obtained from color-notehead Scheme function + \override NoteHead #'color = #color-notehead +} + +\relative c' { + \rainbow { + c2 c' | + b4 g8 a b4 c | + c,2 a' | + g1 | + } +} +\addlyrics { + Some -- where o -- ver the Rain -- bow, way up high, +} +@end lilypond + +Further examples showing the use of these programmable interfaces +can be found in @ref{Tweaking with Scheme}. + diff --git a/Documentation/user/working.itely b/Documentation/user/working.itely index 216f577e89..4f8820da01 100644 --- a/Documentation/user/working.itely +++ b/Documentation/user/working.itely @@ -73,7 +73,7 @@ templates contain @code{\version} information. We highly recommend that you always include the @code{\version}, no matter how small your file is. Speaking from personal experience, it's quite frustrating to try to remember which version of LilyPond you were -using a few years ago. @command{convert-ly} requires you to declare +using a few years ago. @code{convert-ly} requires you to declare which version of LilyPond you used. @item @strong{Include checks}: @ruser{Bar and barnumber checks}, @@ -536,7 +536,7 @@ file with @code{\include "../global.ly"}, which contains @example %%% global.ly -\version @w{"@version{}"} +\version "2.11.38" #(ly:set-option 'point-and-click #f) \include "../init/init-defs.ly" \include "../init/init-layout.ly" diff --git a/Documentation/user/writing-texinfo.txt b/Documentation/user/writing-texinfo.txt index 7913ed0ad7..4c988f754e 100644 --- a/Documentation/user/writing-texinfo.txt +++ b/Documentation/user/writing-texinfo.txt @@ -161,19 +161,6 @@ commands. Do not use @itemize @bullet. -* To get LilyPond version, use @version{} (this does not work inside - LilyPond snippets). If you write "@version{}" (enclosed with - quotes), or generally if @version{} is not followed by a space, - enclose it with - - @w{ ... } - - e.g. - - @w{"@version{}"} - - to prevent an ugly line break in PDF output. - %%%%% SYNTAX SURVEY diff --git a/buildscripts/lys-to-tely.py b/buildscripts/lys-to-tely.py index c026522434..236aacb920 100644 --- a/buildscripts/lys-to-tely.py +++ b/buildscripts/lys-to-tely.py @@ -80,6 +80,14 @@ for opt in options: else: raise Exception ('unknown option: ' + o) +def shorten_file_name (n): + # ugh, regtests file names appear as full paths in GUB builds + # we try to do something here + b = os.path.basename (n) + if os path.exists (b): + return b + return n + def name2line (n): # UGR s = r""" @@ -98,6 +106,7 @@ if files: name = os.path.basename (name) template = template % vars () + files = map (shorten_file_name, files) files.sort () s = "\n".join (map (name2line, files)) s = template.replace (include_snippets, s, 1) diff --git a/input/regression/musicxml/15a-Percussion-Finale.xml b/input/regression/musicxml/15a-Percussion-Finale.xml index 6cd3b4dc3e..b404932e63 100644 --- a/input/regression/musicxml/15a-Percussion-Finale.xml +++ b/input/regression/musicxml/15a-Percussion-Finale.xml @@ -1,28 +1,13 @@ - - Percussion Test - - Reinhold Kainhofer - Public Domain - - Finale 2007 for Windows - Dolet Light for Finale 2007 - 2007-09-23 - - + + Percussion Staves + Timpani Timp. - - Finger Cymbals - - - 10 - 1 - bracket @@ -31,98 +16,10 @@ Cymbals Cym. - - MIDI77 - - - MIDI75 - - - Cymbal Smash - - - MIDI72 - - - MIDI70 - - - 10 - 1 - 77 - - - 10 - 1 - 75 - - - 10 - 1 - 45 - - - 10 - 1 - 72 - - - 10 - 1 - 70 - - Bass Drums - B. Dr. - - MIDI65 - - - MIDI66 - - - BD 5 - - - MIDI68 - - - BD 1 - - - MIDI78 - - - 10 - 1 - 65 - - - 10 - 1 - 66 - - - 10 - 1 - 37 - - - 10 - 1 - 68 - - - 10 - 1 - 44 - - - 10 - 1 - 78 - + Triangle + Tri. @@ -144,7 +41,6 @@ 4 - E @@ -194,23 +90,19 @@ 4 4 - 6 percussion - E 5 3 - 1 half - down @@ -218,10 +110,8 @@ 5 1 - 1 quarter - down @@ -231,45 +121,9 @@ D 5 - 1 - - 1 - quarter - down - - - - C - 5 - - 1 - - 1 - quarter - down - x - - - - B - 4 - - 1 - - 1 - quarter - down - - - - A - 4 - - 1 - + 4 1 - quarter - up + whole light-heavy @@ -281,31 +135,26 @@ 1 - - 0 - major - - 7 percussion + + 1 + - F 4 3 - 1 half - up @@ -313,10 +162,8 @@ 4 1 - 1 quarter - up @@ -326,44 +173,9 @@ E 4 - 1 - - 1 - quarter - up - - - - G - 4 - - 1 - - 1 - quarter - up - - - - F - 5 - - 1 - - 1 - quarter - down - - - - G - 5 - - 1 - + 4 1 - quarter - down + whole light-heavy diff --git a/input/regression/musicxml/15b-PercussionStaves-Finale.xml b/input/regression/musicxml/15b-PercussionStaves-Finale.xml deleted file mode 100644 index 4f8d471155..0000000000 --- a/input/regression/musicxml/15b-PercussionStaves-Finale.xml +++ /dev/null @@ -1,10368 +0,0 @@ - - - - Percussion staves - - - Finale 2007 for Windows - Dolet Light for Finale 2007 - 2007-10-31 - - - - - Timpani - Timp. - - Timpani - - - 1 - 48 - - - - bracket - yes - - - Wind Chimes - W. Ch. - - Wind Chimes - - - 10 - 1 - - - - Triangle - Trgl. - - Triangle - - - 10 - 49 - - - - Cymbals - Cym. - - Cymbals - - - 10 - 1 - - - - Brake Drum - B. Dm. - - Brake Drum - - - 10 - 1 - - - - Slapstick - S. St. - - Slapstick - - - 10 - 1 - - - - VibraSlap - V. Slp. - - VibraSlap - - - 10 - 1 - - - - - bracket - yes - - - Bells - Bls. - - Bells - - - 2 - 10 - - - - Glockenspiel - Glk. - - Glockenspiel - - - 3 - 10 - - - - Crystal Glasses - C. G. - - Crystal Glasses - - - 10 - 1 - - - - bracket - no - - - Xylophone - Xyl. - - Xylophone - - - 4 - 14 - - - - - Xylophone - Xyl. - - Xylophone - - - 5 - 14 - - - - - Vibraphone - Vib. - - Vibraphone - - - 6 - 12 - - - - Marimba - Mrb. - - Marimba - - - 7 - 13 - - - - Bass Marimba - B. Mba. - - Bass Marimba - - - 8 - 13 - - - - bracket - yes - - - Tubular Bells - T.B. - - Tubular Bells - - - 9 - 15 - - - - Chimes - Chm. - - Chimes - - - 11 - 15 - - - - Steel Drums - St. D. - - Steel Drums - - - 12 - 115 - - - - Steel Drums - St. D. - - Steel Drums - - - 13 - 115 - - - - Mallets - Mal. - - Mallets - - - 14 - 14 - - - - - Tambourine - Tamb. - - Tambourine - - - 10 - 1 - - - - bracket - yes - - - Timbales - Timb. - - Timpani - - - 1 - 48 - - - - Conga Drums - C. Dr. - - Timpani - - - 1 - 48 - - - - - Quad Toms - Quads - - Timpani - - - 1 - 48 - - - - bracket - yes - - - Bass Drum - B. Dr. - - Timpani - - - 1 - 48 - - - - Drum Set - D. S. - - Timpani - - - 1 - 48 - - - - - bracket - yes - - - Whistle - Wstl. - - Timpani - - - 1 - 48 - - - - Percussion - Perc. - - Timpani - - - 1 - 48 - - - - - bracket - yes - - - Cymbals - Cym. - - Timpani - - - 1 - 48 - - - - Snare Drum - S.Dr. - - Timpani - - - 1 - 48 - - - - - Handbells - HB - - Handbells - - - 15 - 9 - - - - bracket - yes - - - Handbells (T.C.) - H.B. - - Handbells (T.C.) - - - 16 - 9 - - - - Handbells (B.C.) - H.B. - - Handbells (B.C.) - - - 1 - 9 - - - - - - - - - 1 - - 0 - major - - - - F - 4 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - 1 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - 1 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - 1 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - 1 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - 1 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - - G - 2 - - - 0 - 0 - 2 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - - G - 2 - - - 0 - 0 - 2 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - G - 2 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - - G - 2 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - - G - 2 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - - G - 2 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - G - 2 - - - F - 4 - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - G - 2 - - - F - 4 - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - - G - 2 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - - G - 2 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - - G - 2 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - - F - 4 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - - G - 2 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - 1 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - 1 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - 1 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - 1 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - 1 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - percussion - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - 2 - - G - 2 - - - F - 4 - - - 0 - 0 - 1 - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - - - - - 4 - 1 - 1 - - - 4 - - - - 4 - 2 - 2 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - - G - 2 - - - 0 - 0 - 1 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - - - - 1 - - 0 - major - - - - F - 4 - - - 0 - 0 - 1 - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - - - - - 4 - 1 - - - light-heavy - - - - - diff --git a/input/regression/musicxml/17a-Chords-Finale.xml b/input/regression/musicxml/17a-Chords-Finale.xml index fa5ed50147..385bd36d2c 100644 --- a/input/regression/musicxml/17a-Chords-Finale.xml +++ b/input/regression/musicxml/17a-Chords-Finale.xml @@ -2,7 +2,7 @@ - Chords example + Chordnames example Finale 2007 for Windows diff --git a/lily/break-alignment-interface.cc b/lily/break-alignment-interface.cc index fb863b791d..bfaeccea22 100644 --- a/lily/break-alignment-interface.cc +++ b/lily/break-alignment-interface.cc @@ -281,7 +281,8 @@ Break_alignable_interface::self_align_callback (SCM grob) { if (elements[i]->get_property ("break-align-symbol") == sym) { - if (Item::break_visible (elements[i])) + if (Item::break_visible (elements[i]) + && !elements[i]->extent (elements[i], X_AXIS).is_empty ()) { break_aligned_grob = i; goto found_break_aligned_grob; /* ugh. need to break out of 2 loops */ diff --git a/lily/include/note-column.hh b/lily/include/note-column.hh index 34a30ab5dd..f29c50e66c 100644 --- a/lily/include/note-column.hh +++ b/lily/include/note-column.hh @@ -33,6 +33,7 @@ public: static void add_head (Grob *me, Grob *); static bool has_rests (Grob *me); static Grob *dot_column (Grob *me); + static Interval cross_staff_extent (Grob *me, Grob *refp); DECLARE_GROB_INTERFACE(); static Item *get_stem (Grob *); diff --git a/lily/line-spanner.cc b/lily/line-spanner.cc index 7066c3de25..e9f18461a1 100644 --- a/lily/line-spanner.cc +++ b/lily/line-spanner.cc @@ -254,6 +254,7 @@ Line_spanner::print (SCM smob) Drul_array gaps (0, 0); Drul_array arrows (0, 0); + Drul_array anchor_align (0, 0); Drul_array stencils (0,0); Drul_array common_y (0, 0); do @@ -262,6 +263,8 @@ Line_spanner::print (SCM smob) bounds[d], SCM_BOOL_F), 0.0); arrows[d] = to_boolean (ly_assoc_get (ly_symbol2scm ("arrow"), bounds[d], SCM_BOOL_F)); + anchor_align[d] = robust_scm2double (ly_assoc_get (ly_symbol2scm ("anchor-alignment"), + bounds[d], SCM_BOOL_F), LEFT); stencils[d] = unsmob_stencil (ly_assoc_get (ly_symbol2scm ("stencil"), bounds[d], SCM_BOOL_F)); common_y[d] = unsmob_grob (ly_assoc_get (ly_symbol2scm ("common-Y"), @@ -290,22 +293,26 @@ Line_spanner::print (SCM smob) if (stencils[d]) { - Stencil s = stencils[d]->translated (span_points[d]); - SCM align = ly_assoc_get (ly_symbol2scm ("stencil-align-dir-y"), - bounds[d], SCM_BOOL_F); - SCM off = ly_assoc_get (ly_symbol2scm ("stencil-offset"), - bounds[d], SCM_BOOL_F); + Interval ext = stencils[d]->extent (X_AXIS); + Real anchor = ext.linear_combination (anchor_align[d]) - ext[LEFT]; + span_points[d][X_AXIS] -= anchor; - if (scm_is_number (align)) - s.align_to (Y_AXIS, scm_to_double (align)); + Stencil s = stencils[d]->translated (span_points[d]); + SCM align = ly_assoc_get (ly_symbol2scm ("stencil-align-dir-y"), + bounds[d], SCM_BOOL_F); + SCM off = ly_assoc_get (ly_symbol2scm ("stencil-offset"), + bounds[d], SCM_BOOL_F); - /* - todo: should use font-size. + if (scm_is_number (align)) + s.align_to (Y_AXIS, scm_to_double (align)); + + /* + todo: should use font-size. */ - if (is_number_pair (off)) - s.translate (ly_scm2offset (off)); + if (is_number_pair (off)) + s.translate (ly_scm2offset (off)); - line.add_stencil (s); + line.add_stencil (s); } } while (flip (&d) != LEFT); diff --git a/lily/note-column.cc b/lily/note-column.cc index b1c6b9f272..68075fc250 100644 --- a/lily/note-column.cc +++ b/lily/note-column.cc @@ -195,6 +195,20 @@ Note_column::arpeggio (Grob *me) return unsmob_grob (me->get_object ("arpeggio")); } +/* If a note-column contains a cross-staff stem then + nc->extent (Y_AXIS, refp) will not consider the extent of the stem. + If you want the extent of the stem to be included (and you are safe + from any cross-staff issues) then call this function instead. */ +Interval +Note_column::cross_staff_extent (Grob *me, Grob *refp) +{ + Interval iv = me->extent (refp, Y_AXIS); + if (Grob *s = get_stem (me)) + iv.unite (s->extent (refp, Y_AXIS)); + + return iv; +} + ADD_INTERFACE (Note_column, "Stem and noteheads combined", diff --git a/lily/tuplet-bracket.cc b/lily/tuplet-bracket.cc index 41bdec37fc..cfae0b9865 100644 --- a/lily/tuplet-bracket.cc +++ b/lily/tuplet-bracket.cc @@ -496,7 +496,12 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy) commonx = common_refpoint_of_array (tuplets, commonx, Y_AXIS); Interval staff; - if (Grob *st = Staff_symbol_referencer::get_staff_symbol (me)) + Grob *st = Staff_symbol_referencer::get_staff_symbol (me); + + /* staff-padding doesn't work correctly on cross-staff tuplets + because it only considers one staff symbol. Until this works, + disable it. */ + if (st && !to_boolean (me->get_property ("cross-staff"))) { Real pad = robust_scm2double (me->get_property ("staff-padding"), -1.0); if (pad >= 0.0) @@ -516,8 +521,8 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy) Real x0 = robust_relative_extent (lgr, commonx, X_AXIS)[LEFT]; Real x1 = robust_relative_extent (rgr, commonx, X_AXIS)[RIGHT]; bool follow_beam = par_beam - && ((get_grob_direction (par_beam) == dir) - || to_boolean (par_beam->get_property ("knee"))); + && get_grob_direction (par_beam) == dir + && ! to_boolean (par_beam->get_property ("knee")); vector points; if (columns.size () @@ -535,9 +540,9 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy) Real ss = 0.5 * Staff_symbol_referencer::staff_space (me); Real lp = ss * robust_scm2double (stems[LEFT]->get_property ("stem-end-position"), 0.0) - + stems[LEFT]->get_parent (Y_AXIS)->relative_coordinate (commony, Y_AXIS) - my_offset; + + stems[LEFT]->get_parent (Y_AXIS)->relative_coordinate (commony, Y_AXIS); Real rp = ss * robust_scm2double (stems[RIGHT]->get_property ("stem-end-position"), 0.0) - + stems[RIGHT]->get_parent (Y_AXIS)->relative_coordinate (commony, Y_AXIS) - my_offset; + + stems[RIGHT]->get_parent (Y_AXIS)->relative_coordinate (commony, Y_AXIS); *dy = rp - lp; points.push_back (Offset (stems[LEFT]->relative_coordinate (commonx, X_AXIS) - x0, lp)); @@ -553,10 +558,11 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy) get_bounds (me, &left_col, &right_col); if (left_col && right_col) { - Interval rv = right_col->extent (commony, Y_AXIS); - Interval lv = left_col->extent (commony, Y_AXIS); + Interval rv = Note_column::cross_staff_extent (right_col, commony); + Interval lv = Note_column::cross_staff_extent (left_col, commony); rv.unite (staff); lv.unite (staff); + Real graphical_dy = rv[dir] - lv[dir]; Slice ls = Note_column::head_positions_interval (left_col); @@ -577,11 +583,10 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy) for (vsize i = 0; i < columns.size (); i++) { - Interval note_ext = columns[i]->extent (commony, Y_AXIS); - Real notey = note_ext[dir] - my_offset; - + Interval note_ext = Note_column::cross_staff_extent (columns[i], commony); Real x = columns[i]->relative_coordinate (commonx, X_AXIS) - x0; - points.push_back (Offset (x, notey)); + + points.push_back (Offset (x, note_ext[dir])); } } @@ -634,7 +639,7 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy) for (vsize i = 0; i < points.size (); i++) { Real x = points[i][X_AXIS]; - Real tuplety = (*dy) * x * factor; + Real tuplety = (*dy) * x * factor + my_offset; if (points[i][Y_AXIS] * dir > (*offset + tuplety) * dir) *offset = points[i][Y_AXIS] - tuplety; diff --git a/make/doclang-vars.make b/make/doclang-vars.make index 5e4601cb63..c0a2db5733 100644 --- a/make/doclang-vars.make +++ b/make/doclang-vars.make @@ -8,10 +8,10 @@ DOCUMENTATION_INCLUDES = \ DOCUMENTATION_INCLUDES += $(foreach lang, $(LANGS), -I $(top-build-dir)/Documentation/$(lang)/user/$(outdir)) LILYPOND_BOOK_INCLUDES += $(DOCUMENTATION_INCLUDES) -MAKEINFO_FLAGS += --force --enable-encoding $(DOCUMENTATION_INCLUDES) +MAKEINFO_FLAGS += --force --enable-encoding -D 'version $(TOPLEVEL_VERSION)' $(DOCUMENTATION_INCLUDES) MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS) -TEXI2PDF_FLAGS += --batch --tidy +TEXI2PDF_FLAGS += --batch --tidy --command '@set version $(TOPLEVEL_VERSION)' TEXI2PDF_FLAGS += $(DOCUMENTATION_INCLUDES) TELY_FILES = $(call src-wildcard,*.tely) diff --git a/python/musicxml.py b/python/musicxml.py index f028cce8a3..e9d1ef8bed 100644 --- a/python/musicxml.py +++ b/python/musicxml.py @@ -953,7 +953,9 @@ def get_class (name): def lxml_demarshal_node (node): name = node.tag - if name is None: + # TODO: This is a nasty hack, but I couldn't find any other way to check + # if the given node is a comment node (class _Comment): + if name is None or re.match (u"^$", node.__repr__()): return None klass = get_class (name) py_node = klass() diff --git a/scm/define-grob-interfaces.scm b/scm/define-grob-interfaces.scm index a6dfb3a63d..fb6088abf5 100644 --- a/scm/define-grob-interfaces.scm +++ b/scm/define-grob-interfaces.scm @@ -159,11 +159,6 @@ interesting enough to maintain a hara-kiri staff." "A right hand finger instruction." '(digit-names)) -(ly:add-interface - 'system-start-text-interface - "A text at the beginning of a system." - '(text long-text collapse-height style)) - ;;; todo: this is not typesetting info. Move to interpretation. (ly:add-interface 'tablature-interface diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 2ef83b3d30..edd5495a33 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -1951,7 +1951,11 @@ (Y . 0) (stencil-offset . (-0.5 . 0)) (padding . 1.5) - (attach-dir . ,LEFT) + (attach-dir . ,CENTER) + ;; this isn't CENTER because the trill glyph's origin + ;; is not centered in its extent; to have the trill + ;; spanner aligned the same as a trill, we need a slight offset + (anchor-alignment . 0.15) )) (left-broken . ((end-on-note . #t))) (right . ((Y . 0))) diff --git a/stepmake/stepmake/texinfo-vars.make b/stepmake/stepmake/texinfo-vars.make index 4ee7cefa47..d36ff83b81 100644 --- a/stepmake/stepmake/texinfo-vars.make +++ b/stepmake/stepmake/texinfo-vars.make @@ -9,10 +9,9 @@ OUTTXT_FILES += $(addprefix $(outdir)/,$(TEXI_FILES:.texi=.txt)) GENERATE_OMF = $(PYTHON) $(buildscript-dir)/texi2omf.py --format $(1) --location $(webdir)/$(tree-dir)/out-www/$(notdir $(basename $@)) --version $(TOPLEVEL_VERSION) $< > $@ -TEXI2PDF_FLAGS += --command '@set version $(TOPLEVEL_VERSION)' TEXINFO_PAPERSIZE_OPTION= $(if $(findstring $(PAPERSIZE),a4),,-t @afourpaper) -MAKEINFO_FLAGS = --enable-encoding -D 'version $(TOPLEVEL_VERSION)' +MAKEINFO_FLAGS = --enable-encoding MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS)