Re: [Jack-Devel] The Situation(s) With JACK

PrevNext  Index
DateMon, 12 Dec 2011 23:06:10 +0100
From Tobias Hoffmann <[hidden] at thax dot hardliners dot org>
ToPaul Davis <[hidden] at linuxaudiosystems dot com>
CcJACK <[hidden] at lists dot jackaudio dot org>
In-Reply-ToPaul Davis Re: [Jack-Devel] The Situation(s) With JACK
Follow-UpPaul Davis Re: [Jack-Devel] The Situation(s) With JACK
Follow-UpStéphane Letz Re: [Jack-Devel] The Situation(s) With JACK
Follow-UpGeoff Beasley Re: [Jack-Devel] The Situation(s) With JACK
Paul Davis wrote:
> But part of the reason to endorse a C++ implementation was to
> make things much more modular, and although Jack2 superficially looks
> that way, in practice in seems not to be.
>   
This is also my impression of the code.
>    >    realtime device switching (without stopping/restarting server)
>   
Ok, but that could imply changing basic Jack parameters like the period 
length, samplerate, etc.

But of paramount importance from a user standpoint is, that either jack 
*never* crashes[1] or every application has to be able (e.g. forced by 
jack API) to reconnect after a jack server died.

>    >  single header file tree, for use by jack1, jack2 and anything else
>   
IMO applications should be programmed to a extensively documented Jack 
API[2], and not to a certain implementation. If we then want ABI 
compatibility a common header tree is the only logical conclusion. But 
still there have to be mechanisms for API versioning and/or feature 
detection.
There also has to be a well-defined and not overly cumbersome procedure 
for extending the API.

> You're also ignoring the need to have a single netjack streaming
> protocol, 
I don't think we're there yet, i.e. neither netjack1 nor netjack2 is 
sufficient for all the use cases. They both look to me like 
prove-of-concepts that demonstrate certain things, but lack through 
engineering in other respects. E.g. how to accommodate future extensions 
(header-length fields, other codecs [than celt,float], ...).

And while it is a nice thought of having only jack with exactly one 
perfectly tailored network protocol, reality is not so perfect. We 
should not forget that there are other network protocols out there (AVB, 
Dante, etc.) that some might want to see interoperating with jack at 
some point in the future. And there are people out there that would be 
willing to connect via netjack, but without using jack at one end -- and 
need good documentation of the wire format.  From this perspective, and 
thinking of possible dependencies like DNS-SD, I'm even not too sure, if 
network protocols (esp. the "network manager" part should be "designed 
into the jack core".


Another thing that has been brought up in the discussion is a 
standardized driver API for all implementations. IMHO this could have a 
big impact on jacks future.

  Tobias

[1] big problem here until I discovered "Soft Mode"
[2] e.g. what has to be expected in a jack_midi_event_t
PrevNext  Index

1323727590.28103_0.ltw:2,a <4EE67AD2.4000205 at thax dot hardliners dot org>