On Sat, Feb 23, 2013 at 6:34 PM, Johannes Kroll <jkroll(a)lavabit.com> wrote:
On Sat, 23 Feb 2013 17:28:49 -0800
"J. Liles" <malnourite(a)gmail.com> wrote:
All of the existing session management protocols
have inherent
limitations
which I was attempting to avoid by creating NSM.
Nedko and I have
discussed
including NSM protocol support in LADISH, which
would be kind of like
what
you're talking about, but the problem remains
that the whole would be a
lowest-common-denominator of functionality. Now, if jack session and LASH
and LADISH level 1 applications eventually fade out and move to the NSM
protocol, then maybe that's OK. But in the meantime it's not going to be
as
functional as using pure NSM.
Please, don't turn this into a "which session manager is the best" war,
that's not what I intended. Surely each coder thinks *their* session
manager is the best one, why else would they have written it. In
reality every SM has their strengths and weaknesses I guess. (For
example I noticed that NSM, which I otherwise like, can't restore Jack
connections without an external tool like jack_patch - and with the
tool, it doesn't seem to restore MIDI connections).
About shell scripts (David): that sounds like the lowest common
denominator approach, and while it's neat and UNIXy and everything,
unless I misunderstood, writing shell scripts to start apps is what I
can do anyway, without any session manager. Also, I think the ability
to tell apps to save state while they are running is important, and
shell scripts can't do that.
I would hope that something more than the lowest common denominator
approach would be possible. As I understand it, all SM systems do the
following, in one way or the other:
1) start apps with a saved state (may be implemented using 2)
2) tell running apps to load their state from a given session
3) tell apps to save their state to a given session
4) possibly restore JACK and alsamidi connections
5) possibly implement parts of the session loading and saving (this
might be completely up to the apps)
If that's basically what SMs do, it should be possible to create an
interoperability layer (*NOT* a new protocol!) that talks the
existing protocols and does the necessary things. There might be
tradeoffs, when one SM system has less functionality as the other, but
that would hopefully only affect the apps using that SM system, not the
others. So it would not be "lowest common denominator".
If the differences between SMs are that great that doing this isn't
possible at all, that would be sad, because I don't really see any SM
becoming the defacto standard any time soon.
I'm not starting a war. Many of the other SM protocols were designed with
full knowledge of their limitations and compromises (that is to say, the
authors don't believe they are the best solution by any means, just a
workable one). In fact, the differences between the different SM protocols
are great, and in the case of NSM even greater. Drobilla, with mention of
shell scripts, was speaking only of a session disk format that could used
to port existing sessions from one SM to another. If we add NSM support to
LADISH, that will be exactly what you desire. One SM front end that
supports every extant protocol. However, I believe this will hardly make
the situation any easier on the *user* than it is now (and since when are
people happy with LASH etc?). LASH, jack-session and LADISH Level 1 are
extremely limited, and, IMHO inadequate protocols. Continuing support for
them does nothing to enhance the user experience. And it isn't as if we're
talking about 100s of client applications here, there are only a handful
that support any kind of SM protocol period. I may have the desire to patch
everything to support NSM, but what I do not have is the time (and the time
I might spend adding NSM support to LADISH might better be spent converting
jack-session and LASH clients over to NSM). In any case, patching will do
far more good than talking!