<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- header_tag --> <html lang="en"> <head> <title>Using tags - GNU LilyPond Notation Reference</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="description" content="GNU LilyPond Notation Reference"> <meta name="generator" content="makeinfo 4.11"> <link title="Top" rel="start" href="index.html#Top"> <link rel="up" href="Different-editions-from-one-source.html#Different-editions-from-one-source" title="Different editions from one source"> <link rel="prev" href="Using-variables.html#Using-variables" title="Using variables"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <!-- Copyright (C) 1999--2007 by the authors 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="Using-tags"></a> Previous: <a rel="previous" accesskey="p" href="Using-variables.html#Using-variables">Using variables</a>, Up: <a rel="up" accesskey="u" href="Different-editions-from-one-source.html#Different-editions-from-one-source">Different editions from one source</a> <hr> </div> <h5 class="unnumberedsubsubsec">Using tags</h5> <p><a name="index-g_t_005ctag-2423"></a><a name="index-g_t_005ctag-2424"></a> <a name="index-g_t_005ckeepWithTag-2425"></a><a name="index-g_t_005ckeepWithTag-2426"></a> <a name="index-g_t_005cremoveWithTag-2427"></a><a name="index-g_t_005cremoveWithTag-2428"></a> <a name="index-tag-2429"></a><a name="index-keep-tagged-music-2430"></a><a name="index-remove-tagged-music-2431"></a> The <code>\tag #'</code><var>partA</var> command marks a music expression with the name <var>partA</var>. Expressions tagged in this way can be selected or filtered out by name later, using either <code>\keepWithTag #'</code><var>name</var> or <code>\removeWithTag #'</code><var>name</var>. The result of applying these filters to tagged music is as follows: <p><table summary=""><tr align="left"><th valign="top" width="50%">Filter </th><th valign="top" width="50%">Result <br></th></tr><tr align="left"><td valign="top" width="50%">Tagged music preceded by <code>\keepWithTag #'</code><var>name</var> </td><td valign="top" width="50%">Untagged music and music tagged with <var>name</var> is included; music tagged with any other tag name is excluded. <br></td></tr><tr align="left"><td valign="top" width="50%">Tagged music preceded by <code>\removeWithTag #'</code><var>name</var> </td><td valign="top" width="50%">Untagged music and music tagged with any tag name other than <var>name</var> is included; music tagged with <var>name</var> is excluded. <br></td></tr><tr align="left"><td valign="top" width="50%">Tagged music not preceded by either <code>\keepWithTag</code> or <code>\removeWithTag</code> </td><td valign="top" width="50%">All tagged and untagged music is included. <br></td></tr></table> <p>The arguments of the <code>\tag</code>, <code>\keepWithTag</code> and <code>\removeWithTag</code> commands should be a symbol (such as <code>#'score</code> or <code>#'part</code>), followed by a music expression. <p>In the following example, we see two versions of a piece of music, one showing trills with the usual notation, and one with trills explicitly expanded: <blockquote> <pre class="verbatim"> music = \relative g' { g8. c32 d \tag #'trills {d8.\trill } \tag #'expand {\repeat unfold 3 {e32 d} } c32 d } \score { \keepWithTag #'trills \music } \score { \keepWithTag #'expand \music } </pre> <p> <a href="../7f/lily-efb3b474.ly"> <img align="middle" border="0" src="../7f/lily-efb3b474.png" alt="[image of music]"> </a> </p> </blockquote> <p class="noindent">Alternatively, it is sometimes easier to exclude sections of music: <blockquote> <pre class="verbatim"> music = \relative g' { g8. c32 d \tag #'trills {d8.\trill } \tag #'expand {\repeat unfold 3 {e32 d} } c32 d } \score { \removeWithTag #'expand \music } \score { \removeWithTag #'trills \music } </pre> <p> <a href="../28/lily-7e628fe0.ly"> <img align="middle" border="0" src="../28/lily-7e628fe0.png" alt="[image of music]"> </a> </p> </blockquote> <p>Tagged filtering can be applied to articulations, texts, etc. by prepending <pre class="example">-\tag #'<var>your-tag</var> </pre> <p>to an articulation. For example, this would define a note with a conditional fingering indication and a note with a conditional annotation: <pre class="example">c1-\tag #'finger ^4 c1-\tag #'warn ^"Watch!" </pre> <p>Multiple tags may be placed on expressions with multiple <code>\tag</code> entries: <blockquote> <pre class="verbatim"> music = \relative c'' { \tag #'a \tag #'both { a a a a } \tag #'b \tag #'both { b b b b } } << \keepWithTag #'a \music \keepWithTag #'b \music \keepWithTag #'both \music >> </pre> <p> <a href="../c6/lily-0cf255bd.ly"> <img align="middle" border="0" src="../c6/lily-0cf255bd.png" alt="[image of music]"> </a> </p> </blockquote> <p>Multiple <code>\removeWithTag</code> filters may be applied to a single music expression to remove several differently named tagged sections: <blockquote> <pre class="verbatim"> music = \relative c'' { \tag #'A { a a a a } \tag #'B { b b b b } \tag #'C { c c c c } \tag #'D { d d d d } } { \removeWithTag #'B \removeWithTag #'C \music } </pre> <p> <a href="../c4/lily-91622439.ly"> <img align="middle" border="0" src="../c4/lily-91622439.png" alt="[image of music]"> </a> </p> </blockquote> <p>Two or more <code>\keepWithTag</code> filters applied to a single music expression will cause <em>all</em> tagged sections to be removed, as the first filter will remove all tagged sections except the one named, and the second filter will remove even that tagged section. <p class="noindent"> <h5 class="subsubheading">See also</h5> <p class="indent"> <p>Learning Manual: <a name="index-Organizing-pieces-with-variables-2432"></a><a href="../lilypond-learning/Organizing-pieces-with-variables.html#Organizing-pieces-with-variables">Organizing pieces with variables</a>. <p>Notation Reference: <a href="Automatic-part-combining.html#Automatic-part-combining">Automatic part combining</a>, <a href="Including-LilyPond-files.html#Including-LilyPond-files">Including LilyPond files</a>. <!-- footer_tag --><br><hr> <div class="node"> <p> Previous: <a rel="previous" accesskey="p" href="Using-variables.html#Using-variables">Using variables</a>, Up: <a rel="up" accesskey="u" href="Different-editions-from-one-source.html#Different-editions-from-one-source">Different editions from one source</a> </div> <div style="background-color: #e8ffe8; padding: 2; border: #c0ffc0 1px solid;"> <p> <font size="-1"> This page is for LilyPond-2.11.57 (development-branch). <br> <address> Report errors to <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> Your <a href="http://lilypond.org/web/devel/participating/documentation-adding">suggestions for the documentation</a> are welcome. </font> </p> </div> <P> Other languages: <a href="Using-tags.fr.html">français</a>, <a href="Using-tags.de.html">deutsch</a>. <BR> </P> </BODY></html>