Hello everyone,
  Finally! Here's a quick update on my fluidsynth issues.
I figured there has to be a better way of stress testing the system than physically banging my midi controller. I created a simple file in rosegarden , equivalent of hitting 88(?)keys repeatedly in a loop, with the sustain pedal on; I've attached the rosegarden file. It would be nice if people could post results of using this file (or a more suitable one!).

Here are some of the initial (and very interesting) results (core 2 macbook running AVLinux):
Using 2 qsynth engines, each containting multiple soundfonts (around ~200 MB), at higher speeds (above 360 BPM), fluidsynth (qsynth in this case) crashes with this error in the qjackctl messages window:

subgraph starting at qsynth timed out (subgraph_wait_fd=32, status = 0, state = Finished, pollret = 0 revents = 0x0)

Sometimes, not just qsynth, but other applications, such as jack-rack or rosegarden also crash with the same error.

So not only does fluidsynth itself crash, it can potentially drag down the whole ship with it!

To answer Lee's question, yes and no. Most of the times, I can restart the qsynth engines and everything's back to normal, but occasionally, I have to restart jackd itself.


For some soundfonts (including my "bread and butter" ones :( ), running the loop at 720 BPM guarantees an (almost) instant crash, within around a second.


Yes, the crash corresponds to cpu usage spikes of ~50% (at least).


Of course, the stress test is unreasonably demanding, but eventually, that kind of extreme stress will be encountered. For a live musician, an application that cannot deal with it is simply unreliable. Bottomline: Using soundfonts on linux system for a live performance is a bad idea.

On the other hand, I ran the same thing against ~900 MB piano sample on Linuxsampler. Perfectly stable at 720 BPM.
Of course, I can't percieve dropped notes, and there are no xruns reported, but still.. it doesn't crash!!! (This ties in with Dominic's observation of 'better' performance of LInuxsampler vis-a-vis Fluidsynth).

Which brings me to ask: what does it mean for a subgraph to "time out"? Understandably, a given audio application can't be expected to perform under any cpu load. But why can't fluidsynth just drop notes and move on? Are there any simple workarounds for subgraphs timing out, or is it an inherent bug in the fluidsynth libraries? The strong feeling that one gets is that fluidsynth has simply not been designed with failsafes in mind, for extreme situations.

Also, are there fluidsynth developers who are on this list? If not, is there a better forum to give them feedback regarding these issues? Given the availability of decent to good soundfonts, and the number of man-hours put in by various developers on applications like qsynth and ghostess, it is truly unfortunate that the base fluidsynth library itself is inherently unusable in live contexts.
Cheers,

Guru


(P.S. I do hope I'm not jumping to conclusions here. If someone can show that the problem lies not with fluidsynth but some other application, I'd be happy to be corrected. But that there is a serious problem somewhere, there is little doubt!)



On Sun, Nov 8, 2009 at 12:38 PM, Guru Prasad B. R. <prasadbrg@gmail.com> wrote:
Sorry everyone, for keeping the thread hanging...
 I was away from my system for a few days, and just got back.
@J.E.B
Wow! That looks like a rather comprehensive list. Will try each suggestion, perform the stress test, and get back to you.
@Lee
Interesting idea. If memory serves me right, restarting only fluidsynth doesn't solve the problem, but I have to confirm this. Will do so soon...
Cheers,

Guru