2004-02-09 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * scripts/lilypond-book.py (do_file): fix latex output.
+
+ * VERSION: release 2.1.20
+
* scm/part-combiner.scm (determine-split-list): robustness fix
* lily/paper-score.cc (process): move gc stat stuff to init.ly
@itemize @bullet
-@item The lilypond-book script has been rewritten. It now supports
+@item Melismata in lyrics are also properly handled in the MIDI output.
+
+@item The lilypond-book script has been rewritten.
+It is shorter, cleaner and faster. The special construct
+@code{mbinclude} has been removed, plain @code{@@include} or
+@code{\\input} can be used now.
+
+@ignore
+It now supports
running convert-ly on the lilypond snippets like so:
@example
lilypond-book --filter='convert-ly --from=2.0.0' my-book.tely
@end example
-It is also twice as short and thrice as fast. The special construct
-@code{mbinclude} has been removed, plain @code{@@include} or
-@code{\\input} can be used now.
+@end ignore
@item The @code{Lyrics} context has been removed. Lyrics should only
be constructed in @code{LyricsVoice}.
@end example
@item Drum notation is now supported as a regular feature:
-percussion may be entered in @code{\drums} mode, and printed in a
-@code{DrumStaff} context:
+percussion may be entered in @code{\drums} mode, and printed or
+performed in a @code{DrumStaff} context:
@example
\score @{
@}
@end example
-
@item The automatic staff changer was internally rewritten. As a
result, the syntax has been simplified as well:
Examples: @inputfileref{input/regression,rhythmic-staff.ly}.
-@node Percussion staves
-@subsection Percussion staves
+@node Entering percussion
+@subsection Entering percussion
+
@cindex percussion
@cindex drums
-A percussion part for more than one instrument typically uses a
-multiline staff where each position in the staff refers to one piece
-of percussion.
-
@syntax
Percussion notes may be entered in @code{\drums} mode, which is
\drums { hihat4 hh4 }
@end lilypond
+The complete list of drum names is in the init file
+@file{ly/drumpitch-init.ly}.
+@c TODO: properly document this.
+
+@seealso
+
+Internals: @internalsref{DrumNoteEvent}
+
+@node Percussion staves
+@subsection Percussion staves
+@cindex percussion
+@cindex drums
+
+A percussion part for more than one instrument typically uses a
+multiline staff where each position in the staff refers to one piece
+of percussion.
+
+
To typeset the music, the notes must be interpreted in a
@internalsref{DrumStaff} and @internalsref{DrumVoice} contexts:
@menu
* First steps::
* Running LilyPond::
-* More about pitches ::
+* More about pitches::
* Octave entry::
* Combining music into compound expressions::
* Adding articulation marks to notes::
* Combining notes into chords::
+* Basic rhythmical commands::
+* Commenting input files::
* Printing lyrics::
* A lead sheet::
* Listening to output::
-@menu
-* Basic rhythmical commands::
-* Commenting input files::
-@end menu
@node Basic rhythmical commands
-@subsection Basic rhythmical commands
+@section Basic rhythmical commands
@cindex pickup
@cindex anacruse
@node Commenting input files
-@subsection Commenting input files
+@section Commenting input files
@cindex comments
@cindex line comment
}
-def find_toplevel_snippets (infile, types):
- s = infile.read ()
+def find_toplevel_snippets (s, types):
res = {}
for i in types:
res[i] = ly.re.compile (snippet_res[format][i])
ly.progress (_ ("Reading %s...") % input_filename)
if not input_filename or input_filename == '-':
- ih = sys.stdin
+ in_handle = sys.stdin
else:
- ih = open (input_filename)
+ in_handle = open (input_filename)
ly.progress ('\n')
output_file = open (output_filename, 'w')
os.chdir (output_name)
-
- chunks = find_toplevel_snippets (ih, snippet_types)
+
+ source = in_handle.read ()
+ chunks = find_toplevel_snippets (source, snippet_types)
ly.progress ('\n')
global default_ly_options