This file needs some re-structuring. Please remove anything that has
already been done.  - Josh Green 2003-08-25


Synthesis related
-----------------
- problems with chorus (test on VintageDreamWaves + LoveVigilants.mid)
- Compatibility with SB Live vol attenuation (Live doesn't follow specs?)
- Filter should stay on for a voice once it has been activated
- Improve voice stealing algorithm (soft and hard limits?)
- soft clipping, compressor, limitor, or automatic gain control


Drivers
-------
- ASIO driver
- DirectSound3D driver
- OMS on macintosh
- load drivers, plugins, and soundfont loaders from shared libraries



Fluid 1.0:
--------------------------------------------

- deb and rpm package
- Mac and Windows binaries
- Xtra binaries

Web site: add:
  - link to pd-iiwu
  - how to create soundfonts on linux, macintosh, windows
  - where to find soundfonts
  - where to find documentation on soundfonts
  - using fluid in PD, jMax

Fluid 1.1:
--------------------------------------------

SFLoader API:
- "interface" api
- redo sfloader api using "interface" api

Sample streaming
- sample streaming, load/unload sample on demand 

Design
- turn ladspa fx unit and router in indepedent 
  objects, remove their dependencies from the synth object
- generalize use of fluid_event_t, remove fluid_midi_event_t

SoundFont Specs:
- pitch control on stereo samples not managed as should

MIDI Specs
- handle tuning sysex messages
- OMNI
- sample dump

Unsorted
- server sur windows
- change sample rate dynamically after jack driver instantiation, or
  create audio driver before initiating the synth
- include readline in project
- additional aux buses
- rewrite midi file using new sequencer
- direct access to audio buffer
- soft clipping, compressor, limitor, or automatic gain control
- register shell commands dynamically, no dependancy on iiwu_synth object
- load wave files (ramsfont)
- write a Max external


OLD STUFF, NEEDS TO BE FILTERED ------------------


Design
------
- determine and protect critical regions
- check out atomic_inc and atomic_dec for flagging on/off of sp
- check out lock-free lifo for synchronization
- test for maximum cpu usage, and limit
- watchdog
- better debugging features and monitoring
  - MIDI events (driver status, received, errors)
  - Audio out (driver status, time, errors)
  - Debug message ()
  - CPU, memory usage
- load, reload, replace, and print info about soundfonts the way creative does it


DSP
---
- improved float to int conversion
- 96kHz/24bits

Control
-------
- handle all continuous controllers
- handles RPN and NRPN messages
- OpenSoundControl

Testing
-------
- create soundfont with basic wave forms [sine, square, triangle];
  make test midi file; compare with SBLive output; "regression" test
- compare performance with timidity

Availability
------------
- create a libiiwusynth library that doesn't necessarily depend on OSS
  or ALSA.
- make an fts package that links (statically?) with libiiwusynth
- ladspa plugin
- alsa module
- language bindings (Java, Python, Perl, Guile, ...)
- QuickTime Component
- make netscape and ie plugin

Hardware
--------
- study ALSA interface, SBLive interface (OSS, win32)
- hardware detection
- specify hardware or software synth
