[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [fluid-dev] framerate
From: |
Josh Green |
Subject: |
Re: [fluid-dev] framerate |
Date: |
Tue, 13 Dec 2005 12:16:45 -0800 |
On Mon, 2005-12-05 at 21:08 +0100, Antoine Schmitt wrote:
> Hello,
> a (maybe straightforward) question on framerate and smoothing in
> fluid. Suppose that I use fluid as a library in a client application
> (like Director or Virtools) which has an internal framerate (usually
> 24 or 50 fps). If the client app continuously changes some parameter
> in fluid (like volume, pan or any controller for that matter), this
> "continuous" will only happen as fast as the client's frame rate,
> resulting in potentially audible steps. The question is : is there
> some automatic smoothing functionnality in fluid that filters out
> abrupt changes in controllers or other parameters. The idea behind
> this question is to ensure that sound will be processed as smoothiny
> on slow systems where the client's framerate may be much slower than
> on the development machine.
> If there is no such functionnality (which I suppose) :
> - is this is a non-problem really because it will never be audible...
> - if this is a problem, is there another solution than integrating
> smoothing deep inside the fluid dps engine? Like having another
> client thread, that is called as often as fluid's thread and that
> does the smoothing for example...
>
> Thanks for any hints or food for thought,
Hello Antoine,
I think FluidSynth processes controller changes per its internal buffer
size, which I believe is usually 64 samples. So updating at only 24 or
50 fps I think would likely be very perceptible. Of course it all
depends on how fast the controller is changing. If you are using
FluidSynth as a library, you could provide this functionality yourself
of course. You can render a buffer of audio at a time, of any length,
using fluid_synth_write_s16 and fluid_synth_write_float. So you could
create your own thread at that point, and interpolate controller
changes. Your software would likely have a better idea of the best way
to interpolate those values as well. This type of functionality could
be nice in FluidSynth as well, but it probably wouldn't get added for a
while. Best regards,
Josh Green
signature.asc
Description: This is a digitally signed message part