1 @c -*- coding: utf-8; mode: texinfo; -*-
3 @node Converting from other formats
4 @chapter Converting from other formats
6 Music can be entered also by importing it from other formats. This
7 chapter documents the tools included in the distribution to do so.
8 There are other tools that produce LilyPond input, for example GUI
9 sequencers and XML converters. Refer to the
10 @uref{http://@/lilypond@/.org,website} for more details.
15 * Invoking midi2ly:: Importing MIDI.
16 * Invoking etf2ly:: Importing Finale.
17 * Invoking musicxml2ly::
18 * Invoking abc2ly:: Importing ABC.
19 * Invoking mup2ly:: Importing MUP.
20 * Generating LilyPond files::
25 @node Invoking midi2ly
26 @section Invoking @command{midi2ly}
30 @command{midi2ly} translates a Type@tie{}1 MIDI file to a LilyPond source
33 MIDI (Music Instrument Digital Interface) is a standard for digital
34 instruments: it specifies cabling, a serial protocol and a file
35 format. The MIDI file format is a de facto standard format for
36 exporting music from other programs, so this capability may come in
37 useful when importing files from a program that has a convertor for a
40 @command{midi2ly} converts tracks into @internalsref{Staff} and
41 channels into @internalsref{Voice} contexts. Relative mode is used
42 for pitches, durations are only written when necessary.
44 It is possible to record a MIDI file using a digital keyboard, and
45 then convert it to @file{.ly}. However, human players are not
46 rhythmically exact enough to make a MIDI to LY conversion trivial.
47 When invoked with quantizing (@code{-s} and @code{-d} options)
48 @command{midi2ly} tries to compensate for these timing errors, but is not
49 very good at this. It is therefore not recommended to use @command{midi2ly}
50 for human-generated midi files.
53 It is invoked from the command-line as follows,
55 midi2ly [@var{option}]@dots{} @var{midi-file}
59 The following options are supported by @command{midi2ly}.
62 @item -a, --absolute-pitches
63 Print absolute pitches.
65 @item -d, --duration-quant=@var{DUR}
66 Quantize note durations on @var{DUR}.
68 @item -e, --explicit-durations
69 Print explicit durations.
72 Show summary of usage.
74 @item -k, --key=@var{acc}[:@var{minor}]
75 Set default key. @math{@var{acc} > 0} sets number of sharps;
76 @math{@var{acc} < 0} sets number of flats. A minor key is indicated by
79 @item -o, --output=@var{file}
80 Write output to @var{file}.
82 @item -s, --start-quant=@var{DUR}
83 Quantize note starts on DUR.
85 @item -t, --allow-tuplet=@var{DUR}*@var{NUM}/@var{DEN}
86 Allow tuplet durations @var{DUR}*@var{NUM}/@var{DEN}.
95 Show warranty and copyright.
97 @item -x, --text-lyrics
98 Treat every text as a lyric.
104 Overlapping notes in an arpeggio will not be correctly rendered. The
105 first note will be read and the others will be ignored. Set them all
106 to a single duration and add phrase markings or pedal indicators.
109 @node Invoking etf2ly
110 @section Invoking @command{etf2ly}
115 @cindex Coda Technology
117 ETF (Enigma Transport Format) is a format used by Coda Music
118 Technology's Finale product. @command{etf2ly} will convert part of an ETF
119 file to a ready-to-use LilyPond file.
121 It is invoked from the command-line as follows.
124 etf2ly [@var{option}]@dots{} @var{etf-file}
127 The following options are supported by @command{etf2ly}:
132 @item -o,--output=FILE
133 set output filename to FILE
141 The list of articulation scripts is incomplete. Empty measures
142 confuse @command{etf2ly}. Sequences of grace notes are ended improperly.
144 @node Invoking musicxml2ly
145 @section Invoking @code{musicxml2ly}
147 @uref{http://@/www.@/recordarde@/.com/xml/,MusicXML} is an XML dialect
148 for representing music notation.
150 @command{musicxml2ly} extracts the notes from part-wise MusicXML
151 files, and writes it to a .ly file.
154 The following options are supported by @command{musicxml2ly}:
159 print usage and option summary.
160 @item -o,--output=@var{file}
161 set output filename to @var{file}. (default: print to stdout)
163 print version information.
166 @node Invoking abc2ly
167 @section Invoking @code{abc2ly}
171 ABC is a fairly simple ASCII based format. It is described at the ABC site:
174 @uref{http://@/www@/.gre@/.ac@/.uk/@/~c.walshaw/@/abc2mtex/@/abc@/.txt}.
177 @command{abc2ly} translates from ABC to LilyPond. It is invoked as follows:
180 abc2ly [@var{option}]@dots{} @var{abc-file}
183 The following options are supported by @command{abc2ly}:
188 @item -o,--output=@var{file}
189 set output filename to @var{file}.
191 print version information.
194 There is a rudimentary facility for adding LilyPond code to the ABC
195 source file. If you say:
198 %%LY voices \set autoBeaming = ##f
201 This will cause the text following the keyword ``voices'' to be inserted
202 into the current voice of the LilyPond output file.
207 %%LY slyrics more words
210 will cause the text following the ``slyrics'' keyword to be inserted
211 into the current line of lyrics.
216 The ABC standard is not very ``standard''. For extended features
217 (e.g., polyphonic music) different conventions exist.
219 Multiple tunes in one file cannot be converted.
221 ABC synchronizes words and notes at the beginning of a line;
222 @command{abc2ly} does not.
224 @command{abc2ly} ignores the ABC beaming.
227 @node Invoking mup2ly
228 @section Invoking @command{mup2ly}
230 Mup (Music Publisher) is a shareware music notation program by Arkkra
231 Enterprises. @command{mup2ly} will convert part of a Mup file to LilyPond
232 format. It is invoked from the command-line as follows:
234 @cindex Music Publisher
239 mup2ly [@var{option}]@dots{} @var{mup-file}
242 The following options are supported by @command{mup2ly}:
246 show what constructs are not converted, but skipped.
247 @item -D, --define=@var{name}[=@code{exp}]
248 define macro @var{name} with opt expansion @code{exp}
249 @item -E,--pre-process
250 only run the pre-processor
253 @item -o,--output=@var{file}
254 write output to @var{file}
258 print warranty and copyright.
264 Only plain notes (pitches, durations), voices, and staves are
268 @node Generating LilyPond files
269 @section Generating LilyPond files
271 @cindex External programs, generating LilyPond files
273 LilyPond itself does not come with support for any other formats, but
274 there are some external tools that also generate LilyPond files.
280 @uref{http://@/denemo@/.sourceforge@/.net/,Denemo}, a graphical score editor.
282 @uref{http://www@/.volny@/.cz/smilauer/rumor/rumor@/.html,Rumor}, a realtime monophonic MIDI to LilyPond converter.
284 @uref{http://nicolas@/.sceaux@/.free@/.fr/lilypond/lyqi@/.html,lyqi}, an Emacs major mode.
286 @uref{http://@/www@/.nongnu@/.org/@/xml2ly/, xml2ly}, which imports
287 @uref{http://@/www@/.musicxml@/.com/xml@/.html,MusicXML}
289 @uref{http://@/noteedit@/.berlios@/.de,NoteEdit}
290 which imports @uref{http://@/www@/.musicxml@/.com/xml@/.html,MusicXML}
292 @uref{http://@/www@/.rosegardenmusic@/.com,Rosegarden},