mi2ly takes a midifile for input and produces a somewhat incomplete lilypond file as output; a directives file is used to pass to the program additional information which may not be present in the midifile. It is easy to include the file produced by mi2ly in a lilypond source file which includes the missing information (title, author, instrument etc.) and compile it with lilypond.
mi2ly is limited to single voice per track/channel music; it can process only music in which not more than one note is playing at the same time on the same track and the same channel. Support for chords is planned for some future version.