<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- header_tag --> <html lang="es"> <head> <title>Métodos de trucaje - GNU LilyPond Learning Manual</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="description" content="GNU LilyPond Learning Manual"> <meta name="generator" content="makeinfo 4.11"> <link title="Top" rel="start" href="index.es.html#Top"> <link rel="up" href="Tweaking-basics.es.html#Tweaking-basics" title="Elementos de trucaje"> <link rel="prev" href="Naming-conventions-of-objects-and-properties.es.html#Naming-conventions-of-objects-and-properties" title="Convenciones de nombres de objetos y propiedades"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <!-- Copyright (C) 1999--2007 por los autores _The translation of the following copyright notice is provided for courtesy to non-English speakers, but only the notice in English legally counts._ _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._ 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''. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections. A copy of the license is included in the section entitled ``GNU Free Documentation License''. --> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"><!-- pre.display { font-family:inherit } pre.format { font-family:inherit } pre.smalldisplay { font-family:inherit; font-size:smaller } pre.smallformat { font-family:inherit; font-size:smaller } pre.smallexample { font-size:smaller } pre.smalllisp { font-size:smaller } span.sc { font-variant:small-caps } span.roman { font-family:serif; font-weight:normal; } span.sansserif { font-family:sans-serif; font-weight:normal; } hr { border:0; height:1; color: #000000; background-color: #000000; } /* hr { border: none; height: 1px; color: #666666; background-color: #666666; } body { border-left: 1px solid #666666; border-right: 1px solid #666666; color: #332d28; margin-right: auto; margin-left: auto; width: 60em; list-style-type: square; font-family: Arial,Helvetica,sans-serif; padding-right: 1em; padding-left: 1em; } a { border-bottom: 1px dashed #344242; text-decoration: none; color: #344242; } a:link { text-decoration: none; } a:visited { border-bottom: 1px dashed #666666; color: #666666; } a:active { border-bottom: 1px solid #00cccc; color: #00cccc; } a:hover { border-bottom: 1px solid #1d7b85; color: #1d7b85; } blockquote { border: 1px solid #cccccc; padding: 3px; width: 40em; } .node { border-left: 1px solid #666666; margin: -0.5em 0px 1em; padding: 2px 1px 0px; font-style: italic; } .node a { border: none; text-decoration: underline; font-style: normal; font-weight: bold; } .verbatim { font-family: "Courier New",Courier,monospace; } .unnumberedsubsubsec { font-size: large; color: #1d7b85; } .subsubheading { font-size: large; color: #3b220d; } .contents { border: 1px dashed #339999; margin: 3px 2em; list-style-type: square; padding-right: 1em; width: 40em; background-color: #fcfff9; } .contents a { border-bottom: 1px dashed #423d34; text-decoration: none; color: #423d34; } .contents a:visited { border-bottom: 1px dashed #666666; color: #666666; } .contents a:active { border-bottom: 1px solid #f0d86d; color: #f0d86d; } .contents a:hover { border-bottom: 1px solid #3b220d; color: #3b220d; } .menu { border-left: 1px dashed #339999; margin: 3px 2em 1em; list-style-type: square; padding-left: 1.4em; width: 40em; } .unnumbered { } h2 { font-size: x-large; color: #1d7b85; } */ --></style> </head> <BODY BGCOLOR=WHITE TEXT=BLACK> <div class="node"> <p> <a name="Tweaking-methods"></a> Anterior: <a rel="previous" accesskey="p" href="Naming-conventions-of-objects-and-properties.es.html#Naming-conventions-of-objects-and-properties">Convenciones de nombres de objetos y propiedades</a>, Arriba: <a rel="up" accesskey="u" href="Tweaking-basics.es.html#Tweaking-basics">Elementos de trucaje</a> <hr> </div> <h4 class="subsection">4.1.4 Métodos de trucaje</h4> <p><strong>La instrucción \override</strong> <p><a name="index-override_002c-instrucci_00c3_00b3n-311"></a><a name="index-g_t_005coverride-312"></a><a name="index-g_t_005coverride-313"></a> <p>Ya hemos visto las instrucciones <code>\set</code> y <code>\with</code>, que se usan para cambiar las propiedades de los <strong>contextos</strong> y para quitar y poner <strong>grabadores</strong>, en <a href="Modifying-context-properties.es.html#Modifying-context-properties">Modificar las propiedades de los contextos</a> y <a href="Adding-and-removing-engravers.es.html#Adding-and-removing-engravers">Añadir y eliminar grabadores</a>. Ahora debemos examinar algunas instrucciones importantes más. <p>La instrucción que cambia las propiedades de los <strong>objetos de presentación</strong> es <code>\override</code>. Puesto que esta instrucción debe modificar propiedades internas que se encuentran en un lugar profundo dentro de LilyPond, su sintaxis no es tan simple como la del resto de las instrucciones que hemos visto hasta ahora. Tiene que saber exactamente qué propiedad de qué objeto y en qué contexto se debe modificar, y cuál debe ser su nuevo valor. Veamos cómo se hace. <p>La sintaxis genérica de esta instrucción es: <pre class="example">\override <em>contexto</em>.<em>objeto_de_presentación</em> #'<em>propiedad_de_presentación</em> = #<em>valor</em> </pre> <p class="noindent">Esto establecerá la propiedad de nombre <em>propiedad_de_presentación</em> del objeto de presentación con el nombre <em>objeto_de_presentación</em>, que es miembro del contexto <em>contexto</em>, al valor <em>valor</em>. <p>El <em>contexto</em> se puede omitir (y normalmente así es) cuando el contexto requerido se encuentra implicado sin ambigüedad y es uno de los contextos del nivel más bajo, es decir: <code>Voice</code>, <code>ChordNames</code> o <code>Lyrics</code>, y lo omitiremos en muchos de los ejemplos siguientes. Veremos más tarde cuándo se debe especificar. <p>Las últimas secciones tratan de forma exhaustiva las propiedades y sus valores, pero para ilustrar el formato y utilización de estas instrucciones usaremos sólo unas cuantas propiedades y valores sencillos que sean fáciles de entender. <p>Por ahora no se preocupe por el <code>#'</code>, que debe anteponerse a la propiedad de presentación, y el <code>#</code>, que debe preceder al valor. Deben estar presentes siempre y de esa forma exacta. Es la instrucción de uso más común dentro del trucaje, y durante la mayor parte del resto de este capítulo presentaremos ejemplos de cómo se usa. A continuación hay un ejemplo sencillo para cambiar el color de una cabeza: <blockquote> <pre class="verbatim"> c d \override NoteHead #'color = #red e f g \override NoteHead #'color = #green a b c </pre> <p> <a href="../8c/lily-93693c78.ly"> <img align="middle" border="0" src="../8c/lily-93693c78.png" alt="[image of music]"> </a> </p> </blockquote> <p><strong>La instrucción \revert</strong> <p><a name="index-revert_002c-instrucci_00c3_00b3n-314"></a><a name="index-g_t_005crevert-315"></a><a name="index-g_t_005crevert-316"></a> <p>Una vez sobreescrita, la propiedad retiene su nuevo valor hasta que se sobreescribe de nuevo o se encuentra una instrucción <code>\revert</code>. La instrucción <code>\revert</code> tiene la siguiente sintaxis y ocasiona que el valor de la propiedad se devuelva a su valor predeterminado original; observe que no es a su valor previo si se han utilizado varias instrucciones <code>\override</code>. <pre class="example">\revert <em>contexto</em>.<em>objeto_de_presentación</em> #'<em>propiedad_de_presentación</em> </pre> <p>Una vez más, igual que <em>contexto</em> dentro de la instrucción <code>\override</code>, con frecuencia no es necesario especificar el <em>contexto</em>. Se omitirá en muchos de los ejemplos siguientes. Aquí devolvemos el color de la cabeza al valor predeterminado para las dos últimas notas: <blockquote> <pre class="verbatim"> c d \override NoteHead #'color = #red e f g \override NoteHead #'color = #green a \revert NoteHead #'color b c </pre> <p> <a href="../ec/lily-c94b8226.ly"> <img align="middle" border="0" src="../ec/lily-c94b8226.png" alt="[image of music]"> </a> </p> </blockquote> <p><strong>El prefijo \once</strong> <p>Tanto la instrucción <code>\override</code> como <code>\set</code> se pueden preceder por <code>\once</code>. Esto ocasiona que la siguiente instrucción <code>\override</code> o <code>\set</code> sea efectiva solamente durante el tiempo musical en curso y antes de que la propiedad vuelva a tener otra vez su valor predeterminado. Utilizando el mismo ejemplo, podemos cambiar el color de una sola nota de la siguiente manera: <blockquote> <pre class="verbatim"> c d \once \override NoteHead #'color = #red e f g \once \override NoteHead #'color = #green a b c </pre> <p> <a href="../3d/lily-cbb460f1.ly"> <img align="middle" border="0" src="../3d/lily-cbb460f1.png" alt="[image of music]"> </a> </p> </blockquote> <p><strong>La instrucción \overrideProperty</strong> <p><a name="index-overrideProperty_002c-instrucci_00c3_00b3n-317"></a><a name="index-g_t_005coverrideProperty-318"></a><a name="index-g_t_005coverrideProperty-319"></a> <p>Hay otra forma para la instrucción de sobreescritura, <code>\overrideProperty</code>, que ocasionalmente es necesaria. La mencionamos aquí con un propósito de exhaustividad, pero para ver más detalles consulte <a name="index-Difficult-tweaks-320"></a><a href="../lilypond/Difficult-tweaks.es.html#Difficult-tweaks">Trucos difíciles</a>. <!-- Maybe explain in a later iteration -td --> <p><strong>La instrucción \tweak</strong> <p><a name="index-tweak_002c-instrucci_00c3_00b3n-321"></a><a name="index-g_t_005ctweak-322"></a><a name="index-g_t_005ctweak-323"></a> <p>La última instrucción de trucaje que está disponible es <code>\tweak</code>. Se debe utilizar para cambiar las propiedades de objetos que suceden en el mismo momento musical, como las notas de un acorde. El uso de <code>\override</code> para la sobreescritura afectaría a todas las notas del acorde, mientras que <code>\tweak</code> afecta solamente al siguiente elemento del flujo de entrada. <p>He aquí un ejemplo. Suponga que queremos cambiar el tamaño de la nota intermedia (el Mi) en un acorde de Do mayor. En primer lugar, veamos lo que haría <code>\once \override</code>: <blockquote> <pre class="verbatim"> <c e g>4 \once \override NoteHead #'font-size = #-3 <c e g> <c e g> </pre> <p> <a href="../4e/lily-c85c0c72.ly"> <img align="middle" border="0" src="../4e/lily-c85c0c72.png" alt="[image of music]"> </a> </p> </blockquote> <p>Vemos que la sobreescritura con override afecta a <em>todas</em> las notas del acorde. Esto es así porque todas las notas de un acorde ocurren en el mismo <em>momento musical</em>, y la acción de <code>\once</code> es aplicar la sobreescritura a todos los objetos de presentación del tipo especificado que ocurren en el mismo momento musical que la propia instrucción de sobreescritura <code>\override</code>. <p>LA instrucción <code>\tweak</code> opera de una forma distinta. Actúa sobre el elemento inmediatamente siguiente dentro del flujo de entrada. Sin embargo, es efectivo solamente sobre objetos que se crean directamente a partir del flujo de entrada, en esencia las cabezas y las articulaciones (los objetos como las plicas y las alteraciones se crean con posterioridad y no se pueden trucar de esta forma). Es más, cuando se aplica a las cabezas de las notas, éstas <em>deben</em> estar dentro de un acorde, es decir, dentro de ángulos simples, así que para trucar una sola nota la instrucción <code>\tweak</code> se debe colocar dentro de ángulos simples junto con la nota. <p>Así pues, volviendo a nuestro ejemplo, el tamaño de la nota intermedia se cambiaría de la siguiente forma: <blockquote> <pre class="verbatim"> <c e g>4 <c \tweak #'font-size #-3 e g>4 </pre> <p> <a href="../cd/lily-ec9e5537.ly"> <img align="middle" border="0" src="../cd/lily-ec9e5537.png" alt="[image of music]"> </a> </p> </blockquote> <p>Observe que la sintaxis de <code>\tweak</code> no es igual que la de <code>\override</code>. Ni el contexto ni el objeto de presentación se deben especificar; de hecho, generaría un error hacerlo. Los dos están implícitos por el siguiente elemento del flujo de entrada. Así que la sintaxis genérica de la instrucción <code>\tweak</code> es, simplemente: <pre class="example">\tweak #'<em>propiedad_de_presentación</em> = #<em>valor</em> </pre> <p>Una instrucción <code>\tweak</code> también se puede usar para modificar sólo una de una serie de articulaciones, como se muestra aquí: <blockquote> <pre class="verbatim"> a ^Black -\tweak #'color #red ^Red -\tweak #'color #green _Green </pre> <p> <a href="../42/lily-b8be0511.ly"> <img align="middle" border="0" src="../42/lily-b8be0511.png" alt="[image of music]"> </a> </p> </blockquote> <p>Observe que la instrucción <code>\tweak</code> debe venir precedida de una marca de articulación como si ella misma fuera una articulación. <p><a name="index-grupos-especiales-anidados-324"></a><a name="index-tresillos-anidados-325"></a><a name="index-corchete-del-grupo-especial-326"></a><a name="index-grupo-especial_002c-corchete-de-327"></a><a name="index-tresillo_002c-corchete-de-328"></a><a name="index-TupletBracket-329"></a><a name="index-TupletBracket-330"></a> <p>La instrucción <code>\tweak</code> también se debe usar para cambiar la apariencia de uno solo de un conjunto de grupos especiales anidados que comiencen en el mismo instante musical. En el siguiente ejemplo, el corchete del tresillo largo y el primero de los tres corchetes cortos empiezan en el mismo momento musical, y por ello cualquier instrucción <code>\override</code> se aplicaría a los dos. En el ejemplo se usa <code>\tweak</code> para distinguir entre ellos. La primera instrucción <code>\tweak</code> especifica que el corchete del tresillo largo se debe colocar por encima de las notas y el segundo especifica que el número del tresillo se debe imprimir en rojo sobre el corchete del primer tresillo corto. <blockquote> <pre class="verbatim"> \tweak #'direction #up \times 4/3 { \tweak #'color #red \times 2/3 { c8[ c8 c8] } \times 2/3 { c8[ c8 c8] } \times 2/3 { c8[ c8 c8] } } </pre> <p> <a href="../c9/lily-843979a1.ly"> <img align="middle" border="0" src="../c9/lily-843979a1.png" alt="[image of music]"> </a> </p> </blockquote> <p>Encontrará más detalles de la instrucción <code>\tweak</code> en <a name="index-The-tweak-command-331"></a><a href="../lilypond/The-tweak-command.es.html#The-tweak-command">La instrucción tweak</a>. <p>Si los grupos anidados no comienzan en el mismo momento, su apariencia se puede modificar de la forma usual mediante instrucciones <code>\override</code>: <!-- NOTE Tuplet brackets collide if notes are high on staff --> <!-- See issue 509 --> <blockquote> <pre class="verbatim"> \times 2/3 { c8[ c c]} \once \override TupletNumber #'text = #tuplet-number::calc-fraction-text \times 2/3 { c[ c] c[ c] \once \override TupletNumber #'transparent = ##t \times 2/3 { c8[ c c] } \times 2/3 { c8[ c c]} } </pre> <p> <a href="../02/lily-f833be4e.ly"> <img align="middle" border="0" src="../02/lily-f833be4e.png" alt="[image of music]"> </a> </p> </blockquote> <!-- footer_tag --><br><hr> <div class="node"> <p> Anterior: <a rel="previous" accesskey="p" href="Naming-conventions-of-objects-and-properties.es.html#Naming-conventions-of-objects-and-properties">Convenciones de nombres de objetos y propiedades</a>, Arriba: <a rel="up" accesskey="u" href="Tweaking-basics.es.html#Tweaking-basics">Elementos de trucaje</a> </div> <div style="background-color: #e8ffe8; padding: 2; border: #c0ffc0 1px solid;"> <p> <font size="-1"> Esta página corresponde a LilyPond-2.11.57 (rama de desarrollo). <br> <address> Informe de los fallos a través de la lista en español <a href="http://es.groups.yahoo.com/group/lilypond-es/">lilypond-es</a>, o en inglés a través de <a href="http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs">http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs</a>. </address> <br> Se agradecen las <a href="http://lilypond.org/web/devel/participating/documentation-adding">sugerencias para la documentación</a>. </font> </p> </div> <P> Otros idiomas: <a href="Tweaking-methods.html">English</a>. <BR> </P> </BODY></html>