Sophie

Sophie

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

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>Music representation - 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="Background.html#Background" title="Background">
<link rel="prev" href="What-symbols-to-engrave_003f.html#What-symbols-to-engrave_003f" title="What symbols to engrave?">
<link rel="next" href="Example-applications.html#Example-applications" title="Example applications">
<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="Music-representation"></a>
Next:&nbsp;<a rel="next" accesskey="n" href="Example-applications.html#Example-applications">Example applications</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="What-symbols-to-engrave_003f.html#What-symbols-to-engrave_003f">What symbols to engrave?</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Background.html#Background">Background</a>
<hr>
</div>

<h4 class="unnumberedsubsec">Music representation</h4>

<p>Ideally, the input format for any high-level formatting system is
an abstract description of the content.  In this case, that would
be the music itself.  This poses a formidable problem: how can we
define what music really is? Instead of trying to find an answer,
we have reversed the question.  We write a program capable of
producing sheet music, and adjust the format to be as lean as
possible.  When the format can no longer be trimmed down, by
definition we are left with content itself.  Our program serves as
a formal definition of a music document.

   <p>The syntax is also the user-interface for LilyPond, hence it is
easy to type:

<pre class="example">     {
       c'4 d'8
     }
</pre>
   <p class="noindent">to create a quarter note C1 (middle C) and an eighth note D1 (D
above middle C).

   <blockquote>
     <p>
 <a href="../c8/lily-9e28f9be.ly">
  <img align="middle"
    border="0" src="../c8/lily-9e28f9be.png" alt="[image of music]">
 </a>
</p>

   </blockquote>

   <p>On a microscopic scale, such syntax is easy to use.  On a larger
scale, syntax also needs structure.  How else can you enter
complex pieces like symphonies and operas?  The structure is
formed by the concept of music expressions: by combining small
fragments of music into larger ones, more complex music can be
expressed.  For example

   <blockquote>
<pre class="verbatim">     
     f4
</pre>
     <p>
 <a href="../1b/lily-c49d0a45.ly">
  <img align="middle"
    border="0" src="../1b/lily-c49d0a45.png" alt="[image of music]">
 </a>
</p>

   </blockquote>

<p class="noindent">Simultaneous notes can be constructed by enclosing them with
<code>&lt;&lt;</code> and <code>&gt;&gt;</code>:

<pre class="example">&lt;&lt;c4 d4 e4&gt;&gt;
</pre>
   <blockquote>
     <p>
 <a href="../eb/lily-4bccd100.ly">
  <img align="middle"
    border="0" src="../eb/lily-4bccd100.png" alt="[image of music]">
 </a>
</p>

   </blockquote>

<p class="noindent">This expression is put in sequence by enclosing it in curly braces
<code>{&nbsp;...&nbsp;}</code>:

<pre class="example">{ f4 &lt;&lt;c4 d4 e4&gt;&gt; }
</pre>
   <blockquote>
     <p>
 <a href="../9f/lily-75801860.ly">
  <img align="middle"
    border="0" src="../9f/lily-75801860.png" alt="[image of music]">
 </a>
</p>

   </blockquote>

<p class="noindent">The above is also an expression, and so it may be combined again
with another simultaneous expression (a half note) using
<code>&lt;&lt;</code>, <code>\\</code>, and <code>&gt;&gt;</code>:

<pre class="example">&lt;&lt; g2 \\ { f4 &lt;&lt;c4 d4 e4&gt;&gt; } &gt;&gt;
</pre>
   <blockquote>
     <p>
 <a href="../e9/lily-b9924f13.ly">
  <img align="middle"
    border="0" src="../e9/lily-b9924f13.png" alt="[image of music]">
 </a>
</p>

   </blockquote>

   <p>Such recursive structures can be specified neatly and formally in
a context-free grammar.  The parsing code is also generated from
this grammar.  In other words, the syntax of LilyPond is clearly
and unambiguously defined.

   <p>User-interfaces and syntax are what people see and deal with most. 
They are partly a matter of taste, and also subject of much
discussion.  Although discussions on taste do have their merit,
they are not very productive.  In the larger picture of LilyPond,
the importance of input syntax is small: inventing neat syntax is
easy, while writing decent formatting code is much harder.  This
is also illustrated by the line-counts for the respective
components: parsing and representation take up less than 10% of
the source code.

   <!-- footer_tag --><br><hr>
<div class="node">
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Example-applications.html#Example-applications">Example applications</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="What-symbols-to-engrave_003f.html#What-symbols-to-engrave_003f">What symbols to engrave?</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Background.html#Background">Background</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="Music-representation.fr.html">français</a>, <a href="Music-representation.es.html">español</a>, <a href="Music-representation.de.html">deutsch</a>.
 <BR>
 
</P>
</BODY></html>