-@c -*-texinfo-*-
+@c -*- coding: latin-1; mode: texinfo; -*-
@node Converting from other formats
@chapter Converting from other formats
* Invoking midi2ly:: Importing MIDI.
* Invoking etf2ly:: Importing Finale.
* Invoking abc2ly:: Importing ABC.
-* Invoking pmx2ly:: Importing PMX.
-* Invoking musedata2ly:: Importing Musedata.
* Invoking mup2ly:: Importing MUP.
+* Other formats::
@end menu
@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
+The syntax is regularly changed to simplify it or improve it in
+different ways. A side effect of this, is that LilyPond often is not
+compatible with older files. To remedy this, the program convert-ly
+can be used to deal with most of the syntax changes.
+
+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, enter the following on the
+command line.
+
@example
convert-ly -e --to=1.3.150 `find . -name '*.ly' -print`
@end example
Print usage help.
@end table
-
+convert-ly always converts up to the last syntax change handled by
+it. This means that the @code{\version} number left in the file is
+usually lower than the version of convert-ly itself.
@refbugs
@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 Type 1 MIDI 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 importing files from a program that has convertor for a
+direct 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.
+When invoked with quantizing (@code{-s} and @code{-d} options) 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
-C to parse the MIDI files.
-It is invoked as follows:
+It is invoked from the command-line as follows,
@example
- midi2ly [@var{option}]@dots{} @var{midi-file}
+midi2ly [@var{option}]@dots{} @var{midi-file}
@end example
-The following options are supported by midi2ly:
+
+The following options are supported by midi2ly.
@table @code
@item -a, --absolute-pitches
Print absolute pitches.
@item -d, --duration-quant=@var{DUR}
- Quantise note durations on @var{DUR}.
+ Quantize note durations on @var{DUR}.
@item -e, --explicit-durations
Print explicit durations.
@item -h,--help
@item -o, --output=@var{file}
Write output to @var{file}.
@item -s, --start-quant=@var{DUR}
- Quantise note starts on DUR.
+ Quantize note starts on DUR.
@item -t, --allow-tuplet=@var{DUR}*@var{NUM}/@var{DEN}
Allow tuplet durations @var{DUR}*@var{NUM}/@var{DEN}.
@item -V, --verbose
@end table
+@refbugs
+
+Overlapping notes in an arpeggio will not be correctly rendered. The
+first note will be read and the others will be ignored. Set them all
+to a single duration and add phrase markings or pedal indicators.
+
+
@node Invoking etf2ly
@section Invoking etf2ly
Technology's Finale product. etf2ly will convert part of an ETF
file to a ready-to-use LilyPond file.
-It is invoked as follows:
+It is invoked from the command-line as follows.
@example
etf2ly [@var{option}]@dots{} @var{etf-file}
@end example
@refbugs
-The list of articulation scripts is incomplete. Empty measures confuse
-etf2ly. Sequences of grace notes are ended improperly sometimes.
+The list of articulation scripts is incomplete. Empty measures
+confuse etf2ly. Sequences of grace notes are ended improperly.
@node Invoking abc2ly
@cindex ABC
-ABC is a fairly simple ASCII based format. It is described at the abc site:
+ABC is a fairly simple ASCII based format. It is described at the ABC site:
@quotation
@uref{http://www.gre.ac.uk/~c.walshaw/abc2mtex/abc.txt}.
@end quotation
source file. If you say:
@example
- %%LY voices \property Voice.autoBeaming=##f
+ %%LY voices \set autoBeaming = ##f
@end example
This will cause the text following the keyword ``voices'' to be inserted
@refbugs
The ABC standard is not very ``standard''. For extended features
-(eg. polyphonic music) different conventions exist.
+(e.g. polyphonic music) different conventions exist.
Multiple tunes in one file cannot be converted.
abc2ly ignores the ABC beaming.
-@node Invoking pmx2ly
-@section Invoking pmx2ly
-
-PMX is a MusiXTeX preprocessor written by Don Simons. More information
-on PMX is available from the following site:
-
-@quotation
-@uref{http://icking-music-archive.org/Misc/Music/musixtex/software/pmx/}.
-@end quotation
-
-@cindex PMX
-@cindex MusiXTeX
-@cindex Simons, Don
-pmx2ly converts from PMX to LilyPond input. The program is invoked as
-follows:
-
-@example
- pmx2ly [@var{option}]@dots{} @var{pmx-file}
-@end example
-
-The following options are supported by pmx2ly:
-
-@table @code
-@item -h,--help
-this help
-@item -o,--output=FILE
-set output filename to FILE
-@item -v,--version
-version information
-@end table
-
-@refbugs
-
-This script was updated last in September 2000, and then successfully
-converted the @file{barsant.pmx} example from the PMX
-distribution. pmx2ly cannot parse more recent PMX files.
-
-
-@node Invoking musedata2ly
-@section Invoking musedata2ly
-
-@cindex Musedata
-@cindex CCARH
-
-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. 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 [@var{option}]@dots{} @var{musedata-files}
-@end example
-
-The following options are supported by musedata2ly:
-
-@table @code
-@item -h,--help
-print help
-@item -o,--output=@var{file}
-set output filename to @var{file}
-@item -v,--version
-version information
-@item -r,--ref=@var{reffile}
- read background information from ref-file
-@var{reffile}
-@end table
-
-@refbugs
-
-@file{musedata2ly} converts only a small subset of musedata.
@node Invoking mup2ly
@section Invoking mup2ly
-MUP (Music Publisher) is a shareware music notation program by Arkkra
+Mup (Music Publisher) is a shareware music notation program by Arkkra
Enterprises. Mup2ly will convert part of a Mup file to LilyPond
format. It is invoked as follows:
@cindex Music Publisher
-@cindex MUP
+@cindex Mup
@cindex Arkkra
+It is invoked from the command-line as follows.
@example
mup2ly [@var{option}]@dots{} @var{mup-file}
@end example
@refbugs
-Currently, only plain notes (pitches, durations), voices, and staves are
+Only plain notes (pitches, durations), voices, and staves are
converted.
+@node Other formats
+@section Other formats
+
+LilyPond itself does not come with support for other formats, but
+there are also external tools that generate LilyPond files.
+
+These tools include
+http://denemo.sourceforge.net/
+@itemize @bullet
+@item @uref{http://www.nongnu.org/xml2ly/, xml2ly}, that imports
+@uref{http://www.musicxml.com/,MusicXML}
+@item
+@uref{http://rnvs.informatik.tu-chemnitz.de/~jan/noteedit/noteedit.html,NoteEdit}
+which imports MusicXML
+@item @uref{http://www.all-day-breakfast.com/rosegarden/,Rosegarden},
+which imports MIDI
+@end itemize