At Grame, we started working on JACK (jack1 at that time) in 2003 and our first 
commitment was to port the C code base on OSX. Even if the result was working, 
we rapidly felt that the C code base was not flexible enough to evolve in the 
direction we wanted to explore: multi-platforms support, SMP and glitch-free 
connections (among other ideas we had...) . Around 2004-2005 we had a new C++ 
based code base that was first developed on OSX, later ported in Linux (2005), 
on Windows (summer 2006) and Solaris (summer 2008 as a result of funding coming 
from RTL french radio). In 2004 we also found the way to better "integrate" 
JACK in the CoreAudio architecture on OSX (the JackRouter JACK/CoreAudio 
bridge) that allowed any CoreAudio application to become a JACK client, thus 
participating in the success we had on OSX with the JackOSX package.

I think the "about 3 years ago, the JACK mini-summit in Berlin" Paul told 
about, was actually during LAC 2008 in Kohn. It was my impression that most of 
the JACK community was interested to see jackdmp (renamed jack2 at that moment) 
become the future of JACK, and late 2008 and 2009 was an intense period of work 
to reach this goal. Nedko (mostly but some other) did a huge job of improving 
the build system, implement the so-called "JACK Control API" (or at least the 
server side of it) and helped in other areas. The D-Bus based server control 
code (Nedko) was also integrated at that time.  

In spring 2009 started this "D-Bus war" and after endless discussion with 
people with strong opinions (Fons, Nedko...) it appeared that no agreement 
could be found. The best that we could achieve (in my view) was to clearly 
define the "JACK Control API" as the "frontier" between the external world that 
wants to control the JACK server, and the server code itself, and report all 
more sophisticated control mechanism outside. At about the same time, some 
developers (Torben, Paul ...) started to rebirth the jack1 codebase, and it 
appeared more and more clear that the "jack2 become the official code base" 
idea start to become a vanishing goal.

I must say that I still don't have a clear understanding of why this happened. 
I still don't understand the sentence "Like Torben, there are some design 
decisions there that I have questions about." and I think explaining it in more 
details would really help. The fact that jack1 and jack2 are almost 
indistinguishable in everyday use is quite satisfactory, but at the same time 
the subtle difference that stay continue to cause some endless comments from 
users about the "real" advantages of each of the two implementations. I still 
see reports from "more xruns" here or a "bit less CPU use" there, but with no 
real data and clear "step by step way to reproduce issues" that would help to 
fix remaining bugs in jack2 codebase (for example jack2 still probably has 
issue with multi-cards support compared to jack1, but AFAICS this is in ALSA 
backend, and I cannot progress on that without the help of people with 
multi-cards and knowledge in ALSA backend code).

Concerning session management added in JACK codebase, I did not followed the 
discussion in details. I said to Paul in a private mail that I though it was 
not a good idea (but maybe I am completely wrong...) but I would certainly not 
oppose to a implementation for jack2. I remember someone volunteered to work on 
that ??

I have to say that I become quite tired of all that mess, since I don't see any 
clear way to solve the situation. After about 5 years of real commitment in 
JACK project, I decided to move back a bit and work on some other stuff. I 
still try to follow bug reports and jack1 changes, release a package from time 
to time and maintain JackOSX project. I still think some interesting ideas 
(like the "pipelining" mode that currently stay in a jack2 branch...) are of 
interest (especially since we now see with those "4 cores/threads" model in new 
laptops...) and should be pushed in mainline.

Stéphane 
_______________________________________________
Linux-audio-dev mailing list
[email protected]
http://lists.linuxaudio.org/listinfo/linux-audio-dev

Reply via email to