X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Fconverters.itely;h=71383c36383b3a732d5b0773c1b5aab39eb64e08;hb=6b13be765d6b1181ed76eed6c987e3db37c03f5d;hp=71f6f207e2467fcf999fde586f28fe03cbe6544f;hpb=b695260174219043bddbbaf79b2affed8b8aa108;p=lilypond.git diff --git a/Documentation/user/converters.itely b/Documentation/user/converters.itely index 71f6f207e2..71383c3638 100644 --- a/Documentation/user/converters.itely +++ b/Documentation/user/converters.itely @@ -3,14 +3,21 @@ @node Converting from other formats @chapter Converting from other formats +Music can be entered also by importing it from other formats. This +chapter documents the tools included in the distribution to do so. +There are other tools that produce LilyPond input, for example GUI +sequencers and XML converters. Refer to the +@uref{http://lilypond.org,website} for more details. + + + @menu -* 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. +* Invoking convert-ly:: Older LilyPond versions. +* Invoking midi2ly:: Importing MIDI. +* Invoking etf2ly:: Importing Finale. +* Invoking abc2ly:: Importing ABC. +* Invoking musedata2ly:: Importing Musedata. +* Invoking mup2ly:: Importing MUP. @end menu @@ -18,8 +25,8 @@ @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 +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` @@ -34,8 +41,6 @@ The program is invoked as follows: 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} @@ -52,37 +57,39 @@ The following options can be given: Set the goal version of the conversion. It defaults to the latest available version. @item -h, --help - Print usage help + Print usage help. @end table @refbugs -Not all language changes are handled. Only one output options can be specified. +Not all language changes are handled. Only one output option 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. +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 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 -channels into @internalsref{Voice} contexts. +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 @@ -96,37 +103,48 @@ It is invoked as follows: The following options are supported by midi2ly: @table @code -@item -b, --no-quantify, - Write exact durations, e.g.: `a4*385/384'. -@item -D, --debug, - Print lots of debugging stuff. -@item -h, --help, - Show a summary of usage. -@item -I, --include=@var{dir}, - Add @var{dir} to search path. -@item -k, --key=@var{acc}[:@var{minor}], +@item -a, --absolute-pitches + Print absolute pitches. +@item -d, --duration-quant=@var{DUR} + Quantize note durations on @var{DUR}. +@item -e, --explicit-durations + Print explicit durations. +@item -h,--help + Show summary of usage. +@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=@var{file}, - Set @var{file} as default output. -@item -p, --no-plets, - Assume no plets. -@item -q, --quiet, - Be quiet. -@item -s, --smallest=N, - Assume no shorter (reciprocal) durations than N. -@item -v, --verbose, + sets number of flats. A minor key is indicated by ":1". +@item -o, --output=@var{file} + Write output to @var{file}. +@item -s, --start-quant=@var{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 Be verbose. -@item -w, --warranty, - Show the warranty with which midi2ly comes. (It comes with @strong{NO WARRANTY}!) -@item -x, --no-double-dots, - Assume no double dotted notes. +@item -v, --version + Print version number. +@item -w, --warranty + Show warranty and copyright. +@item -x, --text-lyrics + Treat every text as a lyric. @end table +@refbugs + + +Quantizing start-times and durations should be recommended. +This relates to the notes regarding the transcription of a MIDI +recording of a performance. I realize it can be done via the utility, +but a sequencer gives better visual feedback. + +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 @@ -144,7 +162,7 @@ It is invoked as follows: etf2ly [@var{option}]@dots{} @var{etf-file} @end example -The following options are supported by etf2ly. +The following options are supported by etf2ly: @table @code @item -h,--help this help @@ -158,7 +176,7 @@ version information @refbugs The list of articulation scripts is incomplete. Empty measures confuse -etf2ly. +etf2ly. Sequences of grace notes are ended improperly sometimes. @node Invoking abc2ly @@ -166,9 +184,9 @@ etf2ly. @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} +@uref{http://www.gre.ac.uk/~c.walshaw/abc2mtex/abc.txt}. @end quotation abc2ly translates from ABC to LilyPond. It is invoked as follows: @@ -187,17 +205,17 @@ set output filename to @var{file}. print version information. @end table -There is a rudimentary facility for adding lilypond code to the ABC +There is a rudimentary facility for adding LilyPond code to the ABC 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 -into the current voice of the lilypond output file. +into the current voice of the LilyPond output file. -Similarly: +Similarly, @example %%LY slyrics more words @@ -210,7 +228,7 @@ into the current line of lyrics. @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. @@ -219,57 +237,18 @@ not. 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.sunsite.dk/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. Apparently no-one has ever bothered to use pmx2ly, since -pmx2ly can not parse recent PMX files. - - @node Invoking musedata2ly @section Invoking musedata2ly -@cindex Musedata +@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: +MuseData (see @uref{http://www.musedata.org/}) is an electronic +library of classical music scores, comprising at the time of writing +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} @@ -291,18 +270,17 @@ version information @refbugs -musedata2ly converts only a small subset musedata. +@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 -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. Mup2ly is -invoked as follows: +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 @example @@ -314,7 +292,7 @@ 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}] +@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 @@ -331,7 +309,7 @@ print warranty and copyright. @refbugs -Currently, only plain notes (pitches, durations), voices and staves are +Only plain notes (pitches, durations), voices, and staves are converted.