]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/introduction.itely
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / Documentation / user / introduction.itely
index cdd3292b7435e458ce9d712a8d697fbad0c53aac..57169827742bd242cec1cc7bf8252f11f141988d 100644 (file)
@@ -1,4 +1,4 @@
-@c -*- coding: latin-1; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 
 @node Introduction
@@ -6,12 +6,12 @@
 
 
 @menu
-* Engraving::
-* Automated engraving::
-* What symbols to engrave?::
-* Music representation::
-* Example applications::
-* About this manual::
+* Engraving::                   
+* Automated engraving::         
+* What symbols to engrave?::    
+* Music representation::        
+* Example applications::        
+* About this manual::           
 @end menu
 
 
@@ -58,23 +58,23 @@ computer edition.
 @item @tab
 @ifnotinfo
 @iftex
-@image{henle-flat-bw,4cm}
+@image{henle-flat-gray,,8cm}
 @end iftex
 @ifnottex
-@image{henle-flat-bw,,,png}
+@image{henle-flat-gray,,,png}
 @end ifnottex
 
 @tab
 @iftex
-@image{baer-flat-bw,4cm}
+@image{baer-flat-gray,,8.4cm}
 @end iftex
 @ifnottex
-@image{baer-flat-bw,,,png}
+@image{baer-flat-gray,,,png}
 @end ifnottex
 
 @tab
 @iftex
-@image{lily-flat-bw,4cm}
+@image{lily-flat-bw,,8cm}
 @end iftex
 @ifnottex
 @image{lily-flat-bw,,,png}
@@ -82,7 +82,8 @@ computer edition.
 @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{henle-flat-bw,,,png} @image{baer-flat-bw,,,png}
+@image{lily-flat-bw,,,png}
 @end ifinfo
 
 @item @tab
@@ -109,15 +110,58 @@ exact mathematical spacing, and once with corrections.  Can you
 spot which fragment is which?
 
 @cindex optical spacing
-@lilypond[quote,noindent,fragment]
+@c file spacing-optical.
+@c need to include it here,  because we want two images.
+@lilypond
+\paper {
+  ragged-right = ##t
+  indent = #0.0
+}
+
+music = {
+   c'4 e''4 e'4 b'4 |
+   \stemDown
+   b'8[ e'' a' e'']
+   \stemNeutral
+   e'8[ e'8 e'8 e'8]
+}
+
+\score
 {
-   \override Staff.NoteSpacing #'stem-spacing-correction = #0.6
+  \music
+  \layout {
+    \context {
+      \Staff
+      \override NoteSpacing #'stem-spacing-correction = #0.6
+    }
+  }
+}
+@end lilypond
+
+@lilypond
+\paper {
+  ragged-right = ##t
+  indent = #0.0
+}
+
+music = {
    c'4 e''4 e'4 b'4 |
-   \stemDown b'8[ e'' a' e''] | \bar "||"
-   \override Staff.NoteSpacing #'stem-spacing-correction = #0.0
-   \override Staff.StaffSpacing #'stem-spacing-correction = #0.0
-   \stemNeutral c'4 e''4 e'4 b'4 |
-   \stemDown b'8[ e'' a' e''] |
+   \stemDown
+   b'8[ e'' a' e'']
+   \stemNeutral
+   e'8[ e'8 e'8 e'8]
+}
+\score
+{
+  \music
+  \layout {
+    \context {
+      \Staff
+      \override NoteSpacing #'stem-spacing-correction = #0.0
+      \override NoteSpacing #'same-direction-correction = #0.0
+      \override StaffSpacing #'stem-spacing-correction = #0.0
+    }
+  }
 }
 @end lilypond
 
@@ -129,7 +173,8 @@ constant rhythm.  The spacing should reflect that.  Unfortunately, the
 eye deceives us a little; not only does it notice the distance between
 note heads, it also takes into account the distance between
 consecutive stems.  As a result, the notes of an up-stem/@/down-stem
-combination should be put farther apart, and the notes of a down-stem/@/up-stem
+combination should be put farther apart, and the notes of a
+down-stem/@/up-stem
 combination should be put closer together, all depending on the
 combined vertical positions of the notes.  The first two measures are
 printed with this correction, the last two measures without.  The notes
@@ -225,7 +270,7 @@ with accents and arpeggios.  In the first chord, the graphical objects
 have all directions down (or left).  The second chord has all
 directions up (right).
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \new Score \with {
    \override SpacingSpanner #'spacing-increment = #3
    \override TimeSignature #'transparent = ##t
@@ -243,7 +288,7 @@ example, the thickness of many lines -- a characteristic of typographical
 style -- is a variable with a preset value.  You are free to alter this
 value, giving your score a different typographical impression.
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 fragment = {
    \clef bass f8 as8
    c'4-~ c'16 as g f e16 g bes c' des'4
@@ -269,17 +314,14 @@ appearance of objects.  In the following example, the rule which note
 head objects are used to produce their symbol is changed during the music
 fragment.
 
-@c FIXME: this example has errors:
-@c    programming error: Grob `NoteHead' has no interface for property `text'
-@c    Continuing; crossing fingers
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 #(define (mc-squared grob orig current)
   (let ((interfaces (ly:grob-property grob 'interfaces))
         (pos (ly:grob-property grob 'staff-position)))
     (if (and (memq 'note-head-interface interfaces)
              (memq pos '(-2 -3 -5)))
         (begin
-          (ly:grob-set-property! grob 'print-function Text_interface::print)
+          (ly:grob-set-property! grob 'stencil ly:text-interface::print)
           (ly:grob-set-property! grob 'font-family 'roman)
           (ly:grob-set-property!
            grob 'text
@@ -296,15 +338,15 @@ fragment.
    \set autoBeaming = ##f
    \time 2/4
    <d f g>4
-   \once \override NoteHead #'print-function = #Note_head::brew_ez_stencil
+   \once \override NoteHead #'stencil = #ly:note-head::brew-ez-stencil
    <d f g>
    \once \override NoteHead #'style = #'cross
    <d f g>
-   \applyoutput #mc-squared
+   \applyOutput #'Voice #mc-squared
    <d f g>
    <<
       { d8[ es-( fis^^ g] fis2-) }
-      \repeat unfold 5 { \applyoutput #mc-squared s8 }
+      \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
    >>
 }
 @end lilypond
@@ -341,7 +383,7 @@ craftsmen who translate musical ideas to graphic symbols.
 In the following example, we see how we start out with a plug-in for
 note heads, the @code{Note_heads_engraver}.
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \include "engraver-example.ily"
 
 \score {
@@ -373,7 +415,7 @@ note heads, the @code{Note_heads_engraver}.
 @noindent
 Then a @code{Staff_symbol_engraver} adds the staff
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \include "engraver-example.ily"
 
 \score {
@@ -404,7 +446,7 @@ Then a @code{Staff_symbol_engraver} adds the staff
 @noindent
 the @code{Clef_engraver} defines a reference point for the staff
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \include "engraver-example.ily"
 
 \score {
@@ -433,7 +475,7 @@ the @code{Clef_engraver} defines a reference point for the staff
 @noindent
 and the @code{Stem_engraver} adds stems.
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \include "engraver-example.ily"
 
 \score {
@@ -465,7 +507,7 @@ engravers for beams, slurs, accents, accidentals, bar lines,
 time signature, and key signature, we get a complete piece of
 notation.
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \include "engraver-example.ily"
 \score { \topVoice }
 @end lilypond
@@ -473,9 +515,9 @@ notation.
 This system works well for monophonic music, but what about
 polyphony?  In polyphonic notation, many voices can share a staff.
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \include "engraver-example.ily"
-\new Staff << \topVoice \\ \botVoice >> 
+\new Staff << \topVoice \\ \botVoice >>
 @end lilypond
 
 In this situation, the accidentals and staff are shared, but the stems,
@@ -491,7 +533,7 @@ context.  The Score context is the top level notation context.
 
 Program reference: @internalsref{Contexts}.
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \include "engraver-example.ily"
 \score {
    <<
@@ -541,7 +583,7 @@ c4
 @noindent
 Chords can be constructed with @code{<<} and @code{>>} enclosing the notes
 
-@c < > is not a music expression, 
+@c < > is not a music expression,
 @c so we use <<>> iso. <> to drive home the point of
 @c expressions.  Don't change this back --hwn.
 @example
@@ -607,7 +649,7 @@ simplest application is printing notes.
 @noindent
 By adding chord names and lyrics we obtain a lead sheet.
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 <<
    \chords { c2 c f2 c }
    \new Staff \relative c' { \time 2/4 c4 c g'4 g a4 a g2 }
@@ -618,7 +660,7 @@ By adding chord names and lyrics we obtain a lead sheet.
 Polyphonic notation and piano music can also be printed.  The following
 example combines some more exotic constructs.
 
-@lilypondfile[quote,raggedright]{screech-boink.ly}
+@lilypondfile[quote,ragged-right]{screech-boink.ly}
 
 The fragments shown above have all been written by hand, but that is
 not a requirement.  Since the formatting engine is mostly automatic, it
@@ -651,52 +693,50 @@ gives a gentle introduction to typesetting music.  First time
 users should start here.
 
 @item
-@ifhtml
-The
-@end ifhtml
-@emph{@ref{Example templates}}
-provides templates of LilyPond pieces.  Just cut and paste a
-template into a file, add notes, and you're done!
+@emph{@ref{Working on LilyPond projects}}
+demonstrates practical uses of LilyPond.
 
 @item
-@ifhtml
-The
-@end ifhtml
-@c @emph{@ref{Notation manual}} @c FIXME
-@emph{Notation manual}
-discusses topics grouped by notation construct.  Once you master the
-basics, this is the place to look up details.
+@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.
+
+@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.
+
+@item
+@emph{@ref{Advanced notation}}
+discusses topics grouped by notation construct.  This section gives
+details about complicated or unusual notation.
 
 @item
-@ifhtml
-The
-@end ifhtml
 @emph{@ref{Changing defaults}}
 explains how to fine tune layout.
 
 @item
-@ifhtml
-The chapter
-@end ifhtml
-@emph{@ref{Running LilyPond}} shows how to run LilyPond and its helper
-programs.
+@emph{@ref{Global issues}}
+discusses issues which affect the global output, such as selecting
+paper size or which MIDI instruments to use.
 
 @item
-@ifhtml
-The chapter
-@end ifhtml
 @emph{@ref{LilyPond-book}} explains the details behind creating
-documents with in-line music examples (like this manual).
+documents with in-line music examples, like this manual.
 
 @item
-@ifhtml
-The chapter
-@end ifhtml
 @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.  In addition, this section explains
-how to upgrade input files from previous versions of LilyPond.
+formats to the @code{.ly} format.
 
 @item
 @ifhtml
@@ -705,8 +745,15 @@ The
 @emph{@ref{Literature list}}
 contains a set of useful reference books for those who wish to know
 more on notation and engraving.
+
+@item
+@emph{@ref{Example templates}}
+provides templates of LilyPond pieces.  Just cut and paste a
+template into a file, add notes, and you're done!
+
 @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
@@ -716,7 +763,7 @@ available in
 a big HTML page,
 @end iftex
 @ifhtml
-@uref{source/Documentation/user/out-www/lilypond.html, one big page},
+@uref{source/Documentation/user/lilypond.html, one big page},
 @end ifhtml
 which can be searched easily using the search facility of a web
 browser.
@@ -734,7 +781,7 @@ to various languages.  It is a separate document, available in HTML
 and PDF.
 @end iftex
 @ifnottex
-The @ref{music-glossary,Music glossary,,music-glossary}, explains musical terms and
+The @ref{Top,Music glossary,,music-glossary}, explains musical terms and
 includes translations to various languages.  It is also available in
 PDF.
 @end ifnottex
@@ -755,7 +802,7 @@ documentation package for your platform
 Program reference
 @end iftex
 @ifnottex
-@ref{lilypond-internals,Program reference,,lilypond-internals}.
+@ref{Top,Program reference,,lilypond-internals}.
 @end ifnottex
 
 The program reference is a set of heavily cross linked HTML pages,
@@ -772,6 +819,7 @@ 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.
@@ -779,9 +827,8 @@ Various input examples.
 @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/out-www/collated-files.html,Various input examples}.
+@uref{source/input/test/collated-files.html,Various input examples}.
 @end ifhtml
-@cindex snippets
 
 This collection of files shows various tips and tricks, and is
 available as a big HTML document, with pictures and explanatory texts
@@ -794,7 +841,7 @@ The regression tests.
 @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/out-www/collated-files.html,The regression tests}.
+@uref{source/input/regression/collated-files.html,The regression tests}.
 @end ifhtml
 
 This collection of files tests each notation and engraving feature of
@@ -813,7 +860,7 @@ 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.4.0/@/input/@/test/@/bla@/.ly}.  On binary packages
+@file{lilypond@/-2.8.0/@/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
@@ -827,12 +874,9 @@ Initialization files, for example @file{scm/@/lily@/.scm}, or
 @cindex internal documentation
 @cindex Scheme
 @cindex extending lilypond
-@cindex bug report
 @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/}.
 
-@cindex website
-@cindex URL