[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[fluid-dev] Re: [Jack-Devel] Jack, FluidSynth, realtime and non-realtime
From: |
Stéphane Letz |
Subject: |
[fluid-dev] Re: [Jack-Devel] Jack, FluidSynth, realtime and non-realtime use cases |
Date: |
Mon, 31 May 2010 08:24:21 +0200 |
Le 31 mai 2010 à 05:40, David Henningsson a écrit :
> Hello Jack devs,
>
> FluidSynth has support for both Jack MIDI and Jack audio.
>
> FluidSynth should support both realtime use cases (such as live playing
> on a piano) and non-realtime use cases (such as rendering a mixdown). I
> assume that Jack also supports both use cases.
>
> Now, there are some midi messages for which FluidSynth can't guarantee
> low enough latency, e g program change messages. In the real-time use
> case, FluidSynth's best strategy would probably be to internally process
> these events asynchronously (i e in a different thread), and queue up
> other MIDI events behind to avoid reordering. And in parallel process
> audio callbacks (with the old MIDI state) in order to avoid dropouts.
>
> In the non real-time use case however, latency is not an issue, but
> predictability is, so we should just process events as they come. And
> the strategy outlined above will fail miserably in that use case.
>
> The question then is: How can FluidSynth, via the Jack Client API,
> determine if we're in "real-time" or "non real-time" mode, and choose
> strategy accordingly?
>
> // David
Using "jack_is_realtime" ?
http://jackaudio.org/files/docs/html/jack_8h.html#ab6d7b40dc5865b8011436b6853fa090f
Stéphane