Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > f07b4b9fcbe6d8ab9260b52d15e551a6 > files > 6951

lilypond-doc-2.12.3-1.fc13.noarch.rpm

<!-- header_tag -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
<!-- Copyright C 1999-2009 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".

 -->
<!-- Created on December 15, 2009 by texi2html 1.82
texi2html was written by: 
            Lionel Cons <Lionel.Cons@cern.ch> (original author)
            Karl Berry  <karl@freefriends.org>
            Olaf Bachmann <obachman@mathematik.uni-kl.de>
            and many others.
Maintained by: Many creative people.
Send bugs and suggestions to <texi2html-bug@nongnu.org>
-->
<head>
<title>GNU LilyPond Learning Manual: 3.3.3 Engravers explained</title>

<meta name="description" content="GNU LilyPond Learning Manual: 3.3.3 Engravers explained">
<meta name="keywords" content="GNU LilyPond Learning Manual: 3.3.3 Engravers explained">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="texi2html 1.82">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.ja.html#Top" rel="start" title="GNU LilyPond &mdash; Learning Manual">
<link href="LilyPond-index.ja.html#LilyPond-index" rel="index" title="D. LilyPond index">
<link href="index_toc.ja.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index_abt.ja.html#SEC_About" rel="help" title="About This Document">
<link href="Contexts-and-engravers.ja.html#Contexts-and-engravers" rel="up" title="3.3 Contexts and engravers">
<link href="LilyPond-index.ja.html#LilyPond-index" rel="next" title="D. LilyPond index">
<link href="Creating-contexts.ja.html#Creating-contexts" rel="previous" title="3.3.2 Creating contexts">
<link rel="stylesheet" type="text/css" title="Patrick McCarty's design" href="lilypond-mccarty.css">
<link rel="alternate stylesheet" type="text/css" href="lilypond.css" title="Andrew Hawryluk's design">
<link rel="alternate stylesheet" type="text/css" href="lilypond-blue.css" title="Kurt Kroon's blue design">
<!--[if lte IE 7]>
<link href="lilypond-ie-fixes.css" rel="stylesheet" type="text/css">
<![endif]-->


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">


<div id="main">
<a name="Engravers-explained"></a>
<table class="nav_table">
<tr><td valign="middle" align="left" colspan="1">[<a href="Fundamental-concepts.ja.html#Fundamental-concepts" title="Beginning of this chapter or previous chapter"> &lt;&lt; Fundamental concepts&nbsp;</a>]</td><td valign="middle" align="center" colspan="3">[<a href="index.ja.html#Top" title="Cover (top) of document" rel="start">Top</a>][<a href="index_toc.ja.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="LilyPond-index.ja.html#LilyPond-index" title="Index" rel="index">Index</a>][<a href="index_abt.ja.html#SEC_About" title="About (help)" rel="help"> ? </a>]</td><td valign="middle" align="right" colspan="1">[<a href="Tweaking-output.ja.html#Tweaking-output" title="Next chapter">&nbsp;Tweaking output &gt;&gt; </a>]</td></tr><tr><td valign="middle" align="left" colspan="2">[<a href="Creating-contexts.ja.html#Creating-contexts" title="Previous section in reading order" accesskey="p" rel="previous"> &lt; Creating contexts&nbsp;</a>]</td><td valign="middle" align="center" colspan="1">[<a href="Contexts-and-engravers.ja.html#Contexts-and-engravers" title="Up section" accesskey="u" rel="up">&nbsp; Up :&nbsp;Contexts and engravers&nbsp;</a>]</td><td valign="middle" align="right" colspan="2">[<a href="Modifying-context-properties.ja.html#Modifying-context-properties" title="Next section in reading order" accesskey="n" rel="next">&nbsp;Modifying context properties &gt; </a>]</td></tr></table>
<a name="Engravers-explained"></a>
<h3 class="subsection">3.3.3 Engravers explained</h3>

<a name="index-engravers"></a>

<p>Every mark on the printed output of a score produced by LilyPond
is produced by an <code>Engraver</code>.  Thus there is an engraver
to print staves, one to print note heads, one for stems, one for
beams, etc, etc.  In total there are over 120 such engravers!
Fortunately, for most scores it is not necessary to know about
more than a few, and for simple scores you do not need to know
about any.
</p>
<p>Engravers live and operate in Contexts.  Engravers such as the
<code>Metronome_mark_engraver</code>, whose action and output apply to the
score as a whole, operate in the highest level context &ndash; the
<code>Score</code> context.
</p>
<p>The <code>Clef_engraver</code> and <code>Key_engraver</code> are to be
found in every <code>Staff</code> Context, as different staves may require
different clefs and keys.
</p>
<p>The <code>Note_heads_engraver</code> and <code>Stem_engraver</code> live
in every <code>Voice</code> context, the lowest level context of all.
</p>
<p>Each engraver processes the particular objects associated
with its function, and maintains the properties that relate
to that function.  These properties, like the properties
associated with contexts, may be modified to change the
operation of the engraver or the appearance of those elements
in the printed score.
</p>
<p>Engravers all have compound names formed from words which
describe their function.  Just the first word is capitalized,
and the remainder are joined to it with underscores.  Thus
the <code>Staff_symbol_engraver</code> is responsible for creating the
lines of the staff, the <code>Clef_engraver</code> determines and sets
the pitch reference point on the staff by drawing a clef symbol.
</p>
<p>Here are some of the most common engravers together with their
function.  You will see it is usually easy to guess the function
from the name, or vice versa.
</p>
<table>
<thead><tr><th width="30%"><p> Engraver
  </p></th><th width="70%"><p> Function
</p></th></tr></thead>
<tr><td width="30%"><p> Accidental_engraver
  </p></td><td width="70%"><p> Makes accidentals, cautionary and suggested accidentals
</p></td></tr>
<tr><td width="30%"><p> Beam_engraver
  </p></td><td width="70%"><p> Engraves beams
</p></td></tr>
<tr><td width="30%"><p> Clef_engraver
  </p></td><td width="70%"><p> Engraves clefs
</p></td></tr>
<tr><td width="30%"><p> Completion_heads_engraver
  </p></td><td width="70%"><p> Splits notes which cross bar lines
</p></td></tr>
<tr><td width="30%"><p> New_dynamic_engraver
  </p></td><td width="70%"><p> Creates hairpins and dynamic texts
</p></td></tr>
<tr><td width="30%"><p> Forbid_line_break_engraver
  </p></td><td width="70%"><p> Prevents line breaks if a musical element is still active
</p></td></tr>
<tr><td width="30%"><p> Key_engraver
  </p></td><td width="70%"><p> Creates the key signature
</p></td></tr>
<tr><td width="30%"><p> Metronome_mark_engraver
  </p></td><td width="70%"><p> Engraves metronome marking
</p></td></tr>
<tr><td width="30%"><p> Note_heads_engraver
  </p></td><td width="70%"><p> Engraves note heads
</p></td></tr>
<tr><td width="30%"><p> Rest_engraver
  </p></td><td width="70%"><p> Engraves rests
</p></td></tr>
<tr><td width="30%"><p> Staff_symbol_engraver
  </p></td><td width="70%"><p> Engraves the five (by default) lines of the staff
</p></td></tr>
<tr><td width="30%"><p> Stem_engraver
  </p></td><td width="70%"><p> Creates stems and single-stem tremolos
</p></td></tr>
<tr><td width="30%"><p> Time_signature_engraver
  </p></td><td width="70%"><p> Creates time signatures
</p></td></tr>
</table>

<br>

<p>We shall see later how the output of LilyPond can be changed
by modifying the action of Engravers.
</p>

<a name="See-also-8"></a>
<h4 class="subsubheading">See also</h4>
<p>Internals reference: <a name="index-Engravers-and-Performers"></a>
<a href="../lilypond-internals/Engravers-and-Performers.ja.html#Engravers-and-Performers">Engravers and Performers</a>.
</p>

<hr size="6">
<table class="nav_table">
<tr><td valign="middle" align="left" colspan="1">[<a href="Fundamental-concepts.ja.html#Fundamental-concepts" title="Beginning of this chapter or previous chapter"> &lt;&lt; Fundamental concepts&nbsp;</a>]</td><td valign="middle" align="center" colspan="3">[<a href="index.ja.html#Top" title="Cover (top) of document" rel="start">Top</a>][<a href="index_toc.ja.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="LilyPond-index.ja.html#LilyPond-index" title="Index" rel="index">Index</a>][<a href="index_abt.ja.html#SEC_About" title="About (help)" rel="help"> ? </a>]</td><td valign="middle" align="right" colspan="1">[<a href="Tweaking-output.ja.html#Tweaking-output" title="Next chapter">&nbsp;Tweaking output &gt;&gt; </a>]</td></tr><tr><td valign="middle" align="left" colspan="2">[<a href="Creating-contexts.ja.html#Creating-contexts" title="Previous section in reading order" accesskey="p" rel="previous"> &lt; Creating contexts&nbsp;</a>]</td><td valign="middle" align="center" colspan="1">[<a href="Contexts-and-engravers.ja.html#Contexts-and-engravers" title="Up section" accesskey="u" rel="up">&nbsp; Up :&nbsp;Contexts and engravers&nbsp;</a>]</td><td valign="middle" align="right" colspan="2">[<a href="Modifying-context-properties.ja.html#Modifying-context-properties" title="Next section in reading order" accesskey="n" rel="next">&nbsp;Modifying context properties &gt; </a>]</td></tr></table>
<!-- footer_tag -->
<div class="footer">
<p class="footer_version">
This page is for LilyPond-2.12.3 (stable-branch).
</p>
<p class="footer_report">
Your <a href="http://lilypond.org/web/devel/participating/documentation-adding">suggestions for the documentation</a> are welcome, please report errors to our <a href="http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs">bug list</a>.
</p>
</div>


<p id="languages">
 Other languages: <a href="Engravers-explained.fr.html">français</a>, <a href="Engravers-explained.es.html">español</a>, <a href="Engravers-explained.de.html">deutsch</a>.
 <br>
 
</p>

<!-- FOOTER -->

<!-- end div#main here -->
</div>



<div id="tocframe">
<p class="toc_uplink"><a href="../index.ja.html" 
         title="Documentation Index">&lt;&lt; Back to Documentation Index</a></p>
<h4 class="toc_header"> <a href="index.ja.html#Top" title="Start of the manual">Learning Manual</a></h4>
<div class="contents">
<ul class="toc">
  <li><a name="toc-Preface-1" href="Preface.ja.html#Preface">Preface</a>  </li>
  <li><a name="toc-Introduction-1" href="Introduction.ja.html#Introduction">1. Introduction</a>
  <ul class="toc">
    <li><a name="toc-Background-1" href="Background.ja.html#Background">1.1 Background</a>    </li>
    <li><a name="toc-About-the-documentation-1" href="About-the-documentation.ja.html#About-the-documentation">1.2 About the documentation</a>    </li>
  </ul>
  </li>
  <li><a name="toc-Tutorial-1" href="Tutorial.ja.html#Tutorial">2. Tutorial</a>
  <ul class="toc">
    <li><a name="toc-First-steps-1" href="First-steps.ja.html#First-steps">2.1 First steps</a>    </li>
    <li><a name="toc-Single-staff-notation-1" href="Single-staff-notation.ja.html#Single-staff-notation">2.2 Single staff notation</a>    </li>
    <li><a name="toc-Multiple-notes-at-once-1" href="Multiple-notes-at-once.ja.html#Multiple-notes-at-once">2.3 Multiple notes at once</a>    </li>
    <li><a name="toc-Songs-1" href="Songs.ja.html#Songs">2.4 Songs</a>    </li>
    <li><a name="toc-Final-touches-1" href="Final-touches.ja.html#Final-touches">2.5 Final touches</a>    </li>
  </ul>
  </li>
  <li class="toc_current"><a name="toc-Fundamental-concepts-1" href="Fundamental-concepts.ja.html#Fundamental-concepts">3. Fundamental concepts</a>
  <ul class="toc">
    <li><a name="toc-How-LilyPond-input-files-work-1" href="How-LilyPond-input-files-work.ja.html#How-LilyPond-input-files-work">3.1 How LilyPond input files work</a>    </li>
    <li><a name="toc-Voices-contain-music-1" href="Voices-contain-music.ja.html#Voices-contain-music">3.2 Voices contain music</a>    </li>
    <li class="toc_current"><a name="toc-Contexts-and-engravers-1" href="Contexts-and-engravers.ja.html#Contexts-and-engravers">3.3 Contexts and engravers</a>
    <ul class="toc">
      <li><a name="toc-Contexts-explained-1" href="Contexts-explained.ja.html#Contexts-explained">3.3.1 Contexts explained</a>      </li>
      <li><a name="toc-Creating-contexts-1" href="Creating-contexts.ja.html#Creating-contexts">3.3.2 Creating contexts</a>      </li>
      <li class="toc_current"><a name="toc-Engravers-explained-1" href="Engravers-explained.ja.html#Engravers-explained">3.3.3 Engravers explained</a>      </li>
      <li><a name="toc-Modifying-context-properties-1" href="Modifying-context-properties.ja.html#Modifying-context-properties">3.3.4 Modifying context properties</a>      </li>
      <li><a name="toc-Adding-and-removing-engravers-1" href="Adding-and-removing-engravers.ja.html#Adding-and-removing-engravers">3.3.5 Adding and removing engravers</a>      </li>
    </ul>
    </li>
    <li><a name="toc-Extending-the-templates-1" href="Extending-the-templates.ja.html#Extending-the-templates">3.4 Extending the templates</a>    </li>
  </ul>
  </li>
  <li><a name="toc-Tweaking-output-1" href="Tweaking-output.ja.html#Tweaking-output">4. Tweaking output</a>
  <ul class="toc">
    <li><a name="toc-Tweaking-basics-1" href="Tweaking-basics.ja.html#Tweaking-basics">4.1 Tweaking basics</a>    </li>
    <li><a name="toc-The-Internals-Reference-manual-1" href="The-Internals-Reference-manual.ja.html#The-Internals-Reference-manual">4.2 The Internals Reference manual</a>    </li>
    <li><a name="toc-Appearance-of-objects-1" href="Appearance-of-objects.ja.html#Appearance-of-objects">4.3 Appearance of objects</a>    </li>
    <li><a name="toc-Placement-of-objects-1" href="Placement-of-objects.ja.html#Placement-of-objects">4.4 Placement of objects</a>    </li>
    <li><a name="toc-Collisions-of-objects-1" href="Collisions-of-objects.ja.html#Collisions-of-objects">4.5 Collisions of objects</a>    </li>
    <li><a name="toc-Further-tweaking-1" href="Further-tweaking.ja.html#Further-tweaking">4.6 Further tweaking</a>    </li>
  </ul>
  </li>
  <li><a name="toc-Working-on-LilyPond-projects-1" href="Working-on-LilyPond-projects.ja.html#Working-on-LilyPond-projects">5. Working on LilyPond projects</a>
  <ul class="toc">
    <li><a name="toc-Suggestions-for-writing-LilyPond-input-files-1" href="Suggestions-for-writing-LilyPond-input-files.ja.html#Suggestions-for-writing-LilyPond-input-files">5.1 Suggestions for writing LilyPond input files</a>    </li>
    <li><a name="toc-When-things-don_0027t-work-1" href="When-things-don_0027t-work.ja.html#When-things-don_0027t-work">5.2 When things don&rsquo;t work</a>    </li>
    <li><a name="toc-Scores-and-parts-1" href="Scores-and-parts.ja.html#Scores-and-parts">5.3 Scores and parts</a>    </li>
  </ul>
  </li>
  <li><a name="toc-Templates-1" href="Templates.ja.html#Templates">A. Templates</a>
  <ul class="toc">
    <li><a name="toc-Single-staff-1" href="Single-staff.ja.html#Single-staff">A.1 Single staff</a>    </li>
    <li><a name="toc-Piano-templates-1" href="Piano-templates.ja.html#Piano-templates">A.2 Piano templates</a>    </li>
    <li><a name="toc-String-quartet-2" href="String-quartet.ja.html#String-quartet">A.3 String quartet</a>    </li>
    <li><a name="toc-Vocal-ensembles-1" href="Vocal-ensembles.ja.html#Vocal-ensembles">A.4 Vocal ensembles</a>    </li>
    <li><a name="toc-Ancient-notation-templates-1" href="Ancient-notation-templates.ja.html#Ancient-notation-templates">A.5 Ancient notation templates</a>    </li>
    <li><a name="toc-Jazz-combo-1" href="Jazz-combo.ja.html#Jazz-combo">A.6 Jazz combo</a>    </li>
    <li><a name="toc-lilypond_002dbook-templates-1" href="lilypond_002dbook-templates.ja.html#lilypond_002dbook-templates">A.7 lilypond-book templates</a>    </li>
  </ul>
  </li>
  <li><a name="toc-Scheme-tutorial-1" href="Scheme-tutorial.ja.html#Scheme-tutorial">B. Scheme tutorial</a>
  <ul class="toc">
    <li><a name="toc-Tweaking-with-Scheme-1" href="Tweaking-with-Scheme.ja.html#Tweaking-with-Scheme">B.1 Tweaking with Scheme</a>    </li>
  </ul>
  </li>
  <li><a name="toc-GNU-Free-Documentation-License-1" href="GNU-Free-Documentation-License.ja.html#GNU-Free-Documentation-License">C. GNU Free Documentation License</a>  </li>
  <li><a name="toc-LilyPond-index-1" href="LilyPond-index.ja.html#LilyPond-index">D. LilyPond index</a>  </li>
</ul>
</div>
</div>

</body>
</html>