Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > by-pkgid > 3a7b4dfc766af1222d90c7f03a0844e6 > files > 6096

lilypond-doc-2.11.57-1mdv2009.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- header_tag -->
<html lang="en">
<head>
<title>Contexts explained - 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.html#Top">
<link rel="up" href="Contexts-and-engravers.html#Contexts-and-engravers" title="Contexts and engravers">
<link rel="next" href="Creating-contexts.html#Creating-contexts" title="Creating contexts">
<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="Contexts-explained"></a>
Next:&nbsp;<a rel="next" accesskey="n" href="Creating-contexts.html#Creating-contexts">Creating contexts</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Contexts-and-engravers.html#Contexts-and-engravers">Contexts and engravers</a>
<hr>
</div>

<h4 class="subsection">3.3.1 Contexts explained</h4>

<p><a name="index-contexts-explained-284"></a>
When music is printed, many notational elements which do not
appear explicitly in the input file must be added to the
output.  For example, compare the input and output of the
following example:

   <blockquote>
<pre class="verbatim">     
     cis4 cis2. g4
</pre>
     <p>
 <a href="../b7/lily-2876d60a.ly">
  <img align="middle"
    border="0" src="../b7/lily-2876d60a.png" alt="[image of music]">
 </a>
</p>

   </blockquote>

   <p>The input is rather sparse, but in the output, bar lines,
accidentals, clef, and time signature have been added.  When
LilyPond <em>interprets</em> the input the musical information
is inspected in time order, similar to reading a score from left
to right.  While reading the input, the program remembers where
measure boundaries are, and which pitches require explicit
accidentals.  This information must be held on several levels. 
For example, the effect of an accidental is limited
to a single staff, while a bar line must be synchronized across
the entire score.

   <p>Within LilyPond, these rules and bits of information are grouped
in <em>Contexts</em>.  We have already met the
<code>Voice</code> context. 
Others are the <code>Staff</code> and <code>Score</code> contexts. 
Contexts are hierarchical to reflect the hierarchical nature of
a musical score. 
For example: a <code>Staff</code> context can contain many
<code>Voice</code> contexts, and a <code>Score</code> context can
contain many <code>Staff</code> contexts.

   <blockquote>
<img src="../context-example.png" alt="context-example.png">
</blockquote>

   <p>Each context has the responsibility for enforcing some notation rules,
creating some notation objects and maintaining the associated
properties.  For example, the <code>Voice</code> context may introduce an
accidental and then the <code>Staff</code> context maintains the rule to
show or suppress the accidental for the remainder of the measure.

   <p>As another example, the synchronization of bar lines is, by default,
handled in the <code>Score</code> context. 
However, in some music we may not want the bar lines to be
synchronized &ndash; consider a polymetric score in 4/4 and 3/4 time. 
In such cases, we must modify the default settings of the
<code>Score</code> and <code>Staff</code> contexts.

   <p>For very simple scores, contexts are created implicitly, and you need
not be aware of them.  For larger pieces, such as anything with more
than one staff, they must be
created explicitly to make sure that you get as many staves as you
need, and that they are in the correct order.  For typesetting pieces
with specialized notation, it is usual to modify existing, or
even to define totally new, contexts.

   <p>In addition to the <code>Score,</code> <code>Staff</code> and
<code>Voice</code> contexts there are contexts which fit between
the score and staff levels to control staff groups, such as the
<code>PianoStaff</code> and <code>ChoirStaff</code> contexts.  There
are also alternative staff and voice contexts, and contexts for
lyrics, percussion, fret boards, figured bass, etc.

   <p>The names of all context types are formed from one or more
words, each word being capitalized and joined immediately to the
preceding word with no hyphen or underscore, e.g.,
<code>GregorianTranscriptionStaff</code>.

<p class="noindent">

<h5 class="subsubheading">See also</h5>

   <p class="indent">

   <p>Notation Reference: <a name="index-Contexts-explained-285"></a><a href="../lilypond/Contexts-explained.html#Contexts-explained">Contexts explained</a>.

   <!-- footer_tag --><br><hr>
<div class="node">
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Creating-contexts.html#Creating-contexts">Creating contexts</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Contexts-and-engravers.html#Contexts-and-engravers">Contexts and engravers</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="Contexts-explained.fr.html">français</a>, <a href="Contexts-explained.es.html">español</a>.
 <BR>
 
</P>
</BODY></html>