]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/user/non-music.itely
Fix off-by-one error in constrained-breaking.
[lilypond.git] / Documentation / user / non-music.itely
1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @c This file is part of lilypond.tely
3
4 @c A menu is needed before every deeper *section nesting of @node's; run
5 @c     M-x texinfo-all-menus-update
6 @c to automatically fill in these menus before saving changes
7
8 @node Non-musical notation
9 @chapter Non-musical notation
10
11 This section deals with general lilypond issues, rather than
12 specific notation.
13
14 @menu
15 * Input files::                 
16 * Titles and headers::          
17 * MIDI output::                 
18 * Displaying LilyPond notation::  
19 * Skipping corrected music::    
20 @end menu
21
22
23 @node Input files
24 @section Input files
25
26 The main format of input for LilyPond are text files.  By convention,
27 these files end with ``@code{.ly}''.
28
29 @menu
30 * File structure (introduction)::  
31 * Multiple scores in a book::   
32 * Extracting fragments of notation::  
33 * File structure::              
34 * A single music expression::   
35 * Including LilyPond files::    
36 * Text encoding::               
37 @end menu
38
39
40 @node File structure (introduction)
41 @subsection File structure (introduction)
42
43 A basic example of a lilypond input file is
44
45 @example
46 \version "2.9.13"
47 \score @{
48   @{ @}     % this is a single music expression;
49             % all the music goes in here.
50   \header @{ @}
51   \layout @{ @}
52   \midi @{ @}
53 @}
54 @end example
55
56 @noindent
57 There are many variations of this basic pattern, but this
58 example serves as a useful starting place.
59
60 The major part of this manual is concerned with entering various
61 forms of music in LilyPond.  However, many music expressions are not
62 valid input on their own, for example, a @code{.ly} file containing
63 only a note
64 @example
65 c'4
66 @end example
67
68 @noindent
69 will result in a parsing error.  Instead, music should be inside other
70 expressions, which may be put in a file by themselves.  Such
71 expressions are called toplevel expressions.  The next section enumerates
72 them all.
73
74
75 @node Multiple scores in a book
76 @subsection Multiple scores in a book
77
78 @funindex \book
79 @cindex movements, multiple
80
81 A document may contain multiple pieces of music and texts.  Examples
82 of these are an etude book, or an orchestral part with multiple
83 movements.  Each movement is entered with a @code{\score} block,
84
85 @example
86 \score @{
87   @var{..music..}
88 @}
89 @end example
90
91 and texts are entered with a @code{\markup} block,
92
93 @example
94 \markup @{
95   @var{..text..}
96 @}
97 @end example
98
99 @funindex \book
100
101 All the movements and texts which appear in the same @code{.ly} file 
102 will normally be typeset in the form of a single output file. 
103
104 @example
105 \score @{
106   @var{..}
107 @}
108 \markup @{
109   @var{..}
110 @}
111 \score @{
112   @var{..}
113 @}
114 @end example
115
116 However, if you want multiple output files from the same @code{.ly}
117 file, then you can add multiple @code{\book} blocks, where each such
118 @code{\book} block will result in a separate output. If you do not
119 specify any @code{\book} block in the file, LilyPond will implicitly
120 treat the full file as a single @code{\book} block, see @ref{File
121 structure}. One important exception is within lilypond-book documents,
122 where you explicitly have to add a @code{\book} block, otherwise only
123 the first @code{\score} or @code{\markup} will appear in the output.
124
125 The header for each piece of music can be put inside the @code{\score}
126 block.  The @code{piece} name from the header will be printed before
127 each movement.  The title for the entire book can be put inside the
128 @code{\book}, but if it is not present, the @code{\header} which is at
129 the top of the file is inserted.
130
131 @example
132 \header @{
133   title = "Eight miniatures"
134   composer = "Igor Stravinsky"
135 @}
136 \score @{
137   @dots{}
138   \header @{ piece = "Romanze" @}
139 @}
140 \markup @{
141    ..text of second verse..
142 @}
143 \markup @{
144    ..text of third verse..
145 @}
146 \score @{
147   @dots{}
148   \header @{ piece = "Menuetto" @}
149 @}
150 @end example
151
152 @node Extracting fragments of notation
153 @subsection Extracting fragments of notation
154
155 It is possible to quote small fragments of a large score directly from
156 the output. This can be compared to clipping a piece of a paper score
157 with scissors.
158
159 This is done by definining the measures that need to be cut out
160 separately. For example, including the following definition
161
162
163 @verbatim
164 \layout {
165   clip-regions
166   = #(list
167       (cons
168        (make-rhythmic-location 5 1 2)
169        (make-rhythmic-location 7 3 4)))
170 }       
171 @end verbatim
172
173 @noindent
174 will extract a fragment starting halfway the fifth measure, ending in
175 the seventh measure. The meaning of @code{5 1 2} is: after a 1/2 note
176 in measure 5, and @code{7 3 4} after 3 quarter notes in measure 7.
177
178 More clip regions can be defined by adding more pairs of
179 rhythmic-locations to the list. 
180
181 In order to use this feature, LilyPond must be invoked with
182 @code{-dclip-systems}. The clips are output as EPS files, and are
183 converted to PDF and PNG if these formats are switched on as well.
184
185 For more information on output formats, see @ref{Invoking lilypond}.
186
187 @seealso
188
189 Examples: @inputfileref{input/regression/,clip-systems.ly}
190
191
192 @node File structure
193 @subsection File structure
194
195 A @code{.ly} file contains any number of toplevel expressions, where a
196 toplevel expression is one of the following
197
198 @itemize @bullet
199 @item
200 An output definition, such as @code{\paper}, @code{\midi}, and
201 @code{\layout}.  Such a definition at the toplevel changes the default
202 settings for the block entered.
203
204 @item
205 A direct scheme expression, such as
206 @code{#(set-default-paper-size "a7" 'landscape)} or
207 @code{#(ly:set-option 'point-and-click #f)}.
208
209 @item
210 A @code{\header} block.  This sets the global header block.  This
211 is the block containing the definitions for book-wide settings, like
212 composer, title, etc.
213
214 @item
215 A @code{\score} block.  This score will be collected with other
216 toplevel scores, and combined as a single @code{\book}.
217
218 This behavior can be changed by setting the variable
219 @code{toplevel-score-handler} at toplevel.  The default handler is
220 defined in the init file @file{scm/@/lily@/.scm}.
221
222 The @code{\score} must begin with a music expression, and may
223 contain only one music expression.
224
225 @item
226 A @code{\book} block logically combines multiple movements
227 (i.e., multiple @code{\score} blocks) in one document.  If there are
228 a number of @code{\scores}, one output file will be created for
229 each @code{\book} block, in which all corresponding movements are
230 concatenated. The only reason to explicitly specify @code{\book} blocks
231 in a @code{.ly} file is if you wish multiple output files from a single
232 input file. One exception is within lilypond-book documents, where you
233 explicitly have to add a @code{\book} block if you want more than a
234 single @code{\score} or @code{\markup} in the same example.
235
236 This behavior can be changed by setting the variable
237 @code{toplevel-book-handler} at toplevel.  The default handler is
238 defined in the init file @file{scm/@/lily@/.scm}.
239
240 @item
241 A compound music expression, such as
242 @example
243 @{ c'4 d' e'2 @}
244 @end example
245
246 This will add the piece in a @code{\score} and format it in a
247 single book together with all other toplevel @code{\score}s and music
248 expressions.  In other words, a file containing only the above
249 music expression will be translated into
250
251 @example
252 \book @{
253   \score @{
254     \new Staff @{
255       \new Voice @{
256         @{ c'4 d' e'2 @}
257       @}
258     @}
259   @}
260         \layout @{ @}
261         \header @{ @}
262 @}
263 @end example
264
265 This behavior can be changed by setting the variable
266 @code{toplevel-music-handler} at toplevel.  The default handler is
267 defined in the init file @file{scm/@/lily@/.scm}.
268
269 @item
270 A markup text, a verse for example
271 @example
272 \markup @{
273    2.  The first line verse two.
274 @}
275 @end example
276
277 Markup texts are rendered above, between or below the scores or music
278 expressions, wherever they appear.
279
280 @item
281 An identifier, such as
282 @example
283 foo = @{ c4 d e d @}
284 @end example
285
286 This can be used later on in the file by entering @code{\foo}.  The
287 name of an identifier should have alphabetic characters only; no
288 numbers, underscores or dashes.
289
290 @end itemize
291
292 The following example shows three things that may be entered at
293 toplevel
294
295 @example
296 \layout @{
297   % movements are non-justified by default
298   ragged-right = ##t
299 @}
300
301 \header @{
302    title = "Do-re-mi"
303 @}
304
305 @{ c'4 d' e2 @}
306 @end example
307
308
309 At any point in a file, any of the following lexical instructions can
310 be entered:
311
312 @itemize @bullet
313 @item @code{\version}
314 @item @code{\include}
315 @item @code{\sourcefilename}
316 @item @code{\sourcefileline}
317
318 @end itemize
319
320
321 @node A single music expression
322 @subsection A single music expression
323
324 A @code{\score} must contain a single music expression.  However,
325 this music expression may be of any size.  Recall that music
326 expressions may be included inside other expressions to form
327 larger expressions.  All of these examples are single music
328 expressions; note the curly braces @{ @} or angle brackets <<
329 >> at the beginning and ending of the music.
330
331 @example
332 @{ c'4 c' c' c' @}
333 @end example
334
335 @lilypond[ragged-right,verbatim,quote]
336 {
337   { c'4 c' c' c'}
338   { d'4 d' d' d'}
339 }
340 @end lilypond
341
342 @lilypond[ragged-right,verbatim,quote]
343 <<
344   \new Staff { c'4 c' c' c' }
345   \new Staff { d'4 d' d' d' }
346 >>
347 @end lilypond
348
349 @example
350 @{
351   \new GrandStaff <<
352     \new StaffGroup <<
353       \new Staff @{ \flute @}
354       \new Staff @{ \oboe @}
355     >>
356     \new StaffGroup <<
357       \new Staff @{ \violinI @}
358       \new Staff @{ \violinII @}
359     >>
360   >>
361 @}
362 @end example
363
364
365 @node Including LilyPond files
366 @subsection Including LilyPond files
367
368 @funindex \include
369 @cindex including files
370
371 A large project may be split up into separate files.  To refer to another
372 file, use
373
374 @example
375 \include "otherfile.ly"
376 @end example
377
378 The line @code{\include "file.ly"} is equivalent to pasting the contents
379 of file.ly into the current file at the place where you have the
380 \include.  For example, for a large project you might write separate files
381 for each instrument part and create a ``full score'' file which brings
382 together the individual instrument files.
383
384 The initialization of LilyPond is done in a number of files that are
385 included by default when you start the program, normally transparent to the
386 user.  Run lilypond --verbose to see a list of paths and files that Lily
387 finds.
388
389 Files placed in directory @file{PATH/TO/share/lilypond/VERSION/ly/} (where
390 VERSION is in the form ``2.6.1'') are on the path and available to
391 @code{\include}.  Files in the
392 current working directory are available to \include, but a file of the same
393 name in LilyPond's installation takes precedence.  Files are
394 available to \include from directories in the search path specified as an
395 option when invoking @code{lilypond --include=DIR} which adds DIR to the
396 search path.
397
398 The @code{\include} statement can use full path information, but with the Unix
399 convention @code{"/"} rather than the DOS/Windows @code{"\"}.  For example,
400 if @file{stuff.ly} is located one directory higher than the current working
401 directory, use
402
403 @example
404 \include "../stuff.ly"
405 @end example
406
407
408 @node Text encoding
409 @subsection Text encoding
410
411 LilyPond uses the Pango library to format multi-lingual texts, and
412 does not perform any input-encoding conversions.  This means that any
413 text, be it title, lyric text, or musical instruction containing
414 non-ASCII characters, must be utf-8.  The easiest way to enter such text is
415 by using a Unicode-aware editor and saving the file with utf-8 encoding.  Most
416 popular modern editors have utf-8 support, for example, vim, Emacs,
417 jEdit, and GEdit do.
418
419 @c  Currently not working
420 @ignore
421 Depending on the fonts installed, the following fragment shows Hebrew
422 and Cyrillic lyrics,
423
424 @cindex Cyrillic
425 @cindex Hebrew
426 @cindex ASCII, non
427
428 @li lypondfile[fontload]{utf-8.ly}
429
430 The @TeX{} backend does not handle encoding specially at all.  Strings
431 in the input are put in the output as-is.  Extents of text items in the
432 @TeX{} backend, are determined by reading a file created via the
433 @file{texstr} backend,
434
435 @example
436 lilypond -b texstr input/les-nereides.ly
437 latex les-nereides.texstr
438 @end example
439
440 The last command produces @file{les-nereides.textmetrics}, which is
441 read when you execute
442
443 @example
444 lilypond -b tex input/les-nereides.ly
445 @end example
446
447 Both @file{les-nereides.texstr} and @file{les-nereides.tex} need
448 suitable LaTeX wrappers to load appropriate La@TeX{} packages for
449 interpreting non-ASCII strings.
450
451 @end ignore
452
453 To use a Unicode escape sequence, use
454
455 @example
456 #(ly:export (ly:wide-char->utf-8 #x2014))
457 @end example
458
459
460 @seealso
461
462 @inputfileref{input/regression,utf-8.ly}
463
464
465
466 @node Titles and headers
467 @section Titles and headers
468
469 Almost all printed music includes a title and the composer's name;
470 some pieces include a lot more information.
471
472 @menu
473 * Creating titles::             
474 * Custom titles::               
475 @end menu
476
477
478 @node Creating titles
479 @subsection Creating titles
480
481 Titles are created for each @code{\score} block, and for the full input
482 file (or @code{\book} block).
483
484 The contents of the titles are taken from the @code{\header} blocks.
485 The header block for a book supports the following
486
487
488 @table @code
489 @funindex dedication
490 @item dedication
491 The dedicatee of the music, centered at the top of the first page.
492
493 @funindex title
494 @item title
495 The title of the music, centered just below the dedication.
496
497 @funindex subtitle
498 @item subtitle
499 Subtitle, centered below the title.
500
501 @funindex subsubtitle
502 @item subsubtitle
503 Subsubtitle, centered below the subtitle.
504
505 @funindex poet
506 @item poet
507 Name of the poet, flush-left below the subtitle.
508
509 @funindex composer
510 @item composer
511 Name of the composer, flush-right below the subtitle.
512
513 @funindex meter
514 @item meter
515 Meter string, flush-left below the poet.
516
517 @funindex opus
518 @item opus
519 Name of the opus, flush-right below the composer.
520
521 @funindex arranger
522 @item arranger
523 Name of the arranger, flush-right below the opus.
524
525 @funindex instrument
526 @item instrument
527 Name of the instrument, centered below the arranger.  Also
528 centered at the top of pages (other than the first page).
529
530 @funindex piece
531 @item piece
532 Name of the piece, flush-left below the instrument.
533
534 @cindex page breaks, forcing
535 @funindex breakbefore
536 @item breakbefore
537 This forces the title to start on a new page (set to ##t or ##f).
538
539 @funindex copyright
540 @item copyright
541 Copyright notice, centered at the bottom of the first page.  To
542 insert the copyright symbol, see @ref{Text encoding}.
543
544 @funindex tagline
545 @item tagline
546 Centered at the bottom of the last page.
547
548 @end table
549
550 Here is a demonstration of the fields available.  Note that you
551 may use any @ref{Text markup} commands in the header.
552
553 @lilypond[quote,verbatim,line-width=11.0\cm]
554 \paper {
555   line-width = 9.0\cm
556   paper-height = 10.0\cm
557 }
558
559 \book {
560   \header {
561     dedication = "dedicated to me"
562     title = \markup \center-align { "Title first line" "Title second line,
563 longer" }
564     subtitle = "the subtitle,"
565     subsubtitle = #(string-append "subsubtitle LilyPond version "
566 (lilypond-version))
567     poet = "Poet"
568     composer =  \markup \center-align { "composer" \small "(1847-1973)" }
569     texttranslator = "Text Translator"
570     meter = \markup { \teeny "m" \tiny "e" \normalsize "t" \large "e" \huge
571 "r" }
572     arranger = \markup { \fontsize #8.5 "a" \fontsize #2.5 "r" \fontsize
573 #-2.5 "r" \fontsize #-5.3 "a" \fontsize #7.5 "nger" }
574     instrument = \markup \bold \italic "instrument"
575     piece = "Piece"
576   }
577
578   \score {
579     { c'1 }
580     \header {
581       piece = "piece1"
582       opus = "opus1"
583     }
584   }
585   \markup {
586       and now...
587   }
588   \score {
589     { c'1 }
590     \header {
591       piece = "piece2"
592       opus = "opus2"
593     }
594   }
595 }
596 @end lilypond
597
598 As demonstrated before, you can use multiple @code{\header} blocks.
599 When same fields appear in different blocks, the latter is used.
600 Here is a short example.
601
602 @example
603 \header @{
604   composer = "Composer"
605 @}
606 \header @{
607   piece = "Piece"
608 @}
609 \score @{
610   \new Staff @{ c'4 @}
611   \header @{
612     piece = "New piece"  % overwrite previous one
613   @}
614 @}
615 @end example
616
617 If you define the @code{\header} inside the @code{\score} block, then
618 normally only the @code{piece} and @code{opus} headers will be printed.
619 Note that the music expression must come before the @code{\header}.
620
621 @lilypond[quote,verbatim,line-width=11.0\cm]
622 \score {
623   { c'4 }
624   \header {
625     title = "title"  % not printed
626     piece = "piece"
627     opus = "opus"
628   }
629 }
630 @end lilypond
631
632 @funindex printallheaders
633 @noindent
634 You may change this behavior (and print all the headers when defining
635 @code{\header} inside @code{\score}) by using
636
637 @example
638 \paper@{
639   printallheaders=##t
640 @}
641 @end example
642
643 @cindex copyright
644 @cindex tagline
645
646 The default footer is empty, except for the first page, where the
647 @code{copyright} field from @code{\header} is inserted, and the last
648 page, where @code{tagline} from @code{\header} is added.  The default
649 tagline is ``Music engraving by LilyPond (@var{version})''.@footnote{Nicely
650 printed parts are good PR for us, so please leave the tagline if you
651 can.}
652
653 Headers may be completely removed by setting them to false.
654
655 @example
656 \header @{
657   tagline = ##f
658   composer = ##f
659 @}
660 @end example
661
662
663 @node Custom titles
664 @subsection Custom titles
665
666 A more advanced option is to change the definitions of the following
667 variables in the @code{\paper} block.  The init file
668 @file{ly/titling-init.ly} lists the default layout.
669
670 @table @code
671 @funindex bookTitleMarkup
672 @item bookTitleMarkup
673   This is the title added at the top of the entire output document.
674 Typically, it has the composer and the title of the piece
675
676 @funindex scoreTitleMarkup
677 @item scoreTitleMarkup
678   This is the title put over a @code{\score} block.  Typically, it has
679 the name of the movement (@code{piece} field).
680
681 @funindex oddHeaderMarkup
682 @item oddHeaderMarkup
683   This is the page header for odd-numbered pages.
684
685 @funindex evenHeaderMarkup
686 @item evenHeaderMarkup
687   This is the page header for even-numbered pages.  If unspecified,
688   the odd header is used instead.
689
690   By default, headers are defined such that the page number is on the
691   outside edge, and the instrument is centered.
692
693 @funindex oddFooterMarkup
694 @item oddFooterMarkup
695   This is the page footer for odd-numbered pages.
696
697 @funindex evenFooterMarkup
698 @item evenFooterMarkup
699   This is the page footer for even-numbered pages.  If unspecified,
700   the odd header is used instead.
701
702   By default, the footer has the copyright notice on the first, and
703   the tagline on the last page.
704 @end table
705
706
707 @cindex \paper
708 @cindex header
709 @cindex footer
710 @cindex page layout
711 @cindex titles
712
713 The following definition will put the title flush left, and the
714 composer flush right on a single line.
715
716 @verbatim
717 \paper {
718   bookTitleMarkup = \markup {
719    \fill-line {
720      \fromproperty #'header:title
721      \fromproperty #'header:composer
722    }
723   }
724 }
725 @end verbatim
726
727
728
729 @node MIDI output
730 @section MIDI output
731
732 @cindex Sound
733 @cindex MIDI
734
735 MIDI (Musical Instrument Digital Interface) is a standard for
736 connecting and controlling digital instruments.  A MIDI file is a
737 series of notes in a number of tracks.  It is not an actual
738 sound file; you need special software to translate between the
739 series of notes and actual sounds.
740
741 Pieces of music can be converted to MIDI files, so you can listen to
742 what was entered.  This is convenient for checking the music; octaves
743 that are off or accidentals that were mistyped stand out very much
744 when listening to the MIDI output.
745
746 @refbugs
747
748 Many musically interesting effects, such as swing, articulation,
749 slurring, etc., are not translated to midi.
750
751 The midi output allocates a channel for each staff, and one for global
752 settings.  Therefore the midi file should not have more than 15 staves
753 (or 14 if you do not use drums).  Other staves will remain silent.
754
755 Not all midi players correctly handle tempo changes in the midi
756 output.  Players that are known to work include
757 @uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
758
759 @menu
760 * Creating MIDI files::         
761 * MIDI block::                  
762 * MIDI instrument names::       
763 @end menu
764
765 @node Creating MIDI files
766 @subsection Creating MIDI files
767
768 To create a MIDI from a music piece of music, add a @code{\midi} block
769 to a score, for example,
770
771 @example
772 \score @{
773   @var{...music...}
774    \midi @{
775      \context @{
776        \Score
777        tempoWholesPerMinute = #(ly:make-moment 72 4)
778        @}
779      @}
780 @}
781 @end example
782
783 The tempo is specified using the @code{\tempo} command.  In this
784 example the tempo of quarter notes is set to 72 beats per minute.
785
786
787 If there is a @code{\midi} command in a @code{\score}, only MIDI will
788 be produced.  When notation is needed too, a @code{\layout} block must
789 be added
790
791 @example
792 \score @{
793   @var{...music...}
794   \midi @{ @}
795   \layout @{ @}
796 @}
797 @end example
798 @cindex layout block
799
800
801
802 Ties, dynamics, and tempo changes are interpreted.  Dynamic marks,
803 crescendi and decrescendi translate into MIDI volume levels.  Dynamic
804 marks translate to a fixed fraction of the available MIDI volume
805 range, crescendi and decrescendi make the volume vary linearly between
806 their two extremes.  The fractions can be adjusted by
807 @code{dynamicAbsoluteVolumeFunction} in @internalsref{Voice} context.
808 For each type of MIDI instrument, a volume range can be defined.  This
809 gives a basic equalizer control, which can enhance the quality of
810 the MIDI output remarkably.  The equalizer can be controlled by
811 setting @code{instrumentEqualizer}, or by setting
812
813 @example
814 \set Staff.midiMinimumVolume = #0.2
815 \set Staff.midiMaximumVolume = #0.8
816 @end example
817
818 To remove dynamics from the MIDI output, insert the following lines
819 in the @code{\midi@{@}} section.
820
821 @example
822 \midi @{
823   ...
824   \context @{
825     \Voice
826     \remove "Dynamic_performer"
827     \remove "Span_dynamic_performer"
828   @}
829 @}
830 @end example
831
832
833 @refbugs
834
835 Unterminated (de)crescendos will not render properly in the midi file,
836 resulting in silent passages of music.  The workaround is to explicitly
837 terminate the (de)crescendo.  For example,
838
839 @example
840 @{ a\< b c d\f @}
841 @end example
842
843 @noindent
844 will not work properly but
845
846 @example
847 @{ a\< b c d\!\f @}
848 @end example
849
850 @noindent
851 will.
852
853
854 @node MIDI block
855 @subsection MIDI block
856 @cindex MIDI block
857
858
859 The MIDI block is analogous to the layout block, but it is somewhat
860 simpler.  The @code{\midi} block is similar to @code{\layout}. It can contain
861 context definitions.
862
863
864 @cindex context definition
865
866 Context definitions follow precisely the same syntax as within the
867 \layout block.  Translation modules for sound are called performers.
868 The contexts for MIDI output are defined in @file{ly/@/performer@/-init@/.ly}.
869
870
871 @node MIDI instrument names
872 @subsection MIDI instrument names
873
874 @cindex instrument names
875 @funindex Staff.midiInstrument
876
877 The MIDI instrument name is set by the @code{Staff.midiInstrument}
878 property.  The instrument name should be chosen from the list in
879 @ref{MIDI instruments}.
880
881 @example
882 \set Staff.midiInstrument = "glockenspiel"
883 @var{...notes...}
884 @end example
885
886 If the selected instrument does not exactly match an instrument from
887 the list of MIDI instruments, the Grand Piano (@code{"acoustic grand"})
888 instrument is used.
889
890
891 @c  Yes, this is a cop-out; this info doesn't belong in the Scheme
892 @c  chapter, but I'm not certain where to stick it.
893 @c  I think I'll eventually split this chapter into a "paper/layout"
894 @c  chapter and a "misc issues" chapter.  -gp
895 @node Displaying LilyPond notation
896 @section Displaying LilyPond notation
897
898 @funindex \displayLilyMusc
899 Displaying a music expression in LilyPond notation can be
900 done using the music function @code{\displayLilyMusic}.  For example,
901
902 @example
903 @{
904   \displayLilyMusic \transpose c a, @{ c e g a bes @}
905 @}
906 @end example
907
908 will display
909
910 @example
911 @{ a, cis e fis g @}
912 @end example
913
914 By default, LilyPond will print these messages to the console along
915 with all the other messages.  To split up these messages and save
916 the results of @code{\display@{STUFF@}}, redirect the output to
917 a file.
918
919 @example
920 lilypond file.ly >display.txt
921 @end example
922
923
924 @node Skipping corrected music
925 @section Skipping corrected music
926
927
928 @funindex skipTypesetting
929 @funindex showLastLength
930
931 When entering or copying music, usually only the music near the end (where
932 you
933 are adding notes) is interesting to view and correct.  To speed up
934 this correction process, it is possible to skip typesetting of all but
935 the last few measures. This is achieved by putting
936
937 @verbatim
938 showLastLength = R1*5
939 \score { ... }
940 @end verbatim
941
942 @noindent
943 in your source file. This will render only the last 5 measures
944 (assuming 4/4 time signature) of every @code{\score} in the input
945 file. For longer pieces, rendering only a small part is often an order
946 of magnitude quicker than rendering it completely
947
948 Skipping parts of a score can be controlled in a more fine-grained
949 fashion with the property @code{Score.skipTypesetting}.  When it is
950 set, no typesetting is performed at all.
951
952 This property is also used to control output to the MIDI file. Note that
953 it skips all events, including tempo and instrument changes. You have
954 been warned.
955
956 @lilypond[quote,fragment,ragged-right,verbatim]
957 \relative c'' {
958   c8 d
959   \set Score.skipTypesetting = ##t
960   e e e e e e e e
961   \set Score.skipTypesetting = ##f
962   c d b bes a g c2 }
963 @end lilypond
964
965 In polyphonic music, @code{Score.skipTypesetting} will affect all
966 voices and staves, saving even more time.
967
968
969