

IIWU Synth Final (0.3?):
--------------------------------------------

DSP
- problems with chorus (test on VintageDreamWaves + LoveVigilants.mid)
- Check changes w.r.t. noise floor in iiwu_voice

Misc
- Make Vintage Dreams the default soundfont
- segfault with 'iiwusynth -i -n ~/projects/iiwusynth-perso/sf2/VintageDreamsWaves-v2.sf2 ~/cap-mts'
- Add compilation date

Drivers
- Add flag to dsound driver to not use LOCHWARE
- Update PortAudio and Midishare driver

Documentation
- User manual (DocBook?)

Testing:
- test SSE & long long
- Test sequencer
- test on AMD processors
- test existing midi controllers
- comparison tests with sblive
- test audio drivers (dsound, oss, alsa, audioport (win,mac,linux), sndman)
- test midi drivers (alsa, alsa_seq, oss, winmidi, midishare (win,mac,linux))


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

- move to LGPL
- web site
- name change to Fluid
- 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
- load drivers, plugins, and soundfont loaders from shared libraries
- 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)
- ASIO driver
- DirectSound3D driver
- write a Max external
- java bindings


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
- better synth settings: iiwu_synth_attr or iiwu_synth_params
  o allow for optimization settings
    no key to filter modulator
    sample truncation, linear interpolation, 8 point interpolation, ...
    hardware acceleration
  o polyphony, buffer and queue size, ...
- load, reload, replace, and print info about soundfonts the way creative does it


Drivers
-------
- OMS on macintosh
- DirectSound 3D

DSP
---
- soft clipping, compressor, limitor, or automatic gain control
- improved float to int conversion
- 96kHz/24bits

Control
-------
- handle all continuous controllers
- more testing on voice stealing algorithm
- 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
