]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/converters.itely
(LY_DEFINE_NOARGS): Remove.
[lilypond.git] / Documentation / user / converters.itely
index 84077b7130b941869d61bc066e84d76a323343ae..e90037f7d2a426cea73f6eb968af17988f9c7024 100644 (file)
@@ -1,47 +1,96 @@
 @c -*-texinfo-*-
 
-@node Conversion tools
-@chapter Converting to LilyPond format.
-
+@node Converting from other formats
+@chapter Converting from other formats
 
 @menu
-* midi2ly::                     
-* etf2ly::                      
-* abc2ly::                      
-* pmx2ly::                      
-* musedata2ly::                 
-* mup2ly::                      
+* Invoking convert-ly::            Older LilyPond versions.
+* Invoking midi2ly::               Importing MIDI.
+* Invoking etf2ly::                Importing Finale.
+* Invoking abc2ly::                Importing ABC.          
+* Invoking pmx2ly::                Importing PMX.
+* Invoking musedata2ly::           Importing Musedata.
+* Invoking mup2ly::                Importing MUP. 
 @end menu
 
-@node midi2ly
-@section midi2ly
+
+@node Invoking convert-ly
+@section Invoking convert-ly
+
+Convert-ly sequentially applies different conversions to upgrade a
+Lilypond input file.  It uses @code{\version} statements in the file to
+detect the old version number.  For example, to upgrade all lilypond
+files in the current directory and its subdirectories, use
+@example
+        convert-ly -e --to=1.3.150 `find . -name '*.ly' -print`
+@end example
+
+The program is invoked as follows:
+@example
+        convert-ly [@var{option}]@dots{} @var{file}@dots{}
+@end example
+
+
+The following options can be given:
+
+@table @code
+@item -a,--assume-old
+    If version number cannot be determined, apply all conversions.
+@item -e,--edit
+    Do an inline edit of the input file. Overrides @code{--output}.
+@item -f,--from=@var{from-patchlevel}
+    Set the level to convert from. If this is not set, convert-ly will
+    guess this, on the basis of @code{\version} strings in the file.
+@item -o,--output=@var{file}
+    Set the output file to write.  
+@item -n,--no-version
+    Normally, convert-ly adds a @code{\version} indicator 
+    to the output. Specifying this option suppresses this.  
+@item -s, --show-rules
+    Show all known conversions and exit.
+@item --to=@var{to-patchlevel}
+    Set the goal version of the conversion. It defaults to the latest
+    available version.
+@item -h, --help
+    Print usage help
+@end table
+
+
+
+@refbugs
+
+Not all language changes are handled. Only one output options can be specified.
+
+@node Invoking midi2ly
+@section Invoking midi2ly
+
+@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.
 
+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.
+
 It is possible to record a MIDI file using a digital keyboard, and then
-convert it to @file{.ly}. However, human players can not rhythmically
-exact enough to make a MIDI to .ly conversion trivial.  midi2ly tries to
+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. Correcting the quantization mistakes of the human player takes a
-lot of time.
-
-Hackers who know about signal processing are invited to write  a more
-robust midi2ly.
+therefore not recommended to use midi2ly for human-generated midi files.
 
-MIDI is also 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.
-
-@subsection Invoking midi2ly
+Hackers who know about signal processing are invited to write a more
+robust midi2ly.  midi2ly is written in Python, using a module written in
+C to parse the MIDI files.
 
+It is invoked as follows:
 @example
-        midi2ly [OPTION]... MIDI-FLIE
+        midi2ly [@var{option}]@dots{} @var{midi-file}
 @end example
 
-@unnumberedsubsec Options
+The following options are supported by midi2ly:
 
 @table @code
 @item -b, --no-quantify,
@@ -50,15 +99,16 @@ files from a program that has no converter for its native format.
     Print lots of debugging stuff.
 @item -h, --help,
     Show a summary of usage.
-@item -I, --include=@file{DIR},
-    Add DIR to search path.
-@item -k, --key=ACC[:MINOR],
-    Set default key.  ACC > 0 sets number of sharps; ACC < 0 sets number 
+@item -I, --include=@var{dir},
+    Add @var{dir} to search path.
+@item -k, --key=@var{acc}[:@var{minor}],
+    Set default key.  @var{acc} > 0 sets number of sharps; @var{acc} < 0
+sets number
     of flats.  A minor key is indicated by ":1".
 @item -n, --no-silly,
     Assume no plets or double dots, assume smallest (reciprocal) duration 16.
-@item -o, --output=@file{FILE},
-    Set @file{FILE} as default output.
+@item -o, --output=@var{file},
+    Set @var{file} as default output.
 @item -p, --no-plets,
     Assume no plets.
 @item -q, --quiet,
@@ -74,30 +124,24 @@ files from a program that has no converter for its native format.
 @end table
 
 
-Report bugs to @email{bug-gnu-music@@gnu.org}.
-
-
-Written by @email{Jan Nieuwenhuizen, janneke@@gnu.org}.
-
-
-@node etf2ly
-@section etf2ly
+@node Invoking etf2ly
+@section Invoking etf2ly
 
+@cindex ETF
+@cindex enigma
+@cindex Finale
+@cindex Coda Technology
 
 ETF (Enigma Transport Format) is a format used by Coda Music
-Technology's Finale product. This program will convert part of an ETF
+Technology's Finale product. etf2ly will convert part of an ETF
 file to a ready-to-use LilyPond file.
 
-@subsection Invoking etf2ly
-Usage:
-
+It is invoked as follows:
 @example
-        etf2ly [OPTION]... ETF-FILE
+        etf2ly [@var{option}]@dots{} @var{etf-file}
 @end example
 
-Convert ETF to LilyPond.
-
-@unnumberedsubsec Options
+The following options are supported by etf2ly.
 @table @code
 @item   -h,--help
 this help
@@ -110,66 +154,88 @@ version information
 
 @refbugs
 
-Known: articulation scripts are buggy.  Empty measures confuse etf2ly.
-Report bugs to @email{bug-gnu-music@@gnu.org}.
+The list of articulation scripts is incomplete.  Empty measures confuse
+etf2ly.
 
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
 
+@node Invoking abc2ly
+@section Invoking abc2ly
 
-Report bugs to @email{bug-gnu-music@@gnu.org}.
-
-@node abc2ly
-@section abc2ly
+@cindex ABC
 
 ABC is a fairly simple ASCII based format. It is described at
-@uref{http://www.gre.ac.uk/~c.walshaw/abc2mtex/abc.txt}.
-
-@subsection Invoking abc2ly
+@uref{http://www.gre.ac.uk/~c.walshaw/abc2mtex/abc.txt}. abc2ly
+translates from ABC to LilyPond. It is invoked as follows:
 
 @example
-        abc2ly [OPTION]... ABC-FILE
+        abc2ly [@var{option}]@dots{} @var{abc-file}
 @end example
 
-Convert ABC to LilyPond.
+The following options are supported by abc2ly:
 
-@unnumberedsubsec Options
 @table @code
 @item   -h,--help
 this help
-@item  -o,--output=FILE
-set output filename to FILE
+@item  -o,--output=@var{file}
+set output filename to @var{file}.
 @item  -v,--version
-version information
+print version information.
 @end table
 
+There is a rudimentary facility for adding lilypond code to the ABC
+source file.  If you say:
+
+@example
+        %%LY voices \property Voice.autoBeaming=##f
+@end example
+
+This will cause the text following the keyword ``voices'' to be inserted 
+into the current voice of the lilypond output file.
+
+Similarly:
+
+@example
+        %%LY slyrics more words
+@end example
+
+will cause the text following the ``slyrics'' keyword to be inserted
+into the current line of lyrics.
+
+
 @refbugs
 
-The ABC standard is not very "standard". For extended features
+The ABC standard is not very ``standard''. For extended features
 (eg. polyphonic music) different conventions exist. 
 
+Multiple tunes in one file cannot be converted.
 
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
+ABC synchronizes words and notes at the beginning of a line; abc2ly does 
+not.
 
+abc2ly ignores the ABC beaming.
 
-Report bugs to @email{bug-gnu-music@@gnu.org}.
+@node Invoking pmx2ly
+@section Invoking pmx2ly
 
-@node pmx2ly
-@section pmx2ly
+PMX is a MusiXTeX preprocessor written by Don Simons. More information
+on PMX is available from the following site:
 
-PMX is a Musixtex preprocessor written by Don Simons, see
-@uref{http://www.gmd.de/Misc/Music/musixtex/software/pmx/}.
+@quotation
+@uref{http://icking-music-archive.sunsite.dk/Misc/Music/musixtex/software/pmx/}.
+@end quotation
 
-Report bugs to @email{bug-gnu-music@@gnu.org}.
+@cindex PMX
+@cindex MusiXTeX
+@cindex Simons, Don
 
-@subsection Invoking pmx2ly
+pmx2ly converts from PMX to LilyPond input. The program is invoked as
+follows:
 
 @example
-        pmx2ly [OPTION]... PMX-FILE
+        pmx2ly [@var{option}]@dots{} @var{pmx-file}
 @end example
 
-Convert PMX to LilyPond.
-
-@unnumberedsubsec Options
+The following options are supported by pmx2ly:
 
 @table @code
 @item   -h,--help
@@ -180,31 +246,25 @@ set output filename to FILE
 version information
 @end table
 
-Report bugs to @email{bug-gnu-music@@gnu.org}.
 
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
+@node Invoking musedata2ly
+@section Invoking musedata2ly
 
+@cindex Musedata
+@cindex CCARH
 
-@node musedata2ly
-@section musedata2ly
-
- Musedata (@uref{http://www.musedata.org/}) is an electronic library of
+Musedata (@uref{http://www.musedata.org/}) is an electronic library of
 classical music scores, currently comprising about 800 composition
 dating from 1700 to 1825.  The music is encoded in so-called Musedata
-format
-(@uref{http://www.ccarh.org/publications/books/beyondmidi/online/musedata}).
-musedata2ly converts a set of musedata files to one .ly file, and will
-include a \header field if a .ref file is supplied
-
-@subsection Invoking musedata2ly
+format.  musedata2ly converts a set of musedata files to one .ly file,
+and will include a @code{\header} field if a @file{.ref} file is
+supplied. It is invoked as follows:
 
 @example
-        musedata2ly [OPTION]... MUSEDATA-FILE
+        musedata2ly [@var{option}]@dots{} @var{musedata-files}
 @end example
 
-Convert Musedata to LilyPond.
-
-@unnumberedsubsec Options
+The following options are supported by musedata2ly:
 
 @table @code
 @item   -h,--help
@@ -215,57 +275,53 @@ set output filename to @var{file}
 version information
 @item  -r,--ref=@var{reffile}
  read background information from ref-file
-@var{REFFILE}
+@var{reffile}
 @end table
 
-Report bugs to @email{bug-gnu-music@@gnu.org}.
-
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
+@refbugs
 
+musedata2ly converts only a small subset musedata. 
 
-@node mup2ly
-@section mup2ly
+@node Invoking mup2ly
+@section Invoking mup2ly
 
 MUP (Music Publisher) is a shareware music notation program by Arkkra
 Enterprises.  It is also the name of the input format.  Mup2ly will
-convert part of a Mup file to a ready-to-use LilyPond file.
+convert part of a Mup file to a ready-to-use LilyPond file. Mup2ly is
+invoked as follows:
 
-@subsection Invoking mup2ly
+@cindex Music Publisher
+@cindex MUP
+@cindex Arkkra
 
 @example
-        mup2ly [OPTION]... MUP-FILE
+        mup2ly [@var{option}]@dots{} @var{mup-file}
 @end example
 
-Convert Mup to LilyPond.
-
-@unnumberedsubsec Options
+The following options are supported by mup2ly:
 
 @table @code
 @item   -d,--debug
 show what constructs are not converted, but skipped.
-@item D, --define=@var{NAME}[=@code{EXP}]
-define macro @var{NAME} with opt expansion @code{EXP}
+@item D, --define=@var{name}[=@code{exp}]
+define macro @var{name} with opt expansion @code{exp}
 @item   -E,--pre-process
 only run the pre-processor
 @item   -h,--help
 print help
-@item  -o,--output=FILE
-write output to @var{FILE}
+@item  -o,--output=@var{file}
+write output to @var{file}
 @item  -v,--version
 version information
 @item  -w,--warranty
-print warranty and copyright.  Mup2ly comes with absolutlely @strong{NO WARRANTY}.
+print warranty and copyright. 
 @end table
 
 
 @refbugs
 
-Currently, only plain notes (pitches, durations), voices and staffs are
+Currently, only plain notes (pitches, durations), voices and staves are
 converted.
 
-Written by @email{Jan Nieuwenhuizen,janneke@@gnu.org}, based on pmx2ly.
-
-Report bugs to @email{bug-gnu-music@@gnu.org}.
-