<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- header_tag --> <html lang="en"> <head> <title>General suggestions - 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="Suggestions-for-writing-LilyPond-input-files.html#Suggestions-for-writing-LilyPond-input-files" title="Suggestions for writing LilyPond input files"> <link rel="next" href="Typesetting-existing-music.html#Typesetting-existing-music" title="Typesetting existing music"> <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="General-suggestions"></a> Next: <a rel="next" accesskey="n" href="Typesetting-existing-music.html#Typesetting-existing-music">Typesetting existing music</a>, Up: <a rel="up" accesskey="u" href="Suggestions-for-writing-LilyPond-input-files.html#Suggestions-for-writing-LilyPond-input-files">Suggestions for writing LilyPond input files</a> <hr> </div> <h4 class="subsection">5.1.1 General suggestions</h4> <p>Here are a few suggestions that can help you to avoid or fix problems: <ul> <li><strong>Include </strong><code>\version</code><strong> numbers in every file</strong>. Note that all templates contain <code>\version</code> information. We highly recommend that you always include the <code>\version</code>, no matter how small your file is. Speaking from personal experience, it's quite frustrating to try to remember which version of LilyPond you were using a few years ago. <samp><span class="command">convert-ly</span></samp> requires you to declare which version of LilyPond you used. <li><strong>Include checks</strong>: <a name="index-Bar-and-bar-number-checks-439"></a><a href="../lilypond/Bar-and-bar-number-checks.html#Bar-and-bar-number-checks">Bar and bar number checks</a>, <a name="index-Octave-checks-440"></a><a href="../lilypond/Octave-checks.html#Octave-checks">Octave checks</a>. If you include checks every so often, then if you make a mistake, you can pinpoint it quicker. How often is ‘every so often’? It depends on the complexity of the music. For very simple music, perhaps just once or twice. For very complex music, perhaps every bar. <li><strong>One bar per line of text</strong>. If there is anything complicated, either in the music itself or in the output you desire, it's often good to write only one bar per line. Saving screen space by cramming eight bars per line just isn't worth it if you have to ‘debug’ your input files. <li><strong>Comment your input files</strong>. Use either bar numbers (every so often) or references to musical themes (‘second theme in violins,’ ‘fourth variation,’ etc.). You may not need comments when you're writing the piece for the first time, but if you want to go back to change something two or three years later, or if you pass the source over to a friend, it will be much more challenging to determine your intentions or how your file is structured if you didn't comment the file. <li><strong>Indent your braces</strong>. A lot of problems are caused by an imbalance in the number of <code>{</code> and <code>}</code>. <li><strong>Explicitly add durations</strong> at the beginnings of sections and variables. If you specify <code>c4 d e</code> at the beginning of a phrase (instead of just <code>c d e</code>) you can save yourself some problems if you rearrange your music later. <li><strong>Separate tweaks</strong> from music definitions. See <a href="Saving-typing-with-variables-and-functions.html#Saving-typing-with-variables-and-functions">Saving typing with variables and functions</a>, and <a href="Style-sheets.html#Style-sheets">Style sheets</a>. </ul> <!-- footer_tag --><br><hr> <div class="node"> <p> Next: <a rel="next" accesskey="n" href="Typesetting-existing-music.html#Typesetting-existing-music">Typesetting existing music</a>, Up: <a rel="up" accesskey="u" href="Suggestions-for-writing-LilyPond-input-files.html#Suggestions-for-writing-LilyPond-input-files">Suggestions for writing LilyPond input files</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="General-suggestions.fr.html">français</a>, <a href="General-suggestions.es.html">español</a>, <a href="General-suggestions.de.html">deutsch</a>. <BR> </P> </BODY></html>