File: TODO

package info (click to toggle)
fluidsynth 1.1.11-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 3,356 kB
  • sloc: ansic: 31,563; xml: 705; sh: 523; makefile: 266; cpp: 262; java: 110
file content (106 lines) | stat: -rw-r--r-- 3,013 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
New features
------------
- 24 bit sample support
- 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
- MacOS X MidiCore component
- Windows DirectMusic component
- ASIO driver
- DirectSound 3D and EAX

Bugs to mash
------------
- Fix warnings on 64 bit platforms and type-puned pointer warning
- 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
- fluid_synth_program_select2() with name of soundfont instead of font_id
- fluid_synth_set_gen2()
- 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())
- Add "unselect" command to shell to set a MIDI channel to not sound.
- When specifying -i -s (no console and TCP server) log to TCP clients
  with easier parsable messages ("warning:", "error:", etc)
- add function to get initial soundfont generator value
- 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
- Redo sfloader api using "interface" api
- 3D audio output

Design
- turn ladspa fx unit and router in indepedent 
  objects, remove their dependencies from the synth object

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)
- Relax dependency of the command handler on the synthesizer
- Allow settings to be loaded before the synthesizer is created

SoundFont Specs:

MIDI Specs
- Omni and poly modes
- sample dump
- MIDI thru
- Scalable Polyphony MIDI (SP-MIDI)


Unsorted
- include readline in project
- additional aux buses
- rewrite midi file using new sequencer
- direct access to audio buffer