<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- header_tag --> <html lang="en"> <head> <title>Working on input files - 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="First-steps.html#First-steps" title="First steps"> <link rel="prev" href="Simple-notation.html#Simple-notation" title="Simple notation"> <link rel="next" href="How-to-read-the-manual.html#How-to-read-the-manual" title="How to read the manual"> <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="Working-on-input-files"></a> Next: <a rel="next" accesskey="n" href="How-to-read-the-manual.html#How-to-read-the-manual">How to read the manual</a>, Previous: <a rel="previous" accesskey="p" href="Simple-notation.html#Simple-notation">Simple notation</a>, Up: <a rel="up" accesskey="u" href="First-steps.html#First-steps">First steps</a> <hr> </div> <h4 class="subsection">2.1.3 Working on input files</h4> <p>LilyPond input files are similar to source files in many common programming languages. They are case sensitive, and white-space is generally ignored. Expressions are formed with curly braces { }, and comments are denoted with <code>%</code> or <code>%{ ... %}</code><!-- /@w -->. <p>If the previous sentences sound like nonsense, don't worry! We'll explain what all these terms mean: <a name="index-case-sensitive-63"></a> <ul><li><strong>Case sensitive</strong>: it matters whether you enter a letter in lower case (e.g. <code>a, b, s, t</code><!-- /@w -->) or upper case (e.g. <code>A, B, S, T</code><!-- /@w -->). Notes are lower case: <code>{ c d e }</code><!-- /@w --> is valid input; <code>{ C D E }</code><!-- /@w --> will produce an error message. <li><strong>Whitespace insensitive</strong>: it does not matter how many spaces (or new lines) you add. <code>{ c d e }</code><!-- /@w --> means the same thing as <code>{ c </code> d e }<!-- /@w --> and: <pre class="example"> { c d e } </pre> <p class="noindent">Of course, the previous example is hard to read. A good rule of thumb is to indent code blocks with either a tab or two spaces: <pre class="example"> { c d e } </pre> <li><strong>Expressions</strong>: every piece of LilyPond input needs to have <strong>{ curly braces }</strong> placed around the input. These braces tell LilyPond that the input is a single music expression, just like parentheses <code>()</code> in mathematics. The braces should be surrounded by a space unless they are at the beginning or end of a line to avoid ambiguities. <p>A LilyPond command followed by a simple expression in braces (such as <code>\relative { }</code><!-- /@w -->) also counts as a single music expression. <p><a name="index-comments-64"></a><a name="index-line-comment-65"></a><a name="index-block-comment-66"></a><li><strong>Comments</strong>: a comment is a remark for the human reader of the music input; it is ignored while parsing, so it has no effect on the printed output. There are two types of comments. The percent symbol <code>%</code> introduces a line comment; anything after <code>%</code> on that line is ignored. By convention, a line comment is placed <em>above</em> the code it refers to. <pre class="example"> a4 a a a % this comment refers to the Bs b2 b </pre> <p>A block comment marks a whole section of music input as a comment. Anything that is enclosed in <code>%{</code> and <code>%}</code> is ignored. However, block comments do not ‘nest’. This means that you cannot place a block comment inside another block comment. If you try, the first <code>%}</code> will terminate <em>both</em> block comments. The following fragment shows possible uses for comments: <pre class="example"> % notes for twinkle twinkle follow c4 c g' g a a g2 %{ This line, and the notes below are ignored, since they are in a block comment. f f e e d d c2 %} </pre> </ul> <!-- footer_tag --><br><hr> <div class="node"> <p> Next: <a rel="next" accesskey="n" href="How-to-read-the-manual.html#How-to-read-the-manual">How to read the manual</a>, Previous: <a rel="previous" accesskey="p" href="Simple-notation.html#Simple-notation">Simple notation</a>, Up: <a rel="up" accesskey="u" href="First-steps.html#First-steps">First steps</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="Working-on-input-files.fr.html">français</a>, <a href="Working-on-input-files.es.html">español</a>. <BR> </P> </BODY></html>