<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- header_tag --> <html lang="en"> <head> <title>Modifying context plug-ins - 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.de.html#Top"> <link rel="up" href="Interpretation-contexts.de.html#Interpretation-contexts" title="Interpretation contexts"> <link rel="prev" href="Creating-contexts.de.html#Creating-contexts" title="Creating contexts"> <link rel="next" href="Changing-context-default-settings.de.html#Changing-context-default-settings" title="Changing context default settings"> <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="Modifying-context-plug-ins"></a> <a name="Modifying-context-plug_002dins"></a> Next: <a rel="next" accesskey="n" href="Changing-context-default-settings.de.html#Changing-context-default-settings">Changing context default settings</a>, Previous: <a rel="previous" accesskey="p" href="Creating-contexts.de.html#Creating-contexts">Creating contexts</a>, Up: <a rel="up" accesskey="u" href="Interpretation-contexts.de.html#Interpretation-contexts">Interpretation contexts</a> <hr> </div> <h4 class="subsection">5.1.3 Modifying context plug-ins</h4> <!-- TODO Should this be Modifying engravers or Modifying contexts? --> <p>Notation contexts (like <code>Score</code> and <code>Staff</code>) not only store properties, they also contain plug-ins called ‘engravers’ that create notation elements. For example, the <code>Voice</code> context contains a <code>Note_head_engraver</code> and the <code>Staff</code> context contains a <code>Key_signature_engraver</code>. <p>For a full a description of each plug-in, see <a name="index-Engravers-and-Performers-2629"></a><a href="../lilypond-internals/Engravers-and-Performers.de.html#Engravers-and-Performers">Engravers and Performers</a>. Every context described in <a name="index-Contexts-2630"></a><a href="../lilypond-internals/Contexts.de.html#Contexts">Contexts</a> lists the engravers used for that context. <p>It can be useful to shuffle around these plug-ins. This is done by starting a new context with <code>\new</code> or <code>\context</code>, and modifying it, <p><a name="index-g_t_005cwith-2631"></a><a name="index-g_t_005cwith-2632"></a> <pre class="example">\new <var>context</var> \with { \consists ... \consists ... \remove ... \remove ... <em>etc.</em> } { <em>..music..</em> } </pre> <p class="noindent">where the <small class="dots">...</small> should be the name of an engraver. Here is a simple example which removes <code>Time_signature_engraver</code> and <code>Clef_engraver</code> from a <code>Staff</code> context, <blockquote> <pre class="verbatim"> << \new Staff { f2 g } \new Staff \with { \remove "Time_signature_engraver" \remove "Clef_engraver" } { f2 g2 } >> </pre> <p> <a href="../5f/lily-208361c9.ly"> <img align="middle" border="0" src="../5f/lily-208361c9.png" alt="[image of music]"> </a> </p> </blockquote> <p>In the second staff there are no time signature or clef symbols. This is a rather crude method of making objects disappear since it will affect the entire staff. This method also influences the spacing, which may or may not be desirable. More sophisticated methods of blanking objects are shown in <a name="index-Visibility-and-color-of-objects-2633"></a><a href="../lilypond-learning/Visibility-and-color-of-objects.de.html#Visibility-and-color-of-objects">Visibility and color of objects</a>. <p>The next example shows a practical application. Bar lines and time signatures are normally synchronized across the score. This is done by the <code>Timing_translator</code> and <code>Default_bar_line_engraver</code>. This plug-in keeps an administration of time signature, location within the measure, etc. By moving these engraver from <code>Score</code> to <code>Staff</code> context, we can have a score where each staff has its own time signature. <p><a name="index-polymetric-scores-2634"></a><a name="index-Time-signatures_002c-multiple-2635"></a> <blockquote> <pre class="verbatim"> \new Score \with { \remove "Timing_translator" \remove "Default_bar_line_engraver" } << \new Staff \with { \consists "Timing_translator" \consists "Default_bar_line_engraver" } { \time 3/4 c4 c c c c c } \new Staff \with { \consists "Timing_translator" \consists "Default_bar_line_engraver" } { \time 2/4 c4 c c c c c } >> </pre> <p> <a href="../3b/lily-bf4b61d3.ly"> <img align="middle" border="0" src="../3b/lily-bf4b61d3.png" alt="[image of music]"> </a> </p> </blockquote> <!-- footer_tag --><br><hr> <div class="node"> <p> <a name="Modifying-context-plug_002dins"></a> Next: <a rel="next" accesskey="n" href="Changing-context-default-settings.de.html#Changing-context-default-settings">Changing context default settings</a>, Previous: <a rel="previous" accesskey="p" href="Creating-contexts.de.html#Creating-contexts">Creating contexts</a>, Up: <a rel="up" accesskey="u" href="Interpretation-contexts.de.html#Interpretation-contexts">Interpretation contexts</a> </div> <div style="background-color: #e8ffe8; padding: 2; border: #c0ffc0 1px solid;"> <p> <font size="-1"> Diese Seite ist für LilyPond-2.11.57 (Entwicklungszweig). <br> <address> Fehler bitte an <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> melden. </address> <br> Ihre <a href="http://lilypond.org/web/devel/participating/documentation-adding">Vorschläge für die Dokumentation</a> sind willkommen. </font> </p> </div> <P> Andere Sprachen: <a href="Modifying-context-plug_002dins.fr.html">français</a>, <a href="Modifying-context-plug_002dins.es.html">español</a>. <BR> </P> </BODY></html>