fluid-dev
[Top][All Lists]
Advanced

[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 12:42:36 +0200

Le 31 mai 2010 à 12:34, David Henningsson a écrit :

> On 2010-05-31 08:24, Stéphane Letz wrote:
>> 
>> 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
> 
> Sorry if the terms are confusing. Let me rephrase: I'm assuming that
> JACK has a faster-than-realtime mode, for performing mixdowns as fast as
> the computer can handle. Is that correct? If so, how do I know if we're
> currently in such a mode?
> 
> (If the answer is still "Jack_is_realtime", the documentation is wrong.)
> 
> // David
> 
> 

Sorry, use the freewheel callback for that :

http://jackaudio.org/files/docs/html/group__ClientCallbacks.html#gac8e87f2c4054afc41c98c8f6a2460859

Stéphane 


reply via email to

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