]> 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 e7531fa3440021ecaa10e07ce418ed25a7fddf61..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
@@ -87,9 +102,8 @@ 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
@@ -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,195 +707,245 @@ 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 four books.
+This section explains the different manuals:
 
-@subsubheading Learning manual
+@itemize
+@item
+Learning Manual (LM): this introduces LilyPond, giving in-depth
+explanations of how to create notation.
 
-This book explains how to begin learning LilyPond, as well as explaining
-some key concepts in easy terms.
+@item
+Music Glossary (MG): this explains musical terms and gives
+translations of terms in other languages.
 
-@itemize @bullet
+@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
-@ifhtml
-The
-@end ifhtml
-@emph{@ref{Tutorial}},
-gives a gentle introduction to typesetting music.  First time
-users should start here.
+Application Usage (AU): this discusses the actual programs and
+operation system-specific issues.
 
 @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!
+Snippet List (SL): this is a collection of short LilyPond examples
+(@qq{snippets}).
 
 @item
-@emph{@ref{Working on LilyPond projects}},
-discusses practical uses of LilyPond and how to avoid some common
-problems.
+Internals Reference (IR): this gives information about LilyPond
+internal programming information, which is required for
+constructing tweaks.
 
 @item
-@emph{@ref{Tweaking output}},
-shows how to change the default engraving that LilyPond
-produces.
+Other documentation: there are a few other portions of the
+documentation, such as News items and the mailist archives.
 
 @end itemize
 
-@subsubheading Notation reference
+@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
 
-This book explains all the LilyPond commands which produce notation.  It
-assumes that readers are familiar with the concepts in the Learning
-manual.
 
-@itemize @bullet
+@node About the Learning Manual (LM)
+@unnumberedsubsec About the Learning Manual (LM)
 
-@item
-@emph{@ref{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}},
-discusses topics grouped by notation construct.  This section gives
-details about special notation that will only be useful for particular
-instrument (or vocal) groups.
+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.
 
-@item
-@emph{@ref{Advanced notation}},
-discusses topics grouped by notation construct.  This section gives
-details about complicated or unusual notation.
+@itemize
 
 @item
-@emph{@ref{Changing defaults}},
-explains how to fine tune layout.
+@ref{Tutorial}: gives a gentle introduction to typesetting music.
+First time users should start here.
 
 @item
-@emph{@ref{Non-musical notation}},
-discusses non-musical output such as titles, multiple movements,
-and how to select which MIDI instruments to use.
+@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{Spacing issues}},
-discusses issues which affect the global output, such as selecting
-paper size or specifying page breaks.
+@ref{Working on LilyPond projects}: discusses practical uses of
+LilyPond and how to avoid some common problems.
 
 @item
-@emph{@ref{Interfaces for programmers}},
-explains how to create music functions.
+@ref{Tweaking output}: shows how to change the default engraving
+that LilyPond produces.
 
 @end itemize
 
 
-@subsubheading Program usage
+@node About the Music Glossary (MG)
+@unnumberedsubsec About the Music Glossary (MG)
 
-This book explains how to execute the program and how to integrate
-LilyPond notation with other programs.
+@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)
 
-@itemize @bullet
+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
-@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{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{LilyPond-book}},
-explains the details behind creating
-documents with in-line music examples, like this manual.
+@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{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.
+@ruser{Input syntax}:
 
-@end itemize
+@item
+@ruser{Non-musical notation}:
 
+@item
+@ruser{Spacing issues}:
+discusses issues which affect the global output, such as selecting
+paper size or specifying page breaks.
+
+@item
+@ruser{Changing defaults}:
+
+@item
+@ruser{Interfaces for programmers}:
+explains how to create music functions with scheme.
 
-@subsubheading Appendices
+@end itemize
 
-This book contains useful reference charts.
 
-@itemize @bullet
+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
 
 
-@subsubheading Other information
+@node About the Application Usage (AU)
+@unnumberedsubsec About the Application Usage (AU)
 
-There are a number of other places which may be very valuable.
+This book explains how to execute the program and how to integrate
+LilyPond notation with other programs.
+
+@itemize
 
-@itemize @bullet
-@cindex idiom
-@cindex jargon
-@cindex terminology
-@cindex foreign languages
-@cindex language
 @item
-@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
-@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
-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.
+@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/input/lsr/collated-files.html,Snippets}
+@uref{source/input/lsr/lilypond-snippets/index.html,Snippets}
 @end ifhtml
 @ifnothtml
 Snippets
@@ -883,15 +954,21 @@ 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
+
 
+@node About the Internals Reference (IR)
+@unnumberedsubsec About the Internals Reference (IR)
 
+
+@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
 is a set of heavily cross linked HTML pages, which document the
 nitty-gritty details of each and every LilyPond class, object, and
@@ -908,6 +985,14 @@ HTML document, these subsections have clickable links.
 @end itemize
 
 
+@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
@@ -933,7 +1018,7 @@ 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/@/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
+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},
@@ -945,7 +1030,7 @@ are usually found in the directory @file{/usr/@/share/@/lilypond/}.
 @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
@@ -953,3 +1038,5 @@ files and HTML from the web site, which can be found at
 @uref{http://@/www@/.lilypond@/.org/}.
 
 
+
+