iiwusynth-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [iiwusynth-devel] FluidSynth roadmap


From: Antoine Schmitt
Subject: Re: [iiwusynth-devel] FluidSynth roadmap
Date: Wed, 6 Nov 2002 16:31:09 +0100

:::::::::6/11/02::::0:37 -0800::::Josh Green:::::::::
- New FluidSynth name. Should the API be changed to reflect this? This
is obviously going to completely blow up backwards compatibility.

That would be a good moment to make a stable release.

- iiwusynth parameter querying (looks like gain and chorus have been
done, reverb querying is needed).

Indeed. And I even think that chorus is not fully done.


- Improved sfloader sample data handling

- I think that the sfloader API is really heavy, especially knowing that only one sfloader exists : the default one. Is it really necessary ? - As part of the Xtra development, I wrote new functions for sample/instrument/preset creation (on the fly, in RAM, from samples loaded from files or from Director media). I was waiting for some stable moment to include it in CVS. On the other hand, I guess that they are not very generic, as they create one instrument_zone per sample (with envelope and loop management), but dont give access to preset_zone management, not talking about access to zone generators. I think that a rethink of this API to allow for dynamic creation of a sf structure would be really powerful. - About sample, it seems that the stereo is not implemented at all (or am I mistaking). The SF specs defines stereo handling (two instrument_zones with linked samples). It would be interesting to add it.


- Compare synthesis to other SoundFont devices (SB Live!, SB AWE 32/64)
and perhaps try to more closely match them (or provide compatibility
modes)

On one of our project, we have found significant differences between hardware synthesis and FluidSynth synthesis : lower sound volume, many clicks on some presets, etc.. (using complex SoundFont presets inside Vienna, on Windows). We are investigating more on this and will keep you informed. Anyone else has seen this ?

Some other topics I'd like to submit to your sagacity:
- have FluidSynth automatically take advantage of hardware devices if available
- architecture FluidSynth so that the output stream(s) may be inputted into some other APIs, like DirectSound3D, or some équivalent 3D sound spatialization engine).
- Chorus is somewhat of low quality, or at least sounds strange and broken
- various small features, not yet implemented:
-- AllSoundsOff
-- Filtering
-- Ability to set the number of channels at startup
-- Manage other sampling frequency than 44100
-- reloadsoundfont
-- stereo samples
- rationalize the usage of the list_t structure. This structure is half public, which is not good.
- Various bugs
-- unloading a soundfont while one of its samples is used (in a voice) crashes (unreferenced pointer) -- pan span is twice too large (it actually pans from 32 to 96, instead of 0 to 127


Having used iiwu for some time now, as part of the Xtra development, I must say that I find it really well designed and implemented. Also, I think that leveraging on the SoundFont API which is becoming a standard is really a good position to be : it gives access to all those complex SoundFonts banks created everywhere. I am using it fully as the basis of one project (http://www.infiniteCD.org/) and am actively proselytising it on other projects :-)

The only thing that is quite complex I think, and which is not caused by iiwu but by the opensource process, is that it is very difficult to rely on a stable version, as it changes all the time with bug fixes and new features. So for the production of a client of iiwu, one has to have the full development environment available, CVS, as well as all the other free software libraries (portaudio, MidiShare, now linsndfile for the Xtra...) + update regularely and recompile everything. I dont know how things are done usually with OpenSource software (I come more from the industry - NeXT, etc..), and I know that all this is done gracefully by all of us, but I think that it would be good to have stable releases from time to time, fully built and available in binary format, with documentation.

Enough for today :-)



++ as





reply via email to

[Prev in Thread] Current Thread [Next in Thread]