]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/introduction.itely
More `about' stuff, plus THANKS and TODO lists.
[lilypond.git] / Documentation / user / introduction.itely
index 101772c95d26e26fb6bd44e299f2b3df01a73517..a079f30e2743dc15d2359a3a93b393b107f05344 100644 (file)
@@ -1,5 +1,5 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
-@c This file is part of lilypond.tely
+@c This file is part of lilypond-learning.tely
 @ignore
     Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
 
@@ -7,9 +7,25 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c \version "2.11.38"
+
 @node Introduction
 @chapter Introduction
 
+This chapter introduces readers to LilyPond and the
+documentation.
+
+@menu
+* Background::                  
+* About the documentation::     
+@end menu
+
+
+@node Background
+@section Background
+
+This section covers the overall goals and architecture of
+LilyPond.
 
 @menu
 * Engraving::                   
 * What symbols to engrave?::    
 * Music representation::        
 * Example applications::        
-* About this manual::           
 @end menu
 
 
 @node Engraving
-@section Engraving
+@unnumberedsubsec Engraving
 
 The art of music typography is called @emph{(plate) engraving}.  The
 term derives from the traditional process of music printing.  Just a
@@ -50,11 +65,11 @@ The images below illustrate the difference between traditional
 engraving and typical computer output, and the third picture shows how
 LilyPond mimics the traditional look.  The left picture shows a scan
 of a flat symbol from an edition published in 2000.  The center
-depicts a symbol from a hand-engraved B@"{a}renreiter edition of the
+depicts a symbol from a hand-engraved Bärenreiter edition of the
 same music.  The left scan illustrates typical flaws of computer
 print: the staff lines are thin, the weight of the flat symbol matches
 the light lines and it has a straight layout with sharp corners.  By
-contrast, the B@"{a}renreiter flat has a bold, almost voluptuous
+contrast, the Bärenreiter flat has a bold, almost voluptuous
 rounded look.  Our flat symbol is designed after, among others, this
 one.  It is rounded, and its weight harmonizes with the thickness of
 our staff lines, which are also much thicker than lines in the
@@ -87,15 +102,14 @@ computer edition.
 @end ifnottex
 @end ifnotinfo
 @ifinfo
-@c workaround for makeinfo-4.6: line breaks and multi-column cookies
-@image{henle-flat-bw,,,png} @image{baer-flat-bw,,,png}
-@image{lily-flat-bw,,,png}
+@image{lilypond/henle-flat-bw,,,png} @image{lilypond/baer-flat-bw,,,png}
+@image{lilypond/lily-flat-bw,,,png}
 @end ifinfo
 
 @item @tab
 Henle (2000)
 @tab
-B@"{a}renreiter (1950)
+Bärenreiter (1950)
 @tab
 LilyPond Feta font (2003)
 
@@ -224,7 +238,7 @@ love to play from.
 
 
 @node Automated engraving
-@section Automated engraving
+@unnumberedsubsec Automated engraving
 
 How do we go about implementing typography?  If craftsmen need over
 ten years to become true masters, how could we simple hackers ever
@@ -243,7 +257,7 @@ programming language; the program's functionality was set in stone by
 the developers.  That proved to be unsatisfactory for a number of
 reasons:
 
-@itemize @bullet
+@itemize
 @item When LilyPond makes mistakes,
 users need to override formatting decisions.  Therefore, the user must
 have access to the formatting engine.  Hence, rules and settings cannot
@@ -362,7 +376,7 @@ music fragment.
 
 
 @node What symbols to engrave?
-@section What symbols to engrave?
+@unnumberedsubsec What symbols to engrave?
 
 @cindex engraving
 @cindex typography
@@ -540,7 +554,7 @@ context.  The Score context is the top level notation context.
 
 @seealso
 
-Program reference: @internalsref{Contexts}.
+Internals Reference: @rinternals{Contexts}.
 
 @lilypond[quote,ragged-right]
 \include "engraver-example.ily"
@@ -553,7 +567,7 @@ Program reference: @internalsref{Contexts}.
 @end lilypond
 
 @node Music representation
-@section Music representation
+@unnumberedsubsec Music representation
 
 Ideally, the input format for any high-level formatting system is an
 abstract description of the content.  In this case, that would be the
@@ -569,14 +583,18 @@ The syntax is also the user-interface for LilyPond, hence it is easy
 to type
 
 @example
-c'4 d'8
+@{
+  c'4 d'8
+@}
 @end example
 
 @noindent
 a quarter note C1 (middle C) and an eighth note D1 (D above middle C)
 
-@lilypond[quote,fragment]
-c'4 d'8
+@lilypond[quote]
+{
+  c'4 d'8
+}
 @end lilypond
 
 On a microscopic scale, such syntax is easy to use.  On a larger
@@ -644,15 +662,18 @@ and representation take up less than 10% of the source code.
 
 
 @node Example applications
-@section Example applications
+@unnumberedsubsec Example applications
 
 We have written LilyPond as an experiment of how to condense the art
 of music engraving into a computer program.  Thanks to all that hard
 work, the program can now be used to perform useful tasks.  The
 simplest application is printing notes.
 
-@lilypond[quote,relative=1,fragment]
-\time 2/4 c4 c g'4 g a4 a g2
+@lilypond[quote,relative=1]
+{
+  \time 2/4
+  c4 c g'4 g a4 a g2
+}
 @end lilypond
 
 @noindent
@@ -686,241 +707,322 @@ in the resulting PDF or HTML output files.  This makes it easy
 to mix music and text in documents.
 
 
+@node About the documentation
+@section About the documentation
 
-@node About this manual
-@section About this manual
+FIXME: still needs some work.
 
-The manual is divided into the following chapters:
-@itemize @bullet
+This section explains the different manuals:
 
+@itemize
 @item
-@ifhtml
-The
-@end ifhtml
-@emph{@ref{Tutorial}}
-gives a gentle introduction to typesetting music.  First time
-users should start here.
+Learning Manual (LM): this introduces LilyPond, giving in-depth
+explanations of how to create notation.
+
+@item
+Music Glossary (MG): this explains musical terms and gives
+translations of terms in other languages.
+
+@item
+Notation Reference (NR): this is the main portion of the
+documentation.  It provides detailed information about creating
+notation.  This book assumes that the reader knows basic material
+covered in the LM and is familiar with the English musical terms
+presented in the MG.
+
+@item
+Application Usage (AU): this discusses the actual programs and
+operation system-specific issues.
+
+@item
+Snippet List (SL): this is a collection of short LilyPond examples
+(@qq{snippets}).
+
+@item
+Internals Reference (IR): this gives information about LilyPond
+internal programming information, which is required for
+constructing tweaks.
+
+@item
+Other documentation: there are a few other portions of the
+documentation, such as News items and the mailist archives.
+
+@end itemize
+
+@menu
+* About the Learning Manual (LM)::  
+* About the Music Glossary (MG)::  
+* About the Notation Reference (NR)::  
+* About the Application Usage (AU)::  
+* About the Snippet List (SL)::  
+* About the Internals Reference (IR)::  
+* Other documentation::         
+@end menu
+
+
+@node About the Learning Manual (LM)
+@unnumberedsubsec About the Learning Manual (LM)
+
+This book explains how to begin learning LilyPond, as well as
+explaining some key concepts in easy terms.  It is recommended to
+read these chapters in a linear fashion.
+
+@itemize
 
 @item
-@emph{@ref{Putting it all together}}
-explains some general concepts about the lilypond file format.  If
-you are not certain where to place a command, read this chapter!
+@ref{Tutorial}: gives a gentle introduction to typesetting music.
+First time users should start here.
 
 @item
-@emph{@ref{Working on LilyPond projects}}
-discusses practical uses of LilyPond and how to avoid some common
-problems.
+@ref{Fundamental concepts}: explains some general concepts about
+the LilyPond file format.  If you are not certain where to place a
+command, read this chapter!
 
 @item
-@emph{@ref{Tweaking output}}
-shows how to change the default engraving that LilyPond
-produces.
+@ref{Working on LilyPond projects}: discusses practical uses of
+LilyPond and how to avoid some common problems.
 
 @item
-@emph{@ref{Basic notation}}
+@ref{Tweaking output}: shows how to change the default engraving
+that LilyPond produces.
+
+@end itemize
+
+
+@node About the Music Glossary (MG)
+@unnumberedsubsec About the Music Glossary (MG)
+
+@cindex idiom
+@cindex jargon
+@cindex terminology
+@cindex foreign languages
+@cindex language
+
+@ref{Top,Music glossary,,music-glossary}:
+this explains musical terms, and includes translations to various
+languages.  If you are not familiar with music notation or music
+terminology (especially if you are a non-native English speaker),
+it is highly advisable to consult the glossary.
+
+
+@node About the Notation Reference (NR)
+@unnumberedsubsec About the Notation Reference (NR)
+
+This book explains all the LilyPond commands which produce
+notation.  It assumes that readers are familiar with the concepts
+in the Learning manual.
+
+@itemize
+
+@item
+@ruser{Basic notation}:
 discusses topics grouped by notation construct.  This section gives
 details about basic notation that will be useful in almost any
 notation project.
 
 @item
-@emph{@ref{Instrument-specific notation}}
+@ruser{Specialist notation}:
 discusses topics grouped by notation construct.  This section gives
 details about special notation that will only be useful for particular
 instrument (or vocal) groups.
 
 @item
-@emph{@ref{Advanced notation}}
-discusses topics grouped by notation construct.  This section gives
-details about complicated or unusual notation.
-
-@item
-@emph{@ref{Changing defaults}}
-explains how to fine tune layout.
+@ruser{Input syntax}:
 
 @item
-@emph{@ref{Non-musical notation}}
-discusses non-musical output such as titles, multiple movements,
-and how to select which MIDI instruments to use.
+@ruser{Non-musical notation}:
 
 @item
-@emph{@ref{Spacing issues}}
+@ruser{Spacing issues}:
 discusses issues which affect the global output, such as selecting
 paper size or specifying page breaks.
 
 @item
-@emph{@ref{Interfaces for programmers}}
-explains how to create music functions.
+@ruser{Changing defaults}:
 
 @item
-@emph{@ref{Running LilyPond}}
-shows how to run LilyPond and its helper programs.  In addition, this
-section explains how to upgrade input files from previous versions of
-LilyPond.
+@ruser{Interfaces for programmers}:
+explains how to create music functions with scheme.
 
-@item
-@emph{@ref{LilyPond-book}} explains the details behind creating
-documents with in-line music examples, like this manual.
+@end itemize
 
-@item
-@emph{@ref{Converting from other formats}}
-explains how to run the conversion programs.  These programs are
-supplied with the LilyPond package, and convert a variety of music
-formats to the @code{.ly} format.
 
+The NR also contains appendices with useful reference charts.
+
+@itemize
 @item
-@ifhtml
-The
-@end ifhtml
-@emph{@ref{Literature list}}
-contains a set of useful reference books for those who wish to know
-more on notation and engraving.
+@ruser{Literature list}:
+contains a set of useful reference books for those who wish to
+know more on notation and engraving.
 
 @item
-The
-@emph{@ref{Scheme tutorial}}
+@ruser{Scheme tutorial}:
 presents a short introduction to Scheme, the programming
 language that music functions use.
 
 @item
-@emph{@ref{Notation manual tables}}
-are a set of tables showing the chord names, MIDI instruments,
-list of color names, and the Feta font.
+@ruser{Notation manual tables}:
+are a set of tables showing the chord names, MIDI instruments, a
+list of color names, and the Feta font.
 
 @item
-@emph{@ref{Templates}}
+@ruser{Templates}:
 of LilyPond pieces.  Just cut and paste a
 template into a file, add notes, and you're done!
 
 @item
-The
-@emph{@ref{Cheat sheet}}
+@ruser{Cheat sheet}:
 is a handy reference of the most common LilyPond commands.
 
 @item
-The
-@emph{@ref{LilyPond command index}}
+@ruser{LilyPond command index}:
 is an index of all LilyPond @code{\commands}.
 
 @item
-The
-@emph{@ref{LilyPond index}}
+@ruser{LilyPond index}:
 is a complete index.
 
 @end itemize
 
 
-Once you are an experienced user, you can use the manual as reference:
-there is an extensive index@footnote{If you are looking for something,
-and you cannot find it in the manual, that is considered a bug.  In
-that case, please file a bug report.}, but the document is also
-available in
-@iftex
-a big HTML page,
-@end iftex
+@node About the Application Usage (AU)
+@unnumberedsubsec About the Application Usage (AU)
+
+This book explains how to execute the program and how to integrate
+LilyPond notation with other programs.
+
+@itemize
+
+@item
+@rprogram{Install}:
+explains how to install LilyPond (including compilation if desired).
+
+@item
+@rprogram{Setup}:
+describes how to configure your computer for optimum LilyPond usage,
+such as using special environments for certain text editors.
+
+@item
+@rprogram{Running LilyPond}:
+shows how to run LilyPond and its helper programs.  In addition, this
+section explains how to upgrade input files from previous versions of
+LilyPond.
+
+@item
+@rprogram{LilyPond-book}:
+explains the details behind creating documents with in-line music
+examples, like this manual.
+
+@item
+@rprogram{Converting from other formats}:
+explains how to run the conversion programs.  These programs are
+supplied with the LilyPond package, and convert a variety of music
+formats to the @code{.ly} format.
+
+@end itemize
+
+
+@node About the Snippet List (SL)
+@unnumberedsubsec About the Snippet List (SL)
+
+@cindex snippets
+@cindex LSR
+
+The Snippet List shows a selected set of LilyPond snippets from the
+@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
+(LSR).  It is in the public domain.
+
+Please note that this document is not an exact subset of LSR.  LSR
+is running a stable LilyPond version, so any snippet which
+demonstrates new features of a development version must be added
+separately.  These are stored in @file{input/new/} in the LilyPond
+source tree.
+
+The list of snippets for each subsection of the Notation Reference
+(NR) are also linked from the @strong{See also} portion.
+
+@itemize
+@item
+The
 @ifhtml
-@uref{source/Documentation/user/lilypond.html, one big page},
+@uref{source/input/lsr/lilypond-snippets/index.html,Snippets}
 @end ifhtml
-which can be searched easily using the search facility of a web
-browser.
-@cindex search in manual
-@cindex using the manual
-
-@c FIXME:
-@c add/integrate glossary, put in list above
-If you are not familiar with music notation or music terminology
-(especially if you are a non-native English speaker), it is advisable
-to consult the glossary as well.
-@iftex
-The music glossary explains musical terms, and includes translations
-to various languages.  It is a separate document, available in HTML
-and PDF.
-@end iftex
-@ifnottex
-The @ref{Top,Music glossary,,music-glossary}, explains musical terms and
-includes translations to various languages.  It is also available in
-PDF.
-@end ifnottex
-@cindex idiom
-@cindex jargon
-@cindex terminology
-@cindex foreign languages
-@cindex language
+@ifnothtml
+Snippets
+@end ifnothtml
+are a great collection of short examples which demonstrate tricks, tips,
+and special features of LilyPond.  Most of these snippets can also be
+found in the @uref{http://lsr.dsi.unimi.it/,LilyPond Snippet
+Repository}.  This website also has a searchable LilyPond manual.
+@end itemize
 
 
-This manual is not complete without a number of other documents.  They
-are not available in print, but should be included with the
-documentation package for your platform
+@node About the Internals Reference (IR)
+@unnumberedsubsec About the Internals Reference (IR)
 
-@itemize @bullet
+
+@itemize
 @item
+The
 @iftex
-Program reference
+Internals Reference
 @end iftex
 @ifnottex
-@ref{Top,Program reference,,lilypond-internals}.
+@ref{Top,Internals Reference,,lilypond-internals}
 @end ifnottex
-
-The program reference is a set of heavily cross linked HTML pages,
-which document the nitty-gritty details of each and every LilyPond
-class, object, and function.  It is produced directly from the
-formatting definitions used.
+is a set of heavily cross linked HTML pages, which document the
+nitty-gritty details of each and every LilyPond class, object, and
+function.  It is produced directly from the formatting definitions used.
 
 Almost all formatting functionality that is used internally, is
-available directly to the user.  For example, all variables that
-control thickness values, distances, etc., can be changed in input
-files.  There are a huge number of formatting options, and all of them
-are described in this document.  Each section of the notation manual
-has a @b{See also} subsection, which refers to the generated
-documentation.  In the HTML document, these subsections have clickable
-links.
+available directly to the user.  For example, all variables that control
+thickness values, distances, etc., can be changed in input files.  There
+are a huge number of formatting options, and all of them are described
+in this document.  Each section of the notation manual has a @b{See
+also} subsection, which refers to the generated documentation.  In the
+HTML document, these subsections have clickable links.
 
-@cindex snippets
-@item
-@ifnothtml
-Various input examples.
-@end ifnothtml
-@ifhtml
-@c Works, but link name is not so nice; so write-out macro
-@c @inputfileref{input/test,Various input examples}.
-@uref{source/input/test/collated-files.html,Various input examples}.
-@end ifhtml
+@end itemize
 
-This collection of files shows various tips and tricks, and is
-available as a big HTML document, with pictures and explanatory texts
-included.
 
-@item
-@ifnothtml
-The regression tests.
-@end ifnothtml
+@node Other documentation
+@unnumberedsubsec Other documentation
+
+FIXME: most of this should go higher up.  Discuss News, mailist
+archives, ...?
+
+There are a number of other places which may be very valuable.
+
+Once you are an experienced user, you can use the manual as reference:
+there is an extensive index@footnote{If you are looking for something,
+and you cannot find it in the manual, that is considered a bug.  In
+that case, please file a bug report.}, but the document is also
+available in
+@iftex
+a big HTML page,
+@end iftex
 @ifhtml
-@c Works, but link name is not so nice; so write-out macro
-@c @inputfileref{input/regression,The regression tests}.
-@uref{source/input/regression/collated-files.html,The regression tests}.
+@uref{source/Documentation/user/lilypond-big-page.html, one big page},
 @end ifhtml
-
-This collection of files tests each notation and engraving feature of
-LilyPond in one file.  The collection is primarily there to help us
-debug problems, but it can be instructive to see how we exercise the
-program.  The format is similar to the tips and tricks document.
-@end itemize
+which can be searched easily using the search facility of a web
+browser.
 
 
 In all HTML documents that have music fragments embedded, the LilyPond
 input that was used to produce that image can be viewed by clicking
 the image.
 
-The location of the documentation files that are mentioned here can
-vary from system to system.  On occasion, this manual refers to
+The location of the documentation files that are mentioned here can vary
+from system to system.  On occasion, this manual refers to
 initialization and example files.  Throughout this manual, we refer to
 input files relative to the top-directory of the source archive.  For
-example, @file{input/@/test/@/bla@/.ly} may refer to the file
-@file{lilypond@/2.x.y/@/input/@/test/@/bla@/.ly}.  On binary packages
-for the Unix platform, the documentation and examples can typically be
-found somewhere below @file{/usr/@/share/@/doc/@/lilypond/}.
-Initialization files, for example @file{scm/@/lily@/.scm}, or
-@file{ly/@/engraver@/-init@/.ly}, are usually found in the directory
-@file{/usr/@/share/@/lilypond/}.
+example, @file{input/@/lsr/@/dirname/@/bla@/.ly} may refer to the file
+@file{lilypond@/2.x.y/@/input/@/lsr/@/dirname/@/bla@/.ly}.  On binary
+packages for the UNIX platform, the documentation and examples can
+typically be found somewhere below
+@file{/usr/@/share/@/doc/@/lilypond/}.  Initialization files, for
+example @file{scm/@/lily@/.scm}, or @file{ly/@/engraver@/-init@/.ly},
+are usually found in the directory @file{/usr/@/share/@/lilypond/}.
 
 @cindex adjusting output
 @cindex variables
@@ -928,10 +1030,13 @@ Initialization files, for example @file{scm/@/lily@/.scm}, or
 @cindex lilypond-internals
 @cindex internal documentation
 @cindex Scheme
-@cindex extending lilypond
+@cindex extending LilyPond
 @cindex index
 
 Finally, this and all other manuals, are available online both as PDF
 files and HTML from the web site, which can be found at
 @uref{http://@/www@/.lilypond@/.org/}.
 
+
+
+