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: David Henningsson
Subject: [fluid-dev] Re: [Jack-Devel] Jack, FluidSynth, realtime and non-realtime use cases
Date: Mon, 31 May 2010 12:34:04 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100423 Thunderbird/3.0.4

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





reply via email to

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