fluidsynth/TODO
Tom M 4a0a7365ee
Refactor Soundfont loader API (#334)
* add fluid_mod_sizeof() and fluid_sample_sizeof() for low latency scenarios
* fix return value of default_fclose
* enable padding warnings for cmake enable-profiling=1
* make these types private:
  * struct _fluid_sfloader_t
  * struct _fluid_sample_t
  * struct _fluid_sfont_t
  * struct _fluid_preset_t

...and provide proper getter and setter functions
2018-02-11 16:56:53 +01:00

90 lines
2.3 KiB
Text

New features
------------
- Non-realtime MIDI file rendering
- Sample streaming, load/unload sample on demand
- Synth sample rate change after initial creation
- handle tuning sysex messages
- Audio level metering
- Active voice count monitoring
Synthesis
---------
- Improve voice stealing algorithm
- Dynamic voice killing (based on CPU usage)
- Batch voice activation (stereo synch. as per SoundFont spec)
- Pitch control on stereo samples not managed as should
- soft clipping, compressor, limitor, or automatic gain control
Drivers
-------
- libao audio output driver
- Windows DirectMusic component
- ASIO driver
- DirectSound 3D and EAX
Bugs to mash
------------
- Add byte swapping support (on synthesis or sample load?)
- Investigate why MIDI rendering causes burst of notes at start
Validation
----------
- Validation tests: create soundfont with basic wave forms [sine,
square, triangle]; make test midi file; compare with SBLive output;
"regression" test
- Validate chorus (often sounds rather crappy)
- Analyse performance
Documentation
-------------
- Write documention on tuning
- Add usage scenarios in the documentation
- User and system configuration file
Binaries
--------
- FluidSynth
* Linux
* Win
* MacOS X
- fluid~ (Pd/Linux, MaxMSP/MacOSX, MaxMSP/Windows)
- fluidsynth~ (MaxMSP/MacOSX, MaxMSP/Windows)
- FluidXtra
Misc
----
- Remove dependency of settings on audio driver and other (see
fluid_settings_init())
- When specifying -i -s (no console and TCP server) log to TCP clients
with easier parsable messages ("warning:", "error:", etc)
- Pause and resume the synthesizer/audio thread (run synthesizer as a daemon)
- set loop on/off on a sample (set_gen GEN_SAMPLEMODE?)
FluidSynth Next Generation
--------------------------------------------
Top of the list
- Use FIFOs to send events to the audio thread
- 3D audio output
MIDI player
- Add API to manipulate and query MIDI file list
- generalize use of fluid_event_t, remove fluid_midi_event_t
Shell & command handler
- Add "note" command that plays a note with a duration (sequencer)
- MIDI file player commands (load/play/stop)
- Allow settings to be loaded before the synthesizer is created
MIDI Specs
- Omni and poly modes
- sample dump
- MIDI thru
- Scalable Polyphony MIDI (SP-MIDI)
Unsorted
- additional aux buses
- rewrite midi file using new sequencer
- direct access to audio buffer