# midi2ly/TODO

Most of the items are marked in the code as well, with full explanation. 
grep for TODO and ugh/ugr


IMPORTANT

	* if multiple channels per track: output each to separate voice

	* get rid of (last few?) midi-specifics in mudela-*

	* find / remove trend (tempo) of mudela columns

	* get rid of Duration_* statics

	* junk one in list vs. array

	* add midi2ly example output (.midi.ly and .gif) to website

	* important? lily is important, go work on lily!

	* faq about midi2ly midi t1. ?

PROJECTS

	* write something interesting in midi2ly manual page

	* check/use type 0 / 1 / 2 of midi file

	* create Indentable_stream (see Tex_stream) as base for Lily_stream

	* use dynamic info

	* use aftertouch info (to guess slurs/ties, scripts (staccato?))

	* lyric events

	* parse all midi events

	* handle time based midi files

	* use dstream feature from lily

	* midi esp.: use I32 iso int where 32 bits are needed (or assumed...)

	* read unsigned words as U16 (not as I16)

	* check use of integral and unsigned in lexer
	
	* get rid of ugly statics in Duration_convert

	* change option double-dots to max-dots

	* set Key, Meter, ... command line options

BUGS

	* output of 0 duration c'0

	* array memleaks(?): use Link_array / create Pointer_array? 

	* fix "#undef MEVENT_LIST" source tree: Array<Midi_event*> 

	* split notes that cross bar limit

FUTURE

	* guess plets (i.e.: only use plet-duration *2/3 if there's a 
	  whole plet)

	* merge midi-events with lily's midi-items?

	* guess beams

	* guess / follow tempo changes

	* check out NIFF / analogies?

	* steal good ideas of other gpl midi parsers

	* lily: add mudela info into midi as specials
	  midi2ly: use special info

