-----------------------------------------------------------------------
*** Ecasound - To do list / plans                                   ***
-----------------------------------------------------------------------

[ Development goals ]

1.8.x series:

- qtecasound - major improvements
- effect preset parameters
- new effects - Schroeder reverb

2.x series (1.x -> 2.x requirements):

- libecasound ready for general use
- easy to use qtecasound (see features.html)
- users's and programmer's guide cover all essential aspects of 
  ecasound

-----------------------------------------------------------------------

[ Upcoming features/fixes - implemented as soon as possible ]

General:

- fix config.h includes
- editing disconnected chainsetups doesn't work

Input/output devices:

- ALSA 0.6.x support
- type override for audio objects
- automatic handling of mono mp3s
- mp3 bitrate as a command-line parameter
- more efficient interleaving of multichannel inputs/outputs
	- "-i:ileave,mchannel-file.wav,1" - only reads the 1st channel
	- "-i:ileave,mchannel-file.wav,2" - only reads the 2nd channel
	- and so on... the same with outputs

Interactive-mode:

- more info about current chainsetup status (cs-selected, c-list, ?)

Effects, routing, dsp routines:

- add threshold parameter to -eca
- pitch-shifting mono streams doesn't work
- better reverbs
- effect preset parameters
	- "-p[fn]:string,par1,...,parN"
	
Ecatools:

- commas confuse file name handling

-----------------------------------------------------------------------

[ Help - developer in trouble ]

- does ecasound work with ALSA-supported multichannel cards
  (Hammerfall, MidiMan, etc)?
- does ecasound compile on FreeBSD/Irix/Solaris/etc system, what
  versions?
- how current ecasound versions work with old gcc packages (2.7.x
  and older)?
- ... and old libc-versions (2.x and 5.x)?
- ecasound compiles out-of-the-box on Redhat 6.x system, what about
  other distros?
  
-----------------------------------------------------------------------

[ Wish-list - implemented if enough demand ]

Input/output devices:

- SMPTE time-code
- metronome signal
- integration to some synth engine - for instance Csound, aRts, 
  Quasimodo, Bacterium, ...

Effects, routing, dsp routines:

- generic envelope followers

Interactive-mode:

- cs-copy 'chainsetupname' (duplicate chainsetup)

User-interface:

- daemon mode for ecasound (ecad, ecasoundd)

Misc:

- smart mixing / dithering
- better MIDI-support
