Sophie

Sophie

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

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>Objects and interfaces - 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="Tweaking-basics.html#Tweaking-basics" title="Tweaking basics">
<link rel="prev" href="Introduction-to-tweaks.html#Introduction-to-tweaks" title="Introduction to tweaks">
<link rel="next" href="Naming-conventions-of-objects-and-properties.html#Naming-conventions-of-objects-and-properties" title="Naming conventions of objects and properties">
<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="Objects-and-interfaces"></a>
Next:&nbsp;<a rel="next" accesskey="n" href="Naming-conventions-of-objects-and-properties.html#Naming-conventions-of-objects-and-properties">Naming conventions of objects and properties</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Introduction-to-tweaks.html#Introduction-to-tweaks">Introduction to tweaks</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Tweaking-basics.html#Tweaking-basics">Tweaking basics</a>
<hr>
</div>

<h4 class="subsection">4.1.2 Objects and interfaces</h4>

<p><a name="index-objects-327"></a><a name="index-grobs-328"></a><a name="index-spanners-329"></a><a name="index-interfaces-330"></a>
Tweaking involves modifying the internal operation and structures
of the LilyPond program, so we must first introduce some terms
which are used to describe those internal operations and
structures.

   <p>The term &lsquo;Object&rsquo; is a generic term used to refer to the
multitude of internal structures built by LilyPond during the
processing of an input file.  So when a command like <code>\new
Staff</code> is encountered a new object of type <code>Staff</code> is
constructed.  That <code>Staff</code> object then holds all the
properties associated with that particular staff, for example, its
name and its key signature, together with details of the engravers
which have been assigned to operate within that staff's context. 
Similarly, there are objects to hold the properties of all other
contexts, such as <code>Voice</code> objects, <code>Score</code> objects,
<code>Lyrics</code> objects, as well as objects to represent all
notational elements such as bar lines,
note heads, ties, dynamics, etc.  Every object has its own set of
property values.

   <p>Some types of object are given special names.  Objects which
represent items of notation on the printed output such as
 note heads, stems, slurs, ties, fingering, clefs, etc are called
&lsquo;Layout objects&rsquo;, often known as &lsquo;Graphical Objects&rsquo;, or
&lsquo;Grobs&rsquo; for short.  These are still objects in the generic sense
above, and so they too all have properties associated with them,
such as their position, size, color, etc.

   <p>Some layout objects are still more specialized.  Phrasing slurs,
crescendo hairpins, ottava marks, and many other grobs are not
localized in a single place &ndash; they have a starting point, an
ending point, and maybe other properties concerned with their
shape.  Objects with an extended shape like these are called
&lsquo;Spanners&rsquo;.

   <p>It remains to explain what &lsquo;Interfaces&rsquo; are.  Many objects,
even though they are quite different, share common features
which need to be processed in the same way. 
For example, all grobs have a color, a size, a position, etc,
and all these properties are processed in the same way during
LilyPond's
interpretation of the input file.  To simplify these internal
operations these common actions and properties are grouped
together in an object called a <code>grob-interface</code>.  There
are many other groupings of common properties like this, each
one given a name ending in <code>interface</code>.  In total there
are over 100 such interfaces.  We shall see later why this is
of interest and use to the user.

   <p>These, then, are the main terms relating to objects which we
shall use in this chapter.

   <!-- footer_tag --><br><hr>
<div class="node">
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Naming-conventions-of-objects-and-properties.html#Naming-conventions-of-objects-and-properties">Naming conventions of objects and properties</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Introduction-to-tweaks.html#Introduction-to-tweaks">Introduction to tweaks</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Tweaking-basics.html#Tweaking-basics">Tweaking basics</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="Objects-and-interfaces.es.html">espaƱol</a>.
 <BR>
 
</P>
</BODY></html>