[Top][All Lists]

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

Re: [fluid-dev] [PATCH] sampledata caching

From: David Henningsson
Subject: Re: [fluid-dev] [PATCH] sampledata caching
Date: Wed, 10 Oct 2012 08:05:57 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120912 Thunderbird/15.0.1

On 10/09/2012 11:13 AM, Kjetil Matheussen wrote:

I'm embedding FluidSynth as an instrument in the Radium music editor

It works fine (thanks for the great work!), but the memory usage was
sometimes shockingly high because fluidsynth reloads
entire soundfonts for every new synth, even if the soundfont was already
used in a different synth.

Maybe I have misunderstood something, but instead of spending several
more hours trying to figure out if I had misunderstood
something, I modified fluidsynth to cache already loaded sampledata from

Here's the patch:

Please let me know if there's anything that's needed to do in order for
you to use it.

I also have a question: Can delete_fluid_defsfont and
fluid_defsfont_load_sampledata be called from different threads at the
same time?
In so, we also need a lock protecting the global list of cached sampledata.

Hi Kjetil and thanks for your patch!

You're correct in your last sentence - as of how it works today, I'd say fluidsynth client software expects to be able to call fluid_defsfont_* in parallel. So yes, it needs to be protected.

Another thing we need to verify is that the sampledata is read-only once it's been bigendian converted. If it is not, chances are that two threads would both modify the sampledata, causing problems.

Element - you've been more into this part of FluidSynth than I, would you mind confirming that the sampledata is strict read-only and there are no hacks that change it?

// David

reply via email to

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