On Wed, 10 Dec 2003, Frank Barknecht wrote:
Hallo,
Quickly guessed, this in around line 159:
if ( fluid_synth_sfload(synth, filename, 0) == 0)
should be that
if ( fluid_synth_sfload(synth, filename, 0) >= 0)
I tested it, it works, and I've put it in the CVS now.
Yes, that was it! Sorry again for not taking more time to (re)dig into it.
(2) The following sequence hogs my machine: instantiate fluid~ , load a large soundfont, close the fluid~ patch, instantiate fluid~, load a large soundfont. I checked, and the appropriate fluid API function _is_ being called on deletion. Sure seems as if my soundfont isn't getting back to the free store somehow (it's about 50% of my RAM).
commandline app? Maybe it's a bug in libfluidsynth? Or maybe I need to keep track of all loaded soundfonts and call something like the func "fluid_synth_sfunload (Remove a SoundFont from the stack.)" accordingly.
That would be a strange API if that were the case. One of these days I'll try to look into it. I'll also try with the command line app.
Another thing: I briefly considered if it would be useful to include the internal effects of fluidsynth like reverb or chorus into fluid~. Until now I think this is better done outside the external, so all effects are disabled. But maybe there's a need for them, and it shouldn't be hard to implement.
For me, it seems more versatile to use PD for this. But that's just my opinion.
There's one feature I thought of implementing, but from what I remember of how fluid is structured, it would require modifications to the fluid library: that is, to have an external which has a seperate output for each voice. The reason for this, is I would like to use my large piano sound font and process each voice independently. I can't use multiple instances of fluid~ because the sound font is too large. Alternatively, if there could be a way of different fluid~ instances sharing a sound font, that would work too, but would also require fluid lib mods.
Because this feature probably wouldn't interest too many people, I've decided to give up on the idea for now.
Larry Troxler