heres a list (some of which you might already have covered…):
- Reverb
- Convolution (yes I know these are both expensive on CPU...)
- Delay
- Chorus
- Phaser
- Flanger
- State variable versions of:
Hi-Pass, Lo-Pass, Band-Pass (4 pole would be nice but at least 2-pole I think)
- Ladder Versions of:
Hi_pass, Lo-Pass, Band-Pass
- Formant Filter
- Distortion
- Bit reduction
- Compressor
- Limiter
- Transient Manager
- Tape Sat
- Amp
- Cabinet
- Auto Pan
All this is a MASSIVE amount of work, so perhaps some way to build these as plug-able FX and others can build a market around selling us these "plug-ins". It shouldn't be too hard to define an interface, lets assume that NONE of these effects have their own UI, and their parameters would ONLY be accessible via scripting . So each plug-in would consume and return audio, and would present (in their documentation) an API to call their parameters: in some format like
set_param(fx_id,param_id,value)
Where fx_id could be either a unique ID for the FX/developer(but that limits you to one only of a given FX from a developer in an instrument) or a load sequence number. And param_id just a numeric for the relevant effect parameter..
The most important point, from an architectural point of view is that these should be load/unloadbale via the scripting interface, the way Kontakt effects are as of V5....
so we have (something like:):
load_fx(fx_file_name, position)
and:
unload_fx(fx_file_name, position)