Quoting Pedro Lopez-Cabanillas <[email protected]>:
What about adding a call to jack_cpu_load() in fluid_jack.c, and logging the
results?


Good idea. Just did that, ran some tests, saved the output numbers to files and graphed the results from both versions using gnuplot:
plot "FluidSynth-1.1.0.txt" with lines, "FluidSynth-1.0.9.txt" with lines

http://resonance.org/~josh/FluidSynth-AutumnLeaves-graph.png

Very little difference in my case. In fact 1.0.9 spikes higher than 1.1.0 for that test on my system.


Could you try this?
...
#define fluid_synth_is_synth_thread(_s)     TRUE
#define fluid_synth_should_queue(_s)   FALSE

Very little difference, if any at all.


Good to hear.  That confirms that the event queuing has very little overhead.

I've also tested 1.1.0 in another system right now, with very similar results.
The first test machine is an AMD Athlon XP 2800+ Speed: 2 GHz
The second test machine is an Intel Core2Duo T7200 Speed: 2 GHz


I should probably try running FluidSynth on some other machines to see if I can replicate what you are seeing.

Regards,
Pedro




Here is the code fragment I added at the top of fluid_jack_audio_driver_process() in fluid_jack.c:

  static int stats_frame_counter = 0;
  float cpuload;

  stats_frame_counter += nframes;

  if (stats_frame_counter > 48000)
  {
    cpuload = jack_cpu_load (dev->client);
    printf ("%0.3f\n", cpuload);
    stats_frame_counter = 0;
  }


Regards,
Josh



_______________________________________________
fluid-dev mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/fluid-dev

Reply via email to