2004-03-10 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * scripts/lilypond.py (make_html_menu_file): remove --psgz option
+
* Documentation/user/*.itely: user manual edits.
2004-03-09 Han-Wen Nienhuys <hanwen@xs4all.nl>
(or @option{--format}) other output formats can be selected also, but
none of them work reliably.
-At the beginning of the output file, various global parameters are
-defined. Then the file @file{lilyponddefs.tex} is loaded to define
-the macros used in the code which follows. @file{lilyponddefs.tex}
-includes various other files, partially depending on the global
-parameters.
-
Now the music is output system by system (a `system' consists of all
staves belonging together). From @TeX{}'s point of view, a system is an
@code{\hbox} which contains a lowered @code{\vbox} so that it is centered
@cindex MIDI
-Midi2ly translates a MIDI input file to a LilyPond source file. MIDI
-(Music Instrument Digital Interface) is a standard for digital
-instruments: it specifies cabling, a serial protocol and a file format.
+Midi2ly translates a MIDI input file to a LilyPond source file.
-The MIDI file format is a de facto standard format for exporting music
-from other programs, so this capability may come in useful when you want
-to import files from a program that has no converter for its native
-format.
+MIDI (Music Instrument Digital Interface) is a standard for digital
+instruments: it specifies cabling, a serial protocol and a file
+format. The MIDI file format is a de facto standard format for
+exporting music from other programs, so this capability may come in
+useful when you want to import files from a program that has no
+converter for its native format.
-@file{midi2ly} will convert tracks into @internalsref{Staff} and
+Midi2ly will convert tracks into @internalsref{Staff} and
channels into @internalsref{Voice} contexts. Relative mode is used
for pitches, durations are only written when necessary.
-It is possible to record a MIDI file using a digital keyboard, and then
-convert it to @file{.ly}. However, human players are not rhythmically
-exact enough to make a MIDI to LY conversion trivial. midi2ly tries to
-compensate for these timing errors, but is not very good at this. It is
-therefore not recommended to use midi2ly for human-generated midi files.
+It is possible to record a MIDI file using a digital keyboard, and
+then convert it to @file{.ly}. However, human players are not
+rhythmically exact enough to make a MIDI to LY conversion trivial.
+midi2ly tries to compensate for these timing errors, but is not very
+good at this. It is therefore not recommended to use midi2ly for
+human-generated midi files.
Hackers who know about signal processing are invited to write a more
robust midi2ly. midi2ly is written in Python, using a module written in
@code{lilypond} [@var{option}]@dots{} @var{file}@dots{}
@end example
-To have @code{lilypond} read from stdin, use a dash @code{-} for @var{file}.
-
-The @code{lilypond} program supports the following options:
+To have @code{lilypond} read from stdin, use a dash @code{-} for
+@var{file}. The program supports the following options.
@table @code
@item -k,--keep
@cindex switches
-The LilyPond system consists of two parts: a binary executable, which
-is responsible for the formatting functionality, and support scripts,
-which post-process the resulting output. Normally, the support scripts
-are called, which in turn invoke the @code{lilypond-bin}
-binary. However, @code{lilypond-bin} may be called directly as
-follows.
+The formatting system consists of two parts: a binary executable
+(@file{lilypond-bin}), which is responsible for the formatting
+functionality, and support scripts, which post-process the resulting
+output. Normally, the support scripts are called, which in turn invoke
+the @code{lilypond-bin} binary. However, @code{lilypond-bin} may be
+called directly as follows.
@example
lilypond-bin [@var{option}]@dots{} @var{file}@dots{}
Evaluate the Scheme @var{expr} before parsing any @file{.ly} files.
Multiple @code{-e} options may be given, they will be evaluated
sequentially. The function @code{ly:set-option} allows for access to
-some internal variables. Use @code{-e '(ly:option-usage')} for more
+some internal variables. Use @code{-e '(ly:option-usage)'} for more
information.
@item -f,--format=@var{format}
There was some internal inconsistency. These error messages are
intended to help the programmers and debuggers. Usually, they can be
ignored. Sometimes, they come in such big quantities that they obscure
-other output. In this case, a bug-report should be filed.
+other output. In this case, file a bug-report.
@end table
There is support from different editors for LilyPond.
-Emacs has a @file{lilypond-mode}, which provides keyword
+@table @asis
+@item Emacs
+ Emacs has a @file{lilypond-mode}, which provides keyword
autocompletion, indentation, LilyPond specific parenthesis matching
and syntax coloring, handy compile short-cuts and reading LilyPond
manuals using Info. If lilypond-mode is not installed on your
platform, then refer to the installation instructions for more
information.
+@item VIM
+
For @uref{http://www.vim.org,VIM}, a vimrc is supplied, along with
syntax coloring tools. For more information, refer to the
@ifhtml
@uref{../../../topdocs/out-www/INSTALL.html,installation instructions}.
@end ifhtml
-
@ifnothtml
installation instructions.
@end ifnothtml
+
For both editors, there is also a facility to jump in the input file
to the source of errors in the graphical output. See @ref{Point and
click}.
+@item JEdit
+
There exists a plugin for @uref{http://www.jedit.org/,jEdit}. Refer to
the @uref{http://lily4jedit.sourceforge.net,plugin website} for more
information.
+@end table
@node Point and click
@section Point and click
users can set @var{XEDITOR} to @code{gvim --remote +:%l:norm%c| %f}.
-
-@refbugs
-
-When you convert the @TeX{} file to PostScript using @code{dvips}, it
-will complain about not finding @code{src:X:Y} files. These complaints
-are harmless, and can be ignored.
-
-
-
@code{ @@lilypond@{ CONTENTS @} } and @code{ \lilypond@{ CONTENTS @} }
@item filename=@var{filename}
-name the file (for @code{printfilename} option). The argument should
-be unquoted.
-
-@item staffsize=POINTS
-@lilypond[staffsize=31.41592658]
-\relative c' {
- r16 c[ d e] f[ d e c] g'8[ c] b[\prall c] |
- d16[ g, a b] c[ a b g] d'8[ g f\prall g]
-}
-@end lilypond
+This names the file for the @code{printfilename} option. The argument
+should be unquoted.
+
+@item staffsize=@var{ht}
+Sets the staff height to @var{ht}, which is measured in points.
@item raggedright
produces naturally spaced lines (i.e., @code{raggedright = ##t}); this
@item relative, relative=@var{N}
uses relative octave mode. By default, notes are specified relative
to middle C. The optional integer argument specifies the octave of the
-starting note, where the default @code{1} is middle C.
-@end table
-
-
-@node Invoking lilypond-book
-@section Invoking lilypond-book
-
-
-Running @command{lilypond-book} generates lots of small files that
-LilyPond will process. To avoid all that garbage in the source
-directory, it is advisable to change to a temporary directory first:
-@example
-cd out && lilypond-book ../yourfile.tex
-@end example
-
-@noindent
-or to use the @option{--output} command line option, and change to
-that directory before running La@TeX{} or @file{makeinfo}:
-
@example
lilypond-book --output=out yourfile.lytex
cd out && latex yourfile.tex
@table @code
@item @option{-f @var{format}}, @option{--format=@var{format}}
Specify the document type to process: @code{html}, @code{latex} or
-@code{texi} (the default). @command{lilypond-book} usually figures this
+@code{texi} (the default). @command{lilypond-book} figures this
out automatically.
The @code{texi} document type produces a texinfo file with music
version, the format
@code{texi-html} must be used.
+@ignore
+@c broken
@item @option{-F @var{filter}}, @option{--filter=@var{filter}}
Pipe snippets through @var{filter}.
@example
lilypond-book --filter='convert-ly --from=2.0.0' my-book.tely
@end example
+@end ignore
@item @option{--help}
Print a short help message.
problems with the Python regular expression engine. For longer files,
use @code{\lilypondfile}.
-@command{lilypond-book} processes all music fragments in one big run.
-The state of the GUILE interpreter is not reset between fragments;
-this means that changes made to global GUILE definitions, e.g. done
-with @code{set!} or @code{set-cdr!}, can leak from one fragment into
-the next fragment.
-
page_images_p = 1
if 'PNG' not in targets:
targets.append ('PNG')
- elif o == '--psgz':
- targets.append ('PS.GZ')
- if 'PS' not in targets:
- targets.append ('PS')
else:
unimplemented_option () # signal programming error