Re: [LAD] NSM - handling large files

2012-04-11 Thread rosea.grammostola
It might be a good idea to discuss NSM (and it's implementation) and 
compare it with other Session Managers, at LAC2012. Such a conference 
could be a nice opportunity to share ideas to improve Linuxaudio session 
management in general. Unfortunately I'm not able to attend this year.


For those who go, have fun! :)

Regards,
\r
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-11 Thread Dave Phillips

On 04/11/2012 08:42 AM, rosea.grammostola wrote:
It might be a good idea to discuss NSM (and it's implementation) and 
compare it with other Session Managers, at LAC2012. Such a conference 
could be a nice opportunity to share ideas to improve Linuxaudio 
session management in general. Unfortunately I'm not able to attend 
this year.


For those who go, have fun! :)


Hey Dirk,

We'll miss you ! I still tell people about the fellow who approached me 
on a train platform in Dublin and asked if I was Dave Phillips. :)  
Well, I hope we'll see you next year, and I'll be sure to hoist a few 
for you during the symposia.


Best,

dp


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-11 Thread rosea.grammostola

On 04/11/2012 03:18 PM, Dave Phillips wrote:

Hey Dirk,

We'll miss you ! I still tell people about the fellow who approached me
on a train platform in Dublin and asked if I was Dave Phillips.


Hehe, I did the same when I saw Bono standing at Dublin central. He 
still tells his friends about it to. Must feel good apparently, when 
you're famous and people you have no clue about, recognize you in the 
middle of a crowd :)


Have a good time!
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-11 Thread Renato
On Wed, 11 Apr 2012 15:36:30 +0200
rosea.grammostola rosea.grammost...@gmail.com wrote:

 On 04/11/2012 03:18 PM, Dave Phillips wrote:
  Hey Dirk,
 
  We'll miss you ! I still tell people about the fellow who
  approached me on a train platform in Dublin and asked if I was Dave
  Phillips.
 
 Hehe, I did the same when I saw Bono standing at Dublin central. 

rosea.grammostola AKA Dublin's station stalker ;)

renato
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-09 Thread rosea.grammostola

On 04/06/2012 09:06 PM, Joel Roth wrote:

On Wed, Apr 04, 2012 at 10:12:53PM +0200, rosea.grammostola wrote:

Afaik, NSM gives us all we users need when it comes to LAU session
management Correct me if I'm wrong.


It would be great if the core functionality of NSM
could be separated out from the GUI to support
console users and environments where X may not
be available.


So that's already the case. Anyway thanks for trying :) Only developers 
are able to convince me on fundamental flaws of the NSM design atm. In 
this regard, it might be good if JackSession developers speak out about 
the current situation, now we have NSM and JackSession. They probably 
see those fundamental flaws or disadvantages in NSM. Or they maybe see 
particular advantages of JackSession or even NSM.


Let me summarize my personal findings as a JackSession and NSM user:

Personally I saw it as an advantage of JackSession, that it has JACK 
involved and that it only needs the JACK dependency. After the comments 
by Fons and by trying NSM myself, I think that it is an advantage of NSM 
instead, that it is independent of JACK. It's more easy to add apps 
without JACK support to the session and to keep apps with JACK support 
outside the session (by purpose). It gives you as a user more freedom 
and flexibility overall and so I think it's a better design choice. 
These advantages out weights the disadvantage of having one extra 
dependency to support NSM (liblo).


In terms of workflow, I prefer NSM above JackSession. Not only the fact 
that it is possible to easily launch apps without session support 
(without conf files), but also that it does what you expect from a 
session manager, OOTB. Close applications, fast, easy and safe saving. 
Quick and easy changing from one session to another etc.


The fact that NSM asks supported clients to act coherently and 
predictable is another advantage. I think it gives you as a user a 
simple and clear workflow. An disadvantage of this might be that a 
little more is expected from the devs of the clients, but as far as I 
understood that's isn't much extra effort to support it and also there 
are no fundamental objections yet, apart from the fact apps which 
doesn't have a centralized save location (qtractor), have more problems 
with this. I think this is a problem in that app as others pointed out. 
Moreover there are not many apps with this behavior.


In summary and to conclude: After using Ladish and especially 
JackSession, I think NSM is the best solution for the session puzzle so 
far and likely for the coming years. This is a personal user 
perspective, devs could think otherwise, but I didn't see a good reason 
for this so far.


Thanks. The list is yours again ;)

\r







___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-09 Thread Fons Adriaensen
On Mon, Apr 09, 2012 at 05:27:54PM +0200, rosea.grammostola wrote:

 Personally I saw it as an advantage of JackSession, that it has JACK  
 involved and that it only needs the JACK dependency. After the comments  
 by Fons and by trying NSM myself, I think that it is an advantage of NSM  
 instead, that it is independent of JACK. It's more easy to add apps  
 without JACK support to the session and to keep apps with JACK support  
 outside the session (by purpose). It gives you as a user more freedom  
 and flexibility overall and so I think it's a better design choice.  
 These advantages out weights the disadvantage of having one extra  
 dependency to support NSM (liblo).

Liblo is *not* a dependency of any app using NSM. Since the NSM protocol
specifies the actual messages, an app can send an receive them whatever
code or library the developer prefers. In fact NSM does not add any
dependencies at all.


To ensure things stay like that, I'd like to see the following
added to the NSM specs:

* All communication is done using simple OSC messages,
* i.e. without using bundles or wildcards. 

That way even the most basic OSC support would be enough to
use NSM. And with the protocol as it stands, nothing is lost.


Ciao,

-- 
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-09 Thread J. Liles
On Mon, Apr 9, 2012 at 9:03 AM, Fons Adriaensen f...@linuxaudio.org wrote:

 On Mon, Apr 09, 2012 at 05:27:54PM +0200, rosea.grammostola wrote:

  Personally I saw it as an advantage of JackSession, that it has JACK
  involved and that it only needs the JACK dependency. After the comments
  by Fons and by trying NSM myself, I think that it is an advantage of NSM
  instead, that it is independent of JACK. It's more easy to add apps
  without JACK support to the session and to keep apps with JACK support
  outside the session (by purpose). It gives you as a user more freedom
  and flexibility overall and so I think it's a better design choice.
  These advantages out weights the disadvantage of having one extra
  dependency to support NSM (liblo).

 Liblo is *not* a dependency of any app using NSM. Since the NSM protocol
 specifies the actual messages, an app can send an receive them whatever
 code or library the developer prefers. In fact NSM does not add any
 dependencies at all.


 To ensure things stay like that, I'd like to see the following
 added to the NSM specs:

 * All communication is done using simple OSC messages,
 * i.e. without using bundles or wildcards.

 That way even the most basic OSC support would be enough to
 use NSM. And with the protocol as it stands, nothing is lost.


This is true. Liblo is not a hard dependency. Anything that can
send/receive OSC messages should work. It definitely doesn't use wildcards
and I haven't actually found a use for OSC wildcards yet period, so I don't
have a problem with officially avoiding them. Bundles are useful for some
things (especially when delivering a list like response, because OSC has no
more obvious way to indicate 'end of list'), and aren't very complicated at
the stream level (just ordinary messages preceded by something that says,
'hey, this is a bundle of such and such length'), but, yeah, I don't have
any idea how many of the OSC implementations out there support them. With
liblo, it's only *generating* the bundle that is complicated. Receiving it
is easy.The lowest common denominator here (that people are likely to
actually use) is probably the Python OSC implementation. And, anyway, the
current implementation doesn't use them for anything (if it did, it would
probably use them for the session list response [not something most clients
will even use] and the announce response/open pair [all clients use this
one]).
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-09 Thread Fons Adriaensen
On Mon, Apr 09, 2012 at 09:35:27AM -0700, J. Liles wrote:

 This is true. Liblo is not a hard dependency. Anything that can
 send/receive OSC messages should work. It definitely doesn't use wildcards
 and I haven't actually found a use for OSC wildcards yet period,

Same here... In all cases where I've wanted to say 'all' objects
of some sort (e.g. set all faders to 'off'), those objects are
indexed by integers anyway and not as part of the destination. So 
all it takes is some 'escape' value such as -1.

 so I don't
 have a problem with officially avoiding them. Bundles are useful for some
 things (especially when delivering a list like response, because OSC has no
 more obvious way to indicate 'end of list'),

'[' and ']' in the format are used to start and end arrays, lists, etc..

 and aren't very complicated at the stream level 

True, but note that the ability to receive bundles implies honouring
timestamps. A library that does accept bundles but ignores timestamps
would be considered buggy. It's this that turns what could otherwise
be something very simple and minimal into a more complex affair,
requiring a different API and in theory also unbounded storage.

I never understood why the OSC designers combined bundling and
timestamping, as either of them is useful without the other.

Ciao,

-- 
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-08 Thread Joel Roth
On Fri, Apr 06, 2012 at 01:07:57PM -0700, J. Liles wrote:
 On Fri, Apr 6, 2012 at 12:06 PM, Joel Roth jo...@pobox.com wrote:
 
  On Wed, Apr 04, 2012 at 10:12:53PM +0200, rosea.grammostola wrote:
   Afaik, NSM gives us all we users need when it comes to LAU session
   management Correct me if I'm wrong.
 
  It would be great if the core functionality of NSM
  could be separated out from the GUI to support
  console users and environments where X may not
  be available.
 
 
 FYI. This is already a matter of fact... the GUI communicates with nsmd via
 OSC. nsmd can be run without the GUI and controlled via osc (there's a
 program included in the distribution called send_osc to allow this kind of
 thing to be done via shell scripts).

That's great to know. I also see that CPAN has a couple of
modules for handling OSC.


-- 
Joel Roth
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-06 Thread Joel Roth
On Wed, Apr 04, 2012 at 10:12:53PM +0200, rosea.grammostola wrote:
 Afaik, NSM gives us all we users need when it comes to LAU session
 management Correct me if I'm wrong.

It would be great if the core functionality of NSM
could be separated out from the GUI to support
console users and environments where X may not
be available.

Regards,

Joel
-- 
Joel Roth
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-06 Thread J. Liles
On Fri, Apr 6, 2012 at 12:06 PM, Joel Roth jo...@pobox.com wrote:

 On Wed, Apr 04, 2012 at 10:12:53PM +0200, rosea.grammostola wrote:
  Afaik, NSM gives us all we users need when it comes to LAU session
  management Correct me if I'm wrong.

 It would be great if the core functionality of NSM
 could be separated out from the GUI to support
 console users and environments where X may not
 be available.


FYI. This is already a matter of fact... the GUI communicates with nsmd via
OSC. nsmd can be run without the GUI and controlled via osc (there's a
program included in the distribution called send_osc to allow this kind of
thing to be done via shell scripts).
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-05 Thread Rui Nuno Capela

On 04/05/2012 12:25 AM, David Robillard wrote:

On Tue, 2012-04-03 at 18:04 +0100, Rui Nuno Capela wrote:
[...]

ardour gets all its stuff under one own session directory, on a per
session/project basis, iirc just like NSM mandates,

bbbuut...:) making that one and the same directory as from an
outsider/independent session manager like NSM is asking for a lot of
file and symlink juggling, if you ask me

i'm not an expert in ardour internals, someone else could chime in and
help me here.


I don't know what you are trying to say.  One and the same directory as
from an outsider/independent session manager?  Huh?

A directory of files is a directory of files.  The format Ardour would
save to inside of a session is precisely the same format it already
saves in, perhaps with some things being links.

I can guarantee you that much, because if it had to be different,
Ardour, like presumably most apps, simply would never implement it...



ok then.

but again, i was implying about the NSM session directory location 
restriction, not ardour's session/project directory/file format.


let me thrown in some more ;)

from what I read on the NSM User  API specs. you can only create new, 
open and save NSM-managed sessions as in each participating client 
project's sub-directories. existing individual projects are out of the 
picture. unless you cheat the NSM o.O


iow. what if, assuming Ardour were about a fully-compliant NSM client 
and you want to open an existing Ardour session, one you've been working 
hard previously but stand-lone ie. outside the NSM umbrella? i read that 
you'll have to copy or move all ardour's session files _manually_ first, 
or symlink at best, into the NSM's central/root directory and guess what 
and where. that's the kind of cheat or juggling i was telling you 
about :)


otoh, if its native(gui file menu)-open is available, it would be dead 
simple to get an existing qtractor project into a NSM session and 
behold: later, the NSM would just save (a new stanza) of the qtractor 
session/state file under the SM's designated central directory location 
and that's perfect for qtractor, see? because all qtractor media content 
files are external and independent of the state file. and if you (the 
user) selects the archive/zip bundle format (.qtz suffix) as default, 
then we'll get *all* qtractor project stuff under the nominated NSM 
session directory tree (already compressed into one single archive/zip 
file, though)


perhaps, automatic symlinking of all the external files could be also 
doable at the NSM-Save instant, 'coz qtractor state is, among other 
important things, an inventory map of all those files anyway--some 
invasive coding required, though ;)


looks like, after all, that qtractor could stand compliant to both NSM 
levels 0 and 1+, in one fine blow, only if those file menu restrictions 
get subverted or just plainly ignored:o) and all the code to comply with 
the basic NSM API announce, open, save, close... gets eventually coded 
in, of course


aha. this seems the case for edgy applications like qtractor, when 
their own file new, open, save, and save as... menu operations are made 
completely orthogonal and independent of any general SM open/save ones.


try that with the not-so-edgy (mainstream?) applications ;)

cheers
--
rncbc aka Rui Nuno Capela
rn...@rncbc.org
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-05 Thread Fons Adriaensen
On Thu, Apr 05, 2012 at 12:14:03PM +0100, Rui Nuno Capela wrote:

 from what I read on the NSM User  API specs. you can only create new,  
 open and save NSM-managed sessions as in each participating client  
 project's sub-directories. existing individual projects are out of the  
 picture. unless you cheat the NSM o.O

 iow. what if, assuming Ardour were about a fully-compliant NSM client  
 and you want to open an existing Ardour session, one you've been working  
 hard previously but stand-lone ie. outside the NSM umbrella? i read that  
 you'll have to copy or move all ardour's session files _manually_ first,  
 or symlink at best, into the NSM's central/root directory and guess what  
 and where. that's the kind of cheat or juggling i was telling you  
 about :)

You have a project of application A, created without NSM, and the project
is saved in P (a single file, or a directory).

You want to use P as part of an NSM session. Note that this scenario means
that A has some button to select if it runs under NSM or not. Let's assume
that the default is to run stand-alone.

There are two ways to do this:

1. ('Load' and 'New' are disabled when running NSM)

* Start A.
* Load  P.
* Connect A to NSM. Application A will receive a path indicating
  where to save its current project. The actual message is 'open',
  but since there is nothing to open at the given path the only
  sensible thing to do is to put the current project there.
  App. A can do so immediately, and then continue as normal.
  The whole thing amounts to a 'Save as' [*] with the name given
  by NSM instead of the user. So it's really nothing new.


2. ('Load' and 'New' are not disabled but the application knows
how to handle then when running under NSM)

* Start A.
* Connect A to NSM. App. A will receive a path indicating where to
  save the its project. Since A is now running under NSM, it remembers
  this path as the 'current project' even when it loads another one,
  or creates a complete new one (under these condition A is allowed
  to have 'Load' and 'New' menu entries).
* Load P. App A knows that it should not save to P, but to the path
  given by NSM. To keep things simple, it could copy P to that path
  immediately and then continue as normal. Again this is essentially
  a 'Save as'.


The only difference between the two is that in (2) the second and
third steps are swapped. 

No 'manual' user action is required in either case.

Ciao,


[*] 'Save as' interpreted as most apps would, not as Ardour does it.
In Ardour, 'Save as' does not create a new project but a snapshot,
while setting the current name to that snapshot.

-- 
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-05 Thread Rui Nuno Capela

On 04/05/2012 01:16 PM, Fons Adriaensen wrote:

On Thu, Apr 05, 2012 at 12:14:03PM +0100, Rui Nuno Capela wrote:


from what I read on the NSM User  API specs. you can only create new,
open and save NSM-managed sessions as in each participating client
project's sub-directories. existing individual projects are out of the
picture. unless you cheat the NSM o.O

iow. what if, assuming Ardour were about a fully-compliant NSM client
and you want to open an existing Ardour session, one you've been working
hard previously but stand-lone ie. outside the NSM umbrella? i read that
you'll have to copy or move all ardour's session files _manually_ first,
or symlink at best, into the NSM's central/root directory and guess what
and where. that's the kind of cheat or juggling i was telling you
about :)


You have a project of application A, created without NSM, and the project
is saved in P (a single file, or a directory).

You want to use P as part of an NSM session. Note that this scenario means
that A has some button to select if it runs under NSM or not. Let's assume
that the default is to run stand-alone.

There are two ways to do this:

1. ('Load' and 'New' are disabled when running NSM)

* Start A.
* Load  P.
* Connect A to NSM. Application A will receive a path indicating
   where to save its current project. The actual message is 'open',
   but since there is nothing to open at the given path the only
   sensible thing to do is to put the current project there.
   App. A can do so immediately, and then continue as normal.
   The whole thing amounts to a 'Save as' [*] with the name given
   by NSM instead of the user. So it's really nothing new.


2. ('Load' and 'New' are not disabled but the application knows
 how to handle then when running under NSM)

* Start A.
* Connect A to NSM. App. A will receive a path indicating where to
   save the its project. Since A is now running under NSM, it remembers
   this path as the 'current project' even when it loads another one,
   or creates a complete new one (under these condition A is allowed
   to have 'Load' and 'New' menu entries).
* Load P. App A knows that it should not save to P, but to the path
   given by NSM. To keep things simple, it could copy P to that path
   immediately and then continue as normal. Again this is essentially
   a 'Save as'.


The only difference between the two is that in (2) the second and
third steps are swapped.

No 'manual' user action is required in either case.


 [*] 'Save as' interpreted as most apps would, not as Ardour does it.
 In Ardour, 'Save as' does not create a new project but a snapshot,
 while setting the current name to that snapshot.


so true, and ain't that something? you actually need the native-open and 
save(as...) commands enabled after all o.O


i rest my case ;)

cheers
--
rncbc aka Rui Nuno Capela
rn...@rncbc.org
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-05 Thread Fons Adriaensen
On Thu, Apr 05, 2012 at 03:19:24PM +0100, Rui Nuno Capela wrote:
 On 04/05/2012 01:16 PM, Fons Adriaensen wrote:
 On Thu, Apr 05, 2012 at 12:14:03PM +0100, Rui Nuno Capela wrote:

 from what I read on the NSM User  API specs. you can only create new,
 open and save NSM-managed sessions as in each participating client
 project's sub-directories. existing individual projects are out of the
 picture. unless you cheat the NSM o.O

 iow. what if, assuming Ardour were about a fully-compliant NSM client
 and you want to open an existing Ardour session, one you've been working
 hard previously but stand-lone ie. outside the NSM umbrella? i read that
 you'll have to copy or move all ardour's session files _manually_ first,
 or symlink at best, into the NSM's central/root directory and guess what
 and where. that's the kind of cheat or juggling i was telling you
 about :)

 You have a project of application A, created without NSM, and the project
 is saved in P (a single file, or a directory).

 You want to use P as part of an NSM session. Note that this scenario means
 that A has some button to select if it runs under NSM or not. Let's assume
 that the default is to run stand-alone.

 There are two ways to do this:

 1. ('Load' and 'New' are disabled when running NSM)

 * Start A.
 * Load  P.
 * Connect A to NSM. Application A will receive a path indicating
where to save its current project. The actual message is 'open',
but since there is nothing to open at the given path the only
sensible thing to do is to put the current project there.
App. A can do so immediately, and then continue as normal.
The whole thing amounts to a 'Save as' [*] with the name given
by NSM instead of the user. So it's really nothing new.


 2. ('Load' and 'New' are not disabled but the application knows
  how to handle then when running under NSM)

 * Start A.
 * Connect A to NSM. App. A will receive a path indicating where to
save the its project. Since A is now running under NSM, it remembers
this path as the 'current project' even when it loads another one,
or creates a complete new one (under these condition A is allowed
to have 'Load' and 'New' menu entries).
 * Load P. App A knows that it should not save to P, but to the path
given by NSM. To keep things simple, it could copy P to that path
immediately and then continue as normal. Again this is essentially
a 'Save as'.


 The only difference between the two is that in (2) the second and
 third steps are swapped.

 No 'manual' user action is required in either case.
 
  [*] 'Save as' interpreted as most apps would, not as Ardour does it.
  In Ardour, 'Save as' does not create a new project but a snapshot,
  while setting the current name to that snapshot.
 

 so true, and ain't that something? you actually need the native-open and  
 save(as...) commands enabled after all o.O

No, where do you get that ? Did you actually read what you comment on
and think about it for a second or two ? In case (1) both are disabled
while in managed mode. In case (2) 'Load' (or 'Open') is enabled (but
behaves slightly differently) and 'Save as' is disabled (in the menu,
the function is still used, to save to the path given by NSM).


Ciao,

-- 
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-05 Thread Rui Nuno Capela

On 04/05/2012 03:48 PM, Fons Adriaensen wrote:

On Thu, Apr 05, 2012 at 03:19:24PM +0100, Rui Nuno Capela wrote:

On 04/05/2012 01:16 PM, Fons Adriaensen wrote:

On Thu, Apr 05, 2012 at 12:14:03PM +0100, Rui Nuno Capela wrote:


from what I read on the NSM User   API specs. you can only create new,
open and save NSM-managed sessions as in each participating client
project's sub-directories. existing individual projects are out of the
picture. unless you cheat the NSM o.O

iow. what if, assuming Ardour were about a fully-compliant NSM client
and you want to open an existing Ardour session, one you've been working
hard previously but stand-lone ie. outside the NSM umbrella? i read that
you'll have to copy or move all ardour's session files _manually_ first,
or symlink at best, into the NSM's central/root directory and guess what
and where. that's the kind of cheat or juggling i was telling you
about :)


You have a project of application A, created without NSM, and the project
is saved in P (a single file, or a directory).

You want to use P as part of an NSM session. Note that this scenario means
that A has some button to select if it runs under NSM or not. Let's assume
that the default is to run stand-alone.

There are two ways to do this:

1. ('Load' and 'New' are disabled when running NSM)

* Start A.
* Load  P.
* Connect A to NSM. Application A will receive a path indicating
where to save its current project. The actual message is 'open',
but since there is nothing to open at the given path the only
sensible thing to do is to put the current project there.
App. A can do so immediately, and then continue as normal.
The whole thing amounts to a 'Save as' [*] with the name given
by NSM instead of the user. So it's really nothing new.


2. ('Load' and 'New' are not disabled but the application knows
  how to handle then when running under NSM)

* Start A.
* Connect A to NSM. App. A will receive a path indicating where to
save the its project. Since A is now running under NSM, it remembers
this path as the 'current project' even when it loads another one,
or creates a complete new one (under these condition A is allowed
to have 'Load' and 'New' menu entries).
* Load P. App A knows that it should not save to P, but to the path
given by NSM. To keep things simple, it could copy P to that path
immediately and then continue as normal. Again this is essentially
a 'Save as'.


The only difference between the two is that in (2) the second and
third steps are swapped.

No 'manual' user action is required in either case.

[*] 'Save as' interpreted as most apps would, not as Ardour does it.
In Ardour, 'Save as' does not create a new project but a snapshot,
while setting the current name to that snapshot.



so true, and ain't that something? you actually need the native-open and
save(as...) commands enabled after all o.O


No, where do you get that ? Did you actually read what you comment on
and think about it for a second or two ? In case (1) both are disabled
while in managed mode. In case (2) 'Load' (or 'Open') is enabled (but
behaves slightly differently) and 'Save as' is disabled (in the menu,
the function is still used, to save to the path given by NSM).



ah ok, sorry. scrap (1) then

re. (2) then i concur with you when Open and Save(As...) shall be 
enabled *but* having different code-paths, behavior or internal 
semantics if you prefer, when in managed than in native/original aka. 
non-managed modes. chalked!


we might disagree however on that slightly part, though. i understand 
that's behavior as seen from user pov. but under the hood things might 
just not be that slight... the usual ymmv applies ;)


ps. i know you're not found of jack-session Fons, but ntl. fwiw. 
qtractor has been making that distinction when serving jack-session 
requests, for almost 2 years now :P


cheers
--
rncbc aka Rui Nuno Capela
rn...@rncbc.org
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-05 Thread David Robillard
On Thu, 2012-04-05 at 17:20 +0100, Rui Nuno Capela wrote:
[...]
 re. (2) then i concur with you when Open and Save(As...) shall be 
 enabled *but* having different code-paths, behavior or internal 
 semantics if you prefer, when in managed than in native/original aka. 
 non-managed modes. chalked!

?

The app performing an action similar or identical to what Save As
might do is a completely different thing to the Save As menu item
being available to the user...

-dr


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-05 Thread David Robillard
On Thu, 2012-04-05 at 12:14 +0100, Rui Nuno Capela wrote:
 On 04/05/2012 12:25 AM, David Robillard wrote:
  On Tue, 2012-04-03 at 18:04 +0100, Rui Nuno Capela wrote:
  [...]
  ardour gets all its stuff under one own session directory, on a per
  session/project basis, iirc just like NSM mandates,
 
  bbbuut...:) making that one and the same directory as from an
  outsider/independent session manager like NSM is asking for a lot of
  file and symlink juggling, if you ask me
[...]
  A directory of files is a directory of files.  The format Ardour would
  save to inside of a session is precisely the same format it already
  saves in, perhaps with some things being links.
[...]
 ok then.
 
 but again, i was implying about the NSM session directory location 
 restriction, not ardour's session/project directory/file format.

... You specifically asked for input about Ardour's directories.

You keep calling the *goal* here a restriction.  Look, if you want to
just save an XML file with references to files who knows where, feel
free.  Nobody is going to break in to your house and hold a gun to your
head and make you do otherwise.

However, then any session containing qtractor will be fragile and
unarchivable.  Why?  Because the way you saved INHERENTLY makes that so.

This isn't some arbitrary NSM restriction to make Rui Nuno Capela's
life miserable, it's simply a necessary condition to make the desired
behaviour possible.

 iow. what if, assuming Ardour were about a fully-compliant NSM client 
 and you want to open an existing Ardour session, one you've been working 
 hard previously but stand-lone ie. outside the NSM umbrella? i read that 
 you'll have to copy or move all ardour's session files _manually_ first, 
 or symlink at best, into the NSM's central/root directory and guess what 
 and where. that's the kind of cheat or juggling i was telling you 
 about :)

I agree that open should clearly work.  The same amount of juggling
would have to happen regardless.

 otoh, if its native(gui file menu)-open is available, it would be dead 
 simple to get an existing qtractor project into a NSM session and 
 behold: later, the NSM would just save (a new stanza) of the qtractor 
 session/state file under the SM's designated central directory location 
 and that's perfect for qtractor, see? because all qtractor media content 
 files are external and independent of the state file. and if you (the 
 user) selects the archive/zip bundle format (.qtz suffix) as default, 
 then we'll get *all* qtractor project stuff under the nominated NSM 
 session directory tree (already compressed into one single archive/zip 
 file, though)

Assuming, conveniently, that all existing sessions are not archived
(.qtz) and all SM ones are.  Otherwise, it's the exact same situation as
any other program.  Notably, in this scheme, it's exactly the same for
any qtractor session saved within the SM.  Same as Ardour but you tarred
it.

 perhaps, automatic symlinking of all the external files could be also 
 doable at the NSM-Save instant, 'coz qtractor state is, among other 
 important things, an inventory map of all those files anyway--some 
 invasive coding required, though ;)
 
 looks like, after all, that qtractor could stand compliant to both NSM 
 levels 0 and 1+, in one fine blow, only if those file menu restrictions 
 get subverted or just plainly ignored:o) and all the code to comply with 
 the basic NSM API announce, open, save, close... gets eventually coded 
 in, of course

One fine blow that just so happens to be qtractor *not* saving in the
way you are so vehemently defending ;)

 aha. this seems the case for edgy applications like qtractor, when 
 their own file new, open, save, and save as... menu operations are made 
 completely orthogonal and independent of any general SM open/save ones.
 
 try that with the not-so-edgy (mainstream?) applications ;)

It's not any different for any applications, loading existing stuff is
loading existing stuff.  Things will indeed need to be copied or moved.
Unfortunate, perhaps, but necessary.

Your knee-jerk desire to defend qtractor's saving scheme at all costs
with a death-by-emoticon blitzkrieg is obscuring the fact that all of
this is inherent to session management.  Qtractor has problems with it
because qtractor has problems with it.  There is no working scheme
qtractor would have less problems with, because they are inherent
problems with qtractor + SM, not the SM itself.

Back in the realm of solving problems rather than inflating egos,
there are two approaches you can use:

1) Completely save everything within the SM directory
2) Make your XML file point to links in the SM directory which point to
the configured store location

Sound familiar?  It should, because it's precisely what every other app
has to do to refer to external files.  Qtractor just uses every file
as external files.

Of course, number 2 is completely pointless and silly unless sessions
share these files, but that 

Re: [LAD] NSM - handling large files

2012-04-05 Thread Dennis Schulmeister
On Thu, 05 Apr 2012 12:14:03 +0100
Rui Nuno Capela rn...@rncbc.org wrote:

 iow. what if, assuming Ardour were about a fully-compliant NSM client 
 and you want to open an existing Ardour session, one you've been working 
 hard previously but stand-lone ie. outside the NSM umbrella? i read that 
 you'll have to copy or move all ardour's session files _manually_ first, 
 or symlink at best, into the NSM's central/root directory and guess what 
 and where. that's the kind of cheat or juggling i was telling you 
 about :)

Good point. As far as I remember this is covered the NSM API, though.
It says that New, Open, and Save/Save As commands have to by
disabled while it is perfectly fine to offer a command to import the
state of an existing project. So you get a new managed project but
with all state imported from an already existing possibly unmanaged
project.


Yours sincerely,
Dennis Schulmeister

-- 
Dennis Schulmeister - Schifferstr. 1 - 76189 Karlsruhe - Germany
Tel: +49 721/5978883 - Fax: +49 721/5978882 -  Mob: +49 152/01994400
eMail: den...@windows3.de - web: there-is.no-ip.org
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-05 Thread J. Liles
On Thu, Apr 5, 2012 at 10:48 AM, David Robillard d...@drobilla.net wrote:

 On Thu, 2012-04-05 at 12:14 +0100, Rui Nuno Capela wrote:
  On 04/05/2012 12:25 AM, David Robillard wrote:
   On Tue, 2012-04-03 at 18:04 +0100, Rui Nuno Capela wrote:
   [...]
   ardour gets all its stuff under one own session directory, on a per
   session/project basis, iirc just like NSM mandates,
  
   bbbuut...:) making that one and the same directory as from an
   outsider/independent session manager like NSM is asking for a lot of
   file and symlink juggling, if you ask me
 [...]
   A directory of files is a directory of files.  The format Ardour would
   save to inside of a session is precisely the same format it already
   saves in, perhaps with some things being links.
 [...]
  ok then.
 
  but again, i was implying about the NSM session directory location
  restriction, not ardour's session/project directory/file format.

 ... You specifically asked for input about Ardour's directories.

 You keep calling the *goal* here a restriction.  Look, if you want to
 just save an XML file with references to files who knows where, feel
 free.  Nobody is going to break in to your house and hold a gun to your
 head and make you do otherwise.

 However, then any session containing qtractor will be fragile and
 unarchivable.  Why?  Because the way you saved INHERENTLY makes that so.

 This isn't some arbitrary NSM restriction to make Rui Nuno Capela's
 life miserable, it's simply a necessary condition to make the desired
 behaviour possible.

  iow. what if, assuming Ardour were about a fully-compliant NSM client
  and you want to open an existing Ardour session, one you've been working
  hard previously but stand-lone ie. outside the NSM umbrella? i read that
  you'll have to copy or move all ardour's session files _manually_ first,
  or symlink at best, into the NSM's central/root directory and guess what
  and where. that's the kind of cheat or juggling i was telling you
  about :)

 I agree that open should clearly work.  The same amount of juggling
 would have to happen regardless.

  otoh, if its native(gui file menu)-open is available, it would be dead
  simple to get an existing qtractor project into a NSM session and
  behold: later, the NSM would just save (a new stanza) of the qtractor
  session/state file under the SM's designated central directory location
  and that's perfect for qtractor, see? because all qtractor media content
  files are external and independent of the state file. and if you (the
  user) selects the archive/zip bundle format (.qtz suffix) as default,
  then we'll get *all* qtractor project stuff under the nominated NSM
  session directory tree (already compressed into one single archive/zip
  file, though)

 Assuming, conveniently, that all existing sessions are not archived
 (.qtz) and all SM ones are.  Otherwise, it's the exact same situation as
 any other program.  Notably, in this scheme, it's exactly the same for
 any qtractor session saved within the SM.  Same as Ardour but you tarred
 it.

  perhaps, automatic symlinking of all the external files could be also
  doable at the NSM-Save instant, 'coz qtractor state is, among other
  important things, an inventory map of all those files anyway--some
  invasive coding required, though ;)
 
  looks like, after all, that qtractor could stand compliant to both NSM
  levels 0 and 1+, in one fine blow, only if those file menu restrictions
  get subverted or just plainly ignored:o) and all the code to comply with
  the basic NSM API announce, open, save, close... gets eventually coded
  in, of course

 One fine blow that just so happens to be qtractor *not* saving in the
 way you are so vehemently defending ;)

  aha. this seems the case for edgy applications like qtractor, when
  their own file new, open, save, and save as... menu operations are made
  completely orthogonal and independent of any general SM open/save ones.
 
  try that with the not-so-edgy (mainstream?) applications ;)

 It's not any different for any applications, loading existing stuff is
 loading existing stuff.  Things will indeed need to be copied or moved.
 Unfortunate, perhaps, but necessary.

 Your knee-jerk desire to defend qtractor's saving scheme at all costs
 with a death-by-emoticon blitzkrieg is obscuring the fact that all of
 this is inherent to session management.  Qtractor has problems with it
 because qtractor has problems with it.  There is no working scheme
 qtractor would have less problems with, because they are inherent
 problems with qtractor + SM, not the SM itself.

 Back in the realm of solving problems rather than inflating egos,
 there are two approaches you can use:

 1) Completely save everything within the SM directory
 2) Make your XML file point to links in the SM directory which point to
 the configured store location

 Sound familiar?  It should, because it's precisely what every other app
 has to do to refer to external files.  Qtractor just 

Re: [LAD] NSM - handling large files

2012-04-05 Thread David Robillard
On Thu, 2012-04-05 at 11:14 -0700, J. Liles wrote:
[...]
 
 Dealing with existing projects is what the optional Import to
 Session and Export from Session commands are there for. These are
 basically Open and Save As but with *defined* semantics. 

My mistake, I was just going by what Rui wrote and didn't refer back.

 Anyway, FWIW the way I imported all my pre-existing project to NSM was
 very simple:
 
 1) Create a new session and add all the clients you used in your
 non-managed setup.
 2) Close that session and overwrite the the uniquely named project
 files/directories that the NSM clients have created with the ones from
 your non-managed-setup
 3) Open the project and restore JACK connections (either manually or
 with some other patchbay) and save so that JACKPatch will know the
 graph.
 4) Rinse and repeat for other pre-existing projects.
 
 Since the system was designed to work with the Unix files/directories
 model (instead of e.g. a database), I don't consider the user mv'ing,
 symlinking etc to be hacks, but just normal usage.
 
 Depending on how organized your pre-existing projects were, much of
 this can be automated with scripting. If a client implements an Import
 to Session menu option, then basically it would just have to do the cp
 or mv itself (or if it lacks heavy state, then just open the file and
 be prepared to save it under the NSM path when the time comes.) But
 the SM has nothing to do with it.

Makes sense.

From a user friendly POV it would of course be nice if apps implement
that, though, as you say, the SM has nothing to do with it.  That the
actual stuff that needs to happen is something the user *could* easily
do if they wanted to is a good thing.

-dr



___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-05 Thread Rui Nuno Capela

On 04/05/2012 07:14 PM, J. Liles wrote:


On Thu, Apr 5, 2012 at 10:48 AM, David Robillard d...@drobilla.net
mailto:d...@drobilla.net wrote:

On Thu, 2012-04-05 at 12:14 +0100, Rui Nuno Capela wrote:
  On 04/05/2012 12:25 AM, David Robillard wrote:
   On Tue, 2012-04-03 at 18:04 +0100, Rui Nuno Capela wrote:
   [...]
   ardour gets all its stuff under one own session directory, on
a per
   session/project basis, iirc just like NSM mandates,
  
   bbbuut...:) making that one and the same directory as from an
   outsider/independent session manager like NSM is asking for a
lot of
   file and symlink juggling, if you ask me
[...]
   A directory of files is a directory of files.  The format
Ardour would
   save to inside of a session is precisely the same format it already
   saves in, perhaps with some things being links.
[...]
  ok then.
 
  but again, i was implying about the NSM session directory location
  restriction, not ardour's session/project directory/file format.

... You specifically asked for input about Ardour's directories.

You keep calling the *goal* here a restriction.  Look, if you want to
just save an XML file with references to files who knows where, feel
free.  Nobody is going to break in to your house and hold a gun to your
head and make you do otherwise.

However, then any session containing qtractor will be fragile and
unarchivable.  Why?  Because the way you saved INHERENTLY makes that so.

This isn't some arbitrary NSM restriction to make Rui Nuno Capela's
life miserable, it's simply a necessary condition to make the desired
behaviour possible.

  iow. what if, assuming Ardour were about a fully-compliant NSM client
  and you want to open an existing Ardour session, one you've been
working
  hard previously but stand-lone ie. outside the NSM umbrella? i
read that
  you'll have to copy or move all ardour's session files _manually_
first,
  or symlink at best, into the NSM's central/root directory and
guess what
  and where. that's the kind of cheat or juggling i was telling you
  about :)

I agree that open should clearly work.  The same amount of juggling
would have to happen regardless.

  otoh, if its native(gui file menu)-open is available, it would be
dead
  simple to get an existing qtractor project into a NSM session and
  behold: later, the NSM would just save (a new stanza) of the qtractor
  session/state file under the SM's designated central directory
location
  and that's perfect for qtractor, see? because all qtractor media
content
  files are external and independent of the state file. and if you (the
  user) selects the archive/zip bundle format (.qtz suffix) as default,
  then we'll get *all* qtractor project stuff under the nominated NSM
  session directory tree (already compressed into one single
archive/zip
  file, though)

Assuming, conveniently, that all existing sessions are not archived
(.qtz) and all SM ones are.  Otherwise, it's the exact same situation as
any other program.  Notably, in this scheme, it's exactly the same for
any qtractor session saved within the SM.  Same as Ardour but you tarred
it.

  perhaps, automatic symlinking of all the external files could be also
  doable at the NSM-Save instant, 'coz qtractor state is, among other
  important things, an inventory map of all those files anyway--some
  invasive coding required, though ;)
 
  looks like, after all, that qtractor could stand compliant to
both NSM
  levels 0 and 1+, in one fine blow, only if those file menu
restrictions
  get subverted or just plainly ignored:o) and all the code to
comply with
  the basic NSM API announce, open, save, close... gets eventually
coded
  in, of course

One fine blow that just so happens to be qtractor *not* saving in the
way you are so vehemently defending ;)

  aha. this seems the case for edgy applications like qtractor, when
  their own file new, open, save, and save as... menu operations
are made
  completely orthogonal and independent of any general SM open/save
ones.
 
  try that with the not-so-edgy (mainstream?) applications ;)

It's not any different for any applications, loading existing stuff is
loading existing stuff.  Things will indeed need to be copied or moved.
Unfortunate, perhaps, but necessary.

Your knee-jerk desire to defend qtractor's saving scheme at all costs
with a death-by-emoticon blitzkrieg is obscuring the fact that all of
this is inherent to session management.  Qtractor has problems with it
because qtractor has problems with it.  There is no working scheme
qtractor would have less problems with, because they are inherent
problems with qtractor 

Re: [LAD] NSM - handling large files

2012-04-04 Thread Louigi Verona
Guys, I read about JACK Session, tried it out. It does seem very capable.
And if more apps add support (which, as people say in this discussion, is
not that difficult), wouldn't JACK Session be a good, stable way to restore
sessions? After all, JACK is a basic thing for Linux Audio and adding
support for all its features, including Session, would just become part of
the default routine. Am I missing something here?

-- 
Louigi Verona
http://www.louigiverona.ru/
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread Emanuel Rumpf
Am 4. April 2012 08:11 schrieb Louigi Verona louigi.ver...@gmail.com:

 Am I missing something here?

Yes,
search the archives.
or visit
http://wiki.linuxaudio.org/wiki/user/emrum/jack_session_2_draft
to see,
what NSM tries to improve, by imposing some meaningful rules.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread rosea.grammostola

On 04/03/2012 07:04 PM, Rui Nuno Capela wrote:

now, i could suggest NSM API to be split in levels of compliance and
restrictiveness, so to speak:

- level 0 :- clients just store/retrieve their own private state from a
supplied and independent session sub-directory; no GUI File menu
restrictions; no file location restrictions, no symlinks, no juggling,
no dupes, no sh*t.

- level 1+ :- anything that (may progressively?) imposes each one the
mentioned non-restrictions of level 0.


How much more effort will it be in terms of coding, to implement 
'level-1' versus 'level-0'?


\r

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread Rui Nuno Capela

On 04/04/2012 12:18 PM, rosea.grammostola wrote:

On 04/03/2012 07:04 PM, Rui Nuno Capela wrote:

now, i could suggest NSM API to be split in levels of compliance and
restrictiveness, so to speak:

- level 0 :- clients just store/retrieve their own private state from a
supplied and independent session sub-directory; no GUI File menu
restrictions; no file location restrictions, no symlinks, no juggling,
no dupes, no sh*t.

- level 1+ :- anything that (may progressively?) imposes each one the
mentioned non-restrictions of level 0.


How much more effort will it be in terms of coding, to implement
'level-1' versus 'level-0'?



speaking from qtractor pov.:

- level 0: minimal effort as it would be a probable and simple 
rephrasing and/or adaptation of the code already in place for 
jack-session; also, there's this osc branch somewhat lurking in svn to 
get readily merged and apply for the NSM/OSC interface.


- level 1+: pervasive change and effort; almost brand new application 
overhaul (iow. won't happen any time soon:) sorry.


cheers
--
rncbc aka Rui Nuno Capela
rn...@rncbc.org
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread rosea.grammostola

On 04/04/2012 02:22 PM, Rui Nuno Capela wrote:

On 04/04/2012 12:18 PM, rosea.grammostola wrote:

On 04/03/2012 07:04 PM, Rui Nuno Capela wrote:

now, i could suggest NSM API to be split in levels of compliance and
restrictiveness, so to speak:

- level 0 :- clients just store/retrieve their own private state from a
supplied and independent session sub-directory; no GUI File menu
restrictions; no file location restrictions, no symlinks, no juggling,
no dupes, no sh*t.

- level 1+ :- anything that (may progressively?) imposes each one the
mentioned non-restrictions of level 0.


How much more effort will it be in terms of coding, to implement
'level-1' versus 'level-0'?



speaking from qtractor pov.:

- level 0: minimal effort as it would be a probable and simple
rephrasing and/or adaptation of the code already in place for
jack-session; also, there's this osc branch somewhat lurking in svn to
get readily merged and apply for the NSM/OSC interface.

- level 1+: pervasive change and effort; almost brand new application
overhaul (iow. won't happen any time soon:) sorry.


Another question. If you compare NSM level 0 (!) with JackSession. Which 
session manager do you prefer and why?


Regards,
\r
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread Emanuel Rumpf
Am 4. April 2012 11:18 schrieb rosea.grammostola rosea.grammost...@gmail.com:

 How much more effort will it be in terms of coding, to implement 'level-1'
 versus 'level-0'?


For anyone who prefers to work with apps-do-whatever-they-want appraoch
or we-have-zero-to-X-support-levels-so-you-dont-know-what-to-expect ,
there are alternatives: JackSession, Lash, Ladish.

I would prefere at least *one* SM to have a clean and handy solution
and hope that is NSM.

I have to dig deeper into the NSM-API myself,
but currently it's not obvious to me,
why disabling a few menu-items and using
symlinks in the session-dir. is recognized as
impregnable obstacle.

-- 
E.R.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread Fons Adriaensen
On Wed, Apr 04, 2012 at 01:25:02PM +, Emanuel Rumpf wrote:
 
 For anyone who prefers to work with apps-do-whatever-they-want appraoch
 or we-have-zero-to-X-support-levels-so-you-dont-know-what-to-expect ,
 there are alternatives: JackSession, Lash, Ladish.
 
 I would prefere at least *one* SM to have a clean and handy solution

votes++

 and hope that is NSM.
 
 I have to dig deeper into the NSM-API myself,
 but currently it's not obvious to me,
 why disabling a few menu-items and using
 symlinks in the session-dir. is recognized as
 impregnable obstacle.

I fail to see that as well. And I may be an unrecoverable 
individualist, but if ever I add session management to any
app then that app will obey the NSM rules or very similar
ones if the session manager is not NSM - it is the obvious
thing to do if you want something that works. 

Ciao,

-- 
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread rosea.grammostola

On 04/04/2012 03:51 PM, Fons Adriaensen wrote:

if ever I add session management to any
app then that app will obey the NSM rules or very similar
ones if the session manager is not NSM - it is the obvious
thing to do if you want something that works.


Could you elaborate your reasons for this, for those who don't see this 
as obvious?


Regards,
\r
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread Rui Nuno Capela

On 04/04/2012 01:35 PM, rosea.grammostola wrote:

On 04/04/2012 02:22 PM, Rui Nuno Capela wrote:

On 04/04/2012 12:18 PM, rosea.grammostola wrote:

On 04/03/2012 07:04 PM, Rui Nuno Capela wrote:

now, i could suggest NSM API to be split in levels of compliance and
restrictiveness, so to speak:

- level 0 :- clients just store/retrieve their own private state from a
supplied and independent session sub-directory; no GUI File menu
restrictions; no file location restrictions, no symlinks, no juggling,
no dupes, no sh*t.

- level 1+ :- anything that (may progressively?) imposes each one the
mentioned non-restrictions of level 0.


How much more effort will it be in terms of coding, to implement
'level-1' versus 'level-0'?



speaking from qtractor pov.:

- level 0: minimal effort as it would be a probable and simple
rephrasing and/or adaptation of the code already in place for
jack-session; also, there's this osc branch somewhat lurking in svn to
get readily merged and apply for the NSM/OSC interface.

- level 1+: pervasive change and effort; almost brand new application
overhaul (iow. won't happen any time soon:) sorry.


Another question. If you compare NSM level 0 (!) with JackSession. Which
session manager do you prefer and why?



well, NSM level 0 adds nothing to what JSM already delivers. sorry for 
the noise :)


the once self-called uber-procrastinator says: prefer what is already 
there and de-facto working.


of course it's a biased opinion

nuff said :)
--
rncbc aka Rui Nuno Capela
rn...@rncbc.org
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread rosea.grammostola

On 04/04/2012 04:39 PM, Rui Nuno Capela wrote:


Another question. If you compare NSM level 0 (!) with JackSession. Which
session manager do you prefer and why?



well, NSM level 0 adds nothing to what JSM already delivers. sorry for
the noise :)

the once self-called uber-procrastinator says: prefer what is already
there and de-facto working.


Your opinion is clear, but your arguments are not strictly correct I think.
You say that a hypothetical NSM level 0, adds nothing to what JS 
delivers, but that's not true.


When I want to save a session in JS, I have to make a new folder. If I 
want to save a slightly changed session, I have to make a new folder or 
choose a existent folder. If I do the latter, the gui ask me if I really 
want to overwrite it. I choose 'yes'. (This is what you could call 
pretty cumbersome). In one case, someone did choose the /home/user 
folder... and lost all his data. Ok, you've versioning now in 
qjackctl... There is no way in Qjackctl to add apps without JS support 
to the session. It is not possible to quit a session without saving it, 
so I have to close every application manually.


In NSM on the other hand. I make a new session, add and remove apps on 
the fly from a nice centralized and quick GUI interface. It's even easy 
to add apps without NSM support (or scripts) via the GUI. If I change a 
session, I'm just able to save it without making a new folder or 
overwrite it. I am able to close a whole session and to abort a whole 
session (without saving). As a user can expect, all apps in the session 
close. Moreover it's possible to duplicate a session as a manner of 
using templates. It's very easy and fast to change between sessions. I 
am able to use session over the network very easily. I have never the 
risk of overwriting my precious data. I' m able to add applications 
without JACK support to NSM (Frescobaldi notation-editor, Emacs with 
SuperCollder etc.).


If you say that NSM adds nothing then a) you didn't try it and don't 
really know where you're talking about or b) don't think that the NSM 
stuff mentioned above are valuable of any kind for a user.


Regards,
\r

If
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread rosea.grammostola

On 04/04/2012 04:55 PM, rosea.grammostola wrote:

On 04/04/2012 04:39 PM, Rui Nuno Capela wrote:


Another question. If you compare NSM level 0 (!) with JackSession. Which
session manager do you prefer and why?



well, NSM level 0 adds nothing to what JSM already delivers. sorry for
the noise :)

the once self-called uber-procrastinator says: prefer what is already
there and de-facto working.


Your opinion is clear, but your arguments are not strictly correct I think.
You say that a hypothetical NSM level 0, adds nothing to what JS
delivers, but that's not true.

When I want to save a session in JS, I have to make a new folder. If I
want to save a slightly changed session, I have to make a new folder or
choose a existent folder. If I do the latter, the gui ask me if I really
want to overwrite it. I choose 'yes'. (This is what you could call
pretty cumbersome).


I'm not sure if this is cumbersomeness of Qjackctl as a GUI for 
JackSession or JackSession itself. I'm not sure how this works in 
Pyjacksm (which is a pretty limited GUI and not in active development).



 In one case, someone did choose the /home/user

folder... and lost all his data. Ok, you've versioning now in
qjackctl... There is no way in Qjackctl to add apps without JS support
to the session. It is not possible to quit a session without saving it,
so I have to close every application manually.

In NSM on the other hand. I make a new session, add and remove apps on
the fly from a nice centralized and quick GUI interface. It's even easy
to add apps without NSM support (or scripts) via the GUI.


Btw this should in theory also be possible with JS I think. Someone 
could write a GUI possibly that is also capable of starting applications 
from it. Moreover JS can make use of infra clients, (an alpha version 
of) pyjacksm supports this via a configuration file, .pyjacksmrc

Which looks like this, for example:

[DEFAULT]
sessiondir = ~/linuxaudio/JacksmpySession
[infra]
a2j = a2jmidid -e
jkmeter = jkmeter

Then it should be possible to add applications without JS support or 
without a 'state to save' to the JackSession.


BUT, this is *not* implemented in Qjackctl.
Pyjacksm sessions are *not* exchangeable with qjackctl
http://tangostudio.tuxfamily.org/en/documentations/jacksession


If I change a

session, I'm just able to save it without making a new folder or
overwrite it. I am able to close a whole session and to abort a whole
session (without saving). As a user can expect, all apps in the session
close. Moreover it's possible to duplicate a session as a manner of
using templates. It's very easy and fast to change between sessions. I
am able to use session over the network very easily. I have never the
risk of overwriting my precious data. I' m able to add applications
without JACK support to NSM (Frescobaldi notation-editor, Emacs with
SuperCollder etc.).

If you say that NSM adds nothing then a) you didn't try it and don't
really know where you're talking about or b) don't think that the NSM
stuff mentioned above are valuable of any kind for a user.

Regards,
\r

If


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread Rui Nuno Capela

On 04/04/2012 03:55 PM, rosea.grammostola wrote:

On 04/04/2012 04:39 PM, Rui Nuno Capela wrote:


Another question. If you compare NSM level 0 (!) with JackSession. Which
session manager do you prefer and why?



well, NSM level 0 adds nothing to what JSM already delivers. sorry for
the noise :)

the once self-called uber-procrastinator says: prefer what is already
there and de-facto working.


Your opinion is clear, but your arguments are not strictly correct I think.
You say that a hypothetical NSM level 0, adds nothing to what JS
delivers, but that's not true.

When I want to save a session in JS, I have to make a new folder. If I
want to save a slightly changed session, I have to make a new folder or
choose a existent folder. If I do the latter, the gui ask me if I really
want to overwrite it. I choose 'yes'. (This is what you could call
pretty cumbersome). In one case, someone did choose the /home/user
folder... and lost all his data. Ok, you've versioning now in
qjackctl... There is no way in Qjackctl to add apps without JS support
to the session. It is not possible to quit a session without saving it,
so I have to close every application manually.

In NSM on the other hand. I make a new session, add and remove apps on
the fly from a nice centralized and quick GUI interface. It's even easy
to add apps without NSM support (or scripts) via the GUI. If I change a
session, I'm just able to save it without making a new folder or
overwrite it. I am able to close a whole session and to abort a whole
session (without saving). As a user can expect, all apps in the session
close. Moreover it's possible to duplicate a session as a manner of
using templates. It's very easy and fast to change between sessions. I
am able to use session over the network very easily. I have never the
risk of overwriting my precious data. I' m able to add applications
without JACK support to NSM (Frescobaldi notation-editor, Emacs with
SuperCollder etc.).

If you say that NSM adds nothing then a) you didn't try it and don't
really know where you're talking about or b) don't think that the NSM
stuff mentioned above are valuable of any kind for a user.



i may have missed it, but those application clients which are NOT coded 
as compliant to a session protocol are not the point--that's just a SM 
implementation convenience outside of the bounds of the ideal-SM 
discussion


i'll refresh your memory that pyjacksm (a JSM reference implementation) 
does that too (something called exo-clients or wtf:). ladish have been 
doing that also and way, way before, for ages now o.O


unfortunately, i reckon, qjackctl doesn't. on my own call it has been 
purestrict to the JS business (aka. protocol) and nothing more.


however, re. exo-/infra-clients (or w/e they've been called, i don't 
quite remember exactly but those are about clients which are 
non-jack-session-aware) are in the drawer ntl.


actually, i was minding about the *intrinsic* cost/benefits of the 
session protocol and *not* about *any* particular *session management* 
(SM) implementation


got that?
--
rncbc aka Rui Nuno Capela
rn...@rncbc.org
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread J. Liles
On Wed, Apr 4, 2012 at 5:22 AM, Rui Nuno Capela rn...@rncbc.org wrote:

 On 04/04/2012 12:18 PM, rosea.grammostola wrote:

 On 04/03/2012 07:04 PM, Rui Nuno Capela wrote:

 now, i could suggest NSM API to be split in levels of compliance and
 restrictiveness, so to speak:

 - level 0 :- clients just store/retrieve their own private state from a
 supplied and independent session sub-directory; no GUI File menu
 restrictions; no file location restrictions, no symlinks, no juggling,
 no dupes, no sh*t.

 - level 1+ :- anything that (may progressively?) imposes each one the
 mentioned non-restrictions of level 0.


 How much more effort will it be in terms of coding, to implement
 'level-1' versus 'level-0'?


 speaking from qtractor pov.:

 - level 0: minimal effort as it would be a probable and simple rephrasing
 and/or adaptation of the code already in place for jack-session; also,
 there's this osc branch somewhat lurking in svn to get readily merged and
 apply for the NSM/OSC interface.

 - level 1+: pervasive change and effort; almost brand new application
 overhaul (iow. won't happen any time soon:) sorry.


Are you seriously saying that the equivalent of doing:

if ( nsm_is_active )
  save_here( file );
else
  save_there( file );

Would require a complete rewrite and overhaul of your application? Say you
don't want to do it... That's fine. Say you don't like the NSM
design--that's fine too. But don't just make up wild hyperbole out of
laziness...
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread rosea.grammostola

On 04/04/2012 05:46 PM, Rui Nuno Capela wrote:

On 04/04/2012 03:55 PM, rosea.grammostola wrote:

On 04/04/2012 04:39 PM, Rui Nuno Capela wrote:


Another question. If you compare NSM level 0 (!) with JackSession.
Which
session manager do you prefer and why?



well, NSM level 0 adds nothing to what JSM already delivers. sorry for
the noise :)

the once self-called uber-procrastinator says: prefer what is already
there and de-facto working.


Your opinion is clear, but your arguments are not strictly correct I
think.
You say that a hypothetical NSM level 0, adds nothing to what JS
delivers, but that's not true.

When I want to save a session in JS, I have to make a new folder. If I
want to save a slightly changed session, I have to make a new folder or
choose a existent folder. If I do the latter, the gui ask me if I really
want to overwrite it. I choose 'yes'. (This is what you could call
pretty cumbersome). In one case, someone did choose the /home/user
folder... and lost all his data. Ok, you've versioning now in
qjackctl... There is no way in Qjackctl to add apps without JS support
to the session. It is not possible to quit a session without saving it,
so I have to close every application manually.

In NSM on the other hand. I make a new session, add and remove apps on
the fly from a nice centralized and quick GUI interface. It's even easy
to add apps without NSM support (or scripts) via the GUI. If I change a
session, I'm just able to save it without making a new folder or
overwrite it. I am able to close a whole session and to abort a whole
session (without saving). As a user can expect, all apps in the session
close. Moreover it's possible to duplicate a session as a manner of
using templates. It's very easy and fast to change between sessions. I
am able to use session over the network very easily. I have never the
risk of overwriting my precious data. I' m able to add applications
without JACK support to NSM (Frescobaldi notation-editor, Emacs with
SuperCollder etc.).

If you say that NSM adds nothing then a) you didn't try it and don't
really know where you're talking about or b) don't think that the NSM
stuff mentioned above are valuable of any kind for a user.



i may have missed it, but those application clients which are NOT coded
as compliant to a session protocol are not the point--that's just a SM
implementation convenience outside of the bounds of the ideal-SM
discussion

i'll refresh your memory that pyjacksm (a JSM reference implementation)
does that too (something called exo-clients or wtf:). ladish have been
doing that also and way, way before, for ages now o.O

unfortunately, i reckon, qjackctl doesn't. on my own call it has been
purestrict to the JS business (aka. protocol) and nothing more.
That's probably the most essential part on LAD to discuss indeed, the 
session protocol. But that doesn't take away that for a user these are 
essential components. The user is looking at how an (SM) application is 
presented on his Desktop, the *end-product*. And because of the fact 
that also the LAU'er knows that it is 'utopian' to think that all the 
apps on apps.linuxaudio.org will get session support, it *is* a 
important matter a SM has to deal with. If Qjackctl doesn't offer this 
functionality by purpose, it is a obvious disadvantage for the user at 
the end.




however, re. exo-/infra-clients (or w/e they've been called, i don't
quite remember exactly but those are about clients which are
non-jack-session-aware) are in the drawer ntl.

actually, i was minding about the *intrinsic* cost/benefits of the
session protocol and *not* about *any* particular *session management*
(SM) implementation


True, we've to make clear what the technical possibilities of a SM are. 
You're saying that a hypothetical NSM level-0 offers nothing more 
compared to JackSession in this scope. I do also doubt this, you might 
be able to tell me what JackSession can do from the things I described 
as advantages of NSM. I can think of these at least, which still stand:


- JackSession is not able to quit the applications in the session 
without saving.
- It is not possible to add applications without JACK support to a 
JackSession (Frescobalid, Emacs with SuperCollider)

- Changing between NSM sessions is more easy and faster
- with NSM you can use the duplicate function and so use templates
- with NSM you can open multiple session on one host
- NSM has a clear way how to use a session on multiple computers via the 
network

- NSM sessions are not machine dependent (level 1)


This is just a quick brainstorm. As mentioned, this doesn't talk about 
the end implementation benefits of NSM for the user, which are of equal 
importance for the end-user. On that topic I conclude that Qjackctl 
doesn't support infra clients by purpose and that I don't see it happen 
that there will be another GUI who does support in the near future.


Regards,
\r


___
Linux-audio-dev 

Re: [LAD] NSM - handling large files

2012-04-04 Thread Fons Adriaensen
On Wed, Apr 04, 2012 at 04:37:59PM +0200, rosea.grammostola wrote:

 Could you elaborate your reasons for this, for those who don't see this  
 as obvious?

I could. But it wouldn't help anyone.

Ciao,

-- 
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread Rui Nuno Capela

On 04/04/2012 05:19 PM, J. Liles wrote:



On Wed, Apr 4, 2012 at 5:22 AM, Rui Nuno Capela rn...@rncbc.org
mailto:rn...@rncbc.org wrote:

On 04/04/2012 12:18 PM, rosea.grammostola wrote:

On 04/03/2012 07:04 PM, Rui Nuno Capela wrote:

now, i could suggest NSM API to be split in levels of
compliance and
restrictiveness, so to speak:

- level 0 :- clients just store/retrieve their own private
state from a
supplied and independent session sub-directory; no GUI File menu
restrictions; no file location restrictions, no symlinks, no
juggling,
no dupes, no sh*t.

- level 1+ :- anything that (may progressively?) imposes
each one the
mentioned non-restrictions of level 0.


How much more effort will it be in terms of coding, to implement
'level-1' versus 'level-0'?


speaking from qtractor pov.:

- level 0: minimal effort as it would be a probable and simple
rephrasing and/or adaptation of the code already in place for
jack-session; also, there's this osc branch somewhat lurking in svn
to get readily merged and apply for the NSM/OSC interface.

- level 1+: pervasive change and effort; almost brand new
application overhaul (iow. won't happen any time soon:) sorry.


Are you seriously saying that the equivalent of doing:

if ( nsm_is_active )
   save_here( file );
else
   save_there( file );



this is level 0, assuming file is the application private state file



Would require a complete rewrite and overhaul of your application? Say
you don't want to do it... That's fine. Say you don't like the NSM
design--that's fine too. But don't just make up wild hyperbole out of
laziness...



the rewrite is about level 1+ (my nomenclature, i know:)

cheers
--
rncbc aka Rui Nuno Capela
rn...@rncbc.org
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread Rui Nuno Capela

On 04/04/2012 05:19 PM, rosea.grammostola wrote:


... On that topic I conclude that Qjackctl doesn't support infra
clients by purpose and that I don't see it happen that there will be
another GUI who does support in the near future.



wait, it's not by purpose but just overlooked ok?

infra-clients (ie. jack clients unaware of jack-session) and exo-clients 
(non-jack applications) are here subjects of a covenant: the SM in 
charge, by its particular implementation, follows some god-knows-what 
convention which is NOT bounded by the session protocol (or API) at 
all--of course, the suspects are not session-aware to begin with, so any 
SM can raise its own convention and make up its own party--it's a free 
world isn't it? :)


as said, infra/exo-clients support on qjackctl (as a JSM) is in the 
drawer, meaning it's coming out any day soon. so, is there yet another 
convention party in the making, you ask?


yep:)

cheers
--
rncbc aka Rui Nuno Capela
rn...@rncbc.org
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread rosea.grammostola

On 04/04/2012 08:51 PM, Rui Nuno Capela wrote:

On 04/04/2012 05:19 PM, rosea.grammostola wrote:


... On that topic I conclude that Qjackctl doesn't support infra
clients by purpose and that I don't see it happen that there will be
another GUI who does support in the near future.



wait, it's not by purpose but just overlooked ok?

infra-clients (ie. jack clients unaware of jack-session) and exo-clients
(non-jack applications) are here subjects of a covenant: the SM in
charge, by its particular implementation, follows some god-knows-what
convention which is NOT bounded by the session protocol (or API) at
all--of course, the suspects are not session-aware to begin with, so any
SM can raise its own convention and make up its own party--it's a free
world isn't it? :)

as said, infra/exo-clients support on qjackctl (as a JSM) is in the
drawer, meaning it's coming out any day soon. so, is there yet another
convention party in the making, you ask?


That would take away one, for me important, advantage of NSM compared to 
JackSession atm (for the user). All though the implementation in 
Pyjacksm, is more cumbersome (using configuration file where you have to 
set each application you use) compared to NSM (no thinking, just adding 
clients).


One might ask why this isn't already in Qjackctl and how long it will 
take though. Which brings me to another possible advantage of NSM. The 
fact that the developer is clearly dedicated to the ask in time and 
motivation. And also important, he uses NSM himself and believes in 
session management. (I little reasons to believe that JS devs use 
JackSession themselves. Also if I read your words well Rui, I don't 
think you use Qjackctls session option yourself). With JackSession you 
lack those things atm (no blaming here). It's probably no accident that 
in NSM it's all there, whereas for JackSession some features still have 
to be implemented (in the GUI). Personally I asked for the infra client 
feature way back, but it's still not there. A new project like NSM seems 
to be needed to get some new progress, this is not the kind of 
dedication such a project needs (no blaming).


But of course, this are not the only reason to prefer one SM above the 
other. As mentioned in my previous mails, there are arguments for me atm 
to say that NSM gives a user more then JackSession (even with the 
hypothetical level-0). NSM seems to be a SM which has a very good and 
simple solution, more functionality then JackSession, without the need 
of things like Jackdbus (ladish).
Also I've the opinion that the community should go with the best 
implementation. Why go for an implementation which lacks useful 
functionality when implementation into the apps are more or less the 
same effort?
 I think it's essential to the discussion to get the cards on the 
table, so everybody can make up his own mind and decides which SM is the 
best solution for the Linuxaudio session puzzle. It would be nice if we 
could reach agreement on this, but it's a free world indeed. :)


Regards,
\r


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread rosea.grammostola

On 04/04/2012 09:59 PM, rosea.grammostola wrote:

But of course, this are not the only reason to prefer one SM above the
other. As mentioned in my previous mails, there are arguments for me atm
to say that NSM gives a user more then JackSession (even with the
hypothetical level-0). NSM seems to be a SM which has a very good and
simple solution, more functionality then JackSession, without the need
of things like Jackdbus (ladish).
Also I've the opinion that the community should go with the best
implementation. Why go for an implementation which lacks useful
functionality when implementation into the apps are more or less the
same effort?


Afaik, NSM gives us all we users need when it comes to LAU session 
management. You've to help me to give something it doesn't do in this 
scope. If you can't help me with this, you can more or less take the 
conclusion that NSM is a final solution to the Linuxaudio session 
puzzle. Final as in, does all what it should do, has intrinsic all the 
stuff it should be able to do in the coming 10 yrs, it doesn't lack 
essential features in terms of functionality and workflow, if a better 
SM bumps up in the coming yrs there will likely be no essential reasons 
to switch to that one (which makes the effort for adding NSM support to 
an app, a valuable and longstanding contribution).


Correct me if I'm wrong.

Regards,
\r


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread Fons Adriaensen
On Wed, Apr 04, 2012 at 09:19:57AM -0700, J. Liles wrote:
 
 Are you seriously saying that the equivalent of doing:
 
 if ( nsm_is_active )
   save_here( file );
 else
   save_there( file );
 
 Would require a complete rewrite and overhaul of your application? Say you
 don't want to do it... That's fine. Say you don't like the NSM
 design--that's fine too. But don't just make up wild hyperbole out of
 laziness...

:-)

A question: according to the docs, a client should consider itself
'managed' after receiving the reply to the 'announce' message. But
at that time it has no path to save anything 'New' or 'Load'ed.
If I understand the docs correctly, the 'open' message specifying
this path will follow immediately. But still this is a possible race
condition. So shouldn't a client consider itself managed only after
having received the first 'open' message ?

Ciao,

-- 
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread David Robillard
On Wed, 2012-04-04 at 21:59 +0200, rosea.grammostola wrote:
[...]
   I think it's essential to the discussion to get the cards on the 
 table, so everybody can make up his own mind and decides which SM is the 
 best solution for the Linuxaudio session puzzle. It would be nice if we 
 could reach agreement on this, but it's a free world indeed. :)

With apologies in advance, here are my cards:

It would be nice if this list could stick to actual
developer/development problems.  I just spent quite some time catching
up on this thread, and almost nothing at all of value (i.e. something
towards solving the/a problem) has been contributed since last I
checked.  Mostly just a bunch of wannabe bureaucracy political noise,
which only obscures any actual technical points that might need fleshing
out (i.e. it's actively hurting, not helping).  I doubt I'm the only one
interested in the problem who's just given up on this thread because the
signal:noise ratio is ridiculous.

Take the politics to LAU or something.  The official resolution of the
User Committee on The Agreed-Upon Solution for LAD Session Management
will have zero impact on what developers actually implement, but
dragging the signal:noise ratio into the gutter might - though probably
not the impact you were hoping for.

-dr

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread J. Liles
On Wed, Apr 4, 2012 at 1:48 PM, Fons Adriaensen f...@linuxaudio.org wrote:

 On Wed, Apr 04, 2012 at 09:19:57AM -0700, J. Liles wrote:

  Are you seriously saying that the equivalent of doing:
 
  if ( nsm_is_active )
save_here( file );
  else
save_there( file );
 
  Would require a complete rewrite and overhaul of your application? Say
 you
  don't want to do it... That's fine. Say you don't like the NSM
  design--that's fine too. But don't just make up wild hyperbole out of
  laziness...

 :-)

 A question: according to the docs, a client should consider itself
 'managed' after receiving the reply to the 'announce' message. But
 at that time it has no path to save anything 'New' or 'Load'ed.
 If I understand the docs correctly, the 'open' message specifying
 this path will follow immediately. But still this is a possible race
 condition. So shouldn't a client consider itself managed only after
 having received the first 'open' message ?


Yes. Well, there's a bit of a fine distinction between being managed and
being part of the session. The application could conceivably receive a
'quit' message before the 'open' message, but that would never actually
happen in the current implementation and doesn't make a lot of sense
anyway. I think you're probably right in that for all practical purposes
'open' is the time to consider the application managed.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread J. Liles
On Wed, Apr 4, 2012 at 3:22 PM, J. Liles malnour...@gmail.com wrote:



 On Wed, Apr 4, 2012 at 1:48 PM, Fons Adriaensen f...@linuxaudio.orgwrote:

 On Wed, Apr 04, 2012 at 09:19:57AM -0700, J. Liles wrote:

  Are you seriously saying that the equivalent of doing:
 
  if ( nsm_is_active )
save_here( file );
  else
save_there( file );
 
  Would require a complete rewrite and overhaul of your application? Say
 you
  don't want to do it... That's fine. Say you don't like the NSM
  design--that's fine too. But don't just make up wild hyperbole out of
  laziness...

 :-)

 A question: according to the docs, a client should consider itself
 'managed' after receiving the reply to the 'announce' message. But
 at that time it has no path to save anything 'New' or 'Load'ed.
 If I understand the docs correctly, the 'open' message specifying
 this path will follow immediately. But still this is a possible race
 condition. So shouldn't a client consider itself managed only after
 having received the first 'open' message ?


 Yes. Well, there's a bit of a fine distinction between being managed and
 being part of the session. The application could conceivably receive a
 'quit' message before the 'open' message, but that would never actually
 happen in the current implementation and doesn't make a lot of sense
 anyway. I think you're probably right in that for all practical purposes
 'open' is the time to consider the application managed.


Also, to clairify, by 'quit' I mean SIGTERM and furthermore, there's no
reason that the announce reply and the first open message can't be in an
OSC 'bundle' to guarantee they are processed at the same time (although the
current implementation doesn't use bundles).



___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread rosea.grammostola

On 04/04/2012 11:22 PM, David Robillard wrote:

On Wed, 2012-04-04 at 21:59 +0200, rosea.grammostola wrote: [...]

I think it's essential to the discussion to get the cards on the
table, so everybody can make up his own mind and decides which SM
is the best solution for the Linuxaudio session puzzle. It would be
nice if we could reach agreement on this, but it's a free world
indeed. :)


With apologies in advance, here are my cards:


Thanks, with my apologies in advance for my reply. :)


It would be nice if this list could stick to actual
developer/development problems.


Of course this is the LAD list, so I don't post often on this list, 
except for this topic, started by me and of importance for me.


I think this topic is a special case on LAD, because it's by far more 
interesting for users to have a good SM implementation then for 
developers. For musicians/ user it is a real problem when something 
doesn't work or when a session API is implemented badly (technically 
and/ or socially). Developers care much less.


But if you make such a strict border between devs and users, also in 
such a topic, as you seem to suggest, I'm afraid we'll have to deal with 
the same 'great-technical-design' but 
'sorry-not-yet-usable-if-you-really-want-to-make-music' software issues 
in the coming years on Linux.


Or in the case of session management,'great-minimal-design' but 
'useless-because-you-can-only-use-a-few-apps-and-we-dont-have-a-problem-with-that-because-we-dont-use-it-ourselves'.


I'll tell you why this topic is important to me. I did a talk about 
Linuxaudio. I can't tell you how much of a pain it was to get my stuff 
together. It did cost me more then a *fulltime week, 10h a day* to be 
able to show a more or less workable Linuxaudio workflow. Truly 
ridiculous and it made me realize that JackSession is utopian (and 
probably making music on Linux too) in this state.


It's nice to talk about software design side of Linuxaudio, but actually 
working with it is a whole different story, I tell you...especially the 
combination 'making music' and 'the modular approach'... (NSM seems to 
change this quite a bit though)


But if you're only interested in technical stuff and academic discussion 
about APIs, this might be not very interesting to read for you, my 
apologies.




up on this thread, and almost nothing at all of value (i.e.
something towards solving the/a problem) has been contributed since
last I checked.  Mostly just a bunch of wannabe bureaucracy political
noise, which only obscures any actual technical points that might
need fleshing out (i.e. it's actively hurting, not helping). 
Take the politics to LAU or something.



Call it politics, or call it just an obvious part of the process of 
implementing something like a session manager API, where a large part of 
the community has to deal with. For me it's not politics in the sense 
that I like to see API X supported, rather then API Y, don't get me 
wrong. I just think it's important to get the real true (technical/ LAD 
related) arguments on table, it helps already to get the picture clear 
and to kill argumentation flaws, wrong suggestions and myths. That's in 
the benefit for devs and users.



Regards,
\r






___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-04 Thread David Robillard
On Tue, 2012-04-03 at 18:04 +0100, Rui Nuno Capela wrote:
[...]
 ardour gets all its stuff under one own session directory, on a per 
 session/project basis, iirc just like NSM mandates,
 
 bbbuut...:) making that one and the same directory as from an 
 outsider/independent session manager like NSM is asking for a lot of 
 file and symlink juggling, if you ask me
 
 i'm not an expert in ardour internals, someone else could chime in and 
 help me here.

I don't know what you are trying to say.  One and the same directory as
from an outsider/independent session manager?  Huh?

A directory of files is a directory of files.  The format Ardour would
save to inside of a session is precisely the same format it already
saves in, perhaps with some things being links.

I can guarantee you that much, because if it had to be different,
Ardour, like presumably most apps, simply would never implement it...

  my feeling again is that the effort to comply with NSM isn't, won't be 
  so easy for any lass-than-simple-textbook-like client examples

Not really.  Qtractor is just a weirdo edge case.  You seem to be trying
to paint the mandates of NSM as deeply imposing requirements, but
they're not.  Quite the opposite, really, anything else would certainly
be *far* more imposing and complicated.  That's kind of the point.

It's not really worth it to care about this case from an SM perspective
since it's rare, easily fixable, inherently un-archivable, and there's
no palatable solution for dealing with apps like this anyway.  The
obvious one would be to have a special 'deep save', but then... if the
app implements that, it can just save that way when running in an SM
every time.  Therefore it's a non-issue (heh) for SM.

-dr


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-03 Thread Emanuel Rumpf
Am 2. April 2012 20:05 schrieb Emanuel Rumpf xb...@web.de:

 NSM has some nice rules already, to make things behave smooth.
 Now add a few sensible rules, to make sure that
 audio-file management works equally well.

 These are really very simple points, I say.


Proposing a few simple non-intrusive rules:

- clients MUST create symlinks for all external files used - in the
   directory nsm/ sessions/ mysession/ myapp/ external-file-links/

 - clients are ADVISED to store large-files in /nsm/ large-files/
   (and create symlinks for them as in previous point)

- all NSM-clients treat all files, as if they were inside their
session-directory
   (means: they access all external files over the symlinks)

- if a file must be external, apps create a symlink in
   their external-file-links/ folder and access the file through that link


Without obtruding much on the application, nor on the SM
 (clients just create the symlinks and use them),
this would - for the first version :

 - offer accaptable integrity.

 - ensure all files are either referenced-from or contained-in the session dir

 - ensure, if a file or link in the session-dir is modified or replaced,
   the new version is used by the nsm-client


-- 
E.R.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-03 Thread Emanuel Rumpf

  - offer accaptable integrity.


All further, extended functionality (export, import, copy, ...)
could then become part of a script or of version 2.0 of NSM.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-03 Thread rncbc

On 03.04.2012 06:49, Joel Roth wrote:

On Thu, Mar 29, 2012 at 03:44:17PM +0200, Emanuel Rumpf wrote:


Back to life - back to reality

1. We start qtractor as part of a session, create some midi-tracks,
include some external wav-files.

Should the SM know about these external files, as I suggested ?
(Allowing the user to find out basic info about it. )
Or leave it completely to qtractor ?



snip


As I understand it, the primary motivation for a session
manager is to be able to save and restore the state of an
audio project[1] that consists of multiple interconnected
programs running on a multiprocessing Linux system.

In other words, the minimum capability sufficient to be
useful would be some sort of checkpointing mechanism.

A secondary goal, discussed extensively here, is that it
would be nice to be able to copy a session or export a
session. This is where all the contentious issues with
handling filesystem objects comes up.

The latter goal should be optional, IMO, rather than required.


/snip

this is exactly what i've been trying to tell (only that my english 
wording leaves a lot to be desired)


thanks Joel :)

the primary goal is already achieved by qtractor on jack-session and 
ladish; the second goal is the one i called utopian.


speaking from a developer's pov. i find it very unlikely that NSM will 
ever get broader acceptance than jack-session and/or ladish, given the 
utopian restrictions it poses on client application design.


i wonder for a while: modifying an application to participate in 
jack-session, for instance, is dead simple and costs only a small amount 
of developer time and effort, provided he/she has the proper motivation 
;)


otoh. i have this creepy feeling that, to comply to NSM, one has to 
compromise a lot of the application design and behavior--gui 
restrictions, file location restrictions, osc managing interface, to 
name a few--not that they are bad ideas at all, quite the contrary, but 
they impose a kind of non-negligible (pun intended;) change into 
application workings, unless coded to comply to the NSM-client-logo from 
day zero.


i keep wondering: if that ever flies above its toes then i'll certainly 
call it The linux-audio revolution (or miracle, scnr:)


cheers
--
rncbc aka Rui Nuno Capela
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-03 Thread Nils
On Tue, 3 Apr 2012 07:04:55 +
Emanuel Rumpf xb...@web.de wrote many things.

Emanuel,

why don't you write your own Session Manager (Protocol)?
You seem to be very knowledgable.

Nils
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-03 Thread rosea.grammostola

On 04/03/2012 10:05 AM, rncbc wrote:

On 03.04.2012 06:49, Joel Roth wrote:

On Thu, Mar 29, 2012 at 03:44:17PM +0200, Emanuel Rumpf wrote:


Back to life - back to reality

1. We start qtractor as part of a session, create some midi-tracks,
include some external wav-files.

Should the SM know about these external files, as I suggested ?
(Allowing the user to find out basic info about it. )
Or leave it completely to qtractor ?



snip


As I understand it, the primary motivation for a session
manager is to be able to save and restore the state of an
audio project[1] that consists of multiple interconnected
programs running on a multiprocessing Linux system.

In other words, the minimum capability sufficient to be
useful would be some sort of checkpointing mechanism.

A secondary goal, discussed extensively here, is that it
would be nice to be able to copy a session or export a
session. This is where all the contentious issues with
handling filesystem objects comes up.

The latter goal should be optional, IMO, rather than required.


/snip

this is exactly what i've been trying to tell (only that my english
wording leaves a lot to be desired)

thanks Joel :)

the primary goal is already achieved by qtractor on jack-session and
ladish; the second goal is the one i called utopian.


As far as I understood, to have everything saved in the session folder 
was designed to make the behavior of the session manager more 
predictable and more simple to avoid errors and misbehavior.
To be able to export the session was *not* the primary choice for this 
(correct me if I am wrong).




speaking from a developer's pov. i find it very unlikely that NSM will
ever get broader acceptance than jack-session and/or ladish, given the
utopian restrictions it poses on client application design.

i wonder for a while: modifying an application to participate in
jack-session, for instance, is dead simple and costs only a small amount
of developer time and effort, provided he/she has the proper motivation ;)

otoh. i have this creepy feeling that, to comply to NSM, one has to
compromise a lot of the application design and behavior--gui
restrictions, file location restrictions, osc managing interface, to
name a few--not that they are bad ideas at all, quite the contrary, but
they impose a kind of non-negligible (pun intended;) change into
application workings, unless coded to comply to the NSM-client-logo from
day zero.


Feelings are important, especially when dealing with something like 
session management which success depends more or less by the adoption by 
others. But I think we need to know the *facts* here. Is it really that 
way as you think it is, or is it just your initial resistance (which one 
can understand) to comply to the strict rules of NSM and isn't it that 
bad when having a closer look at it?

It's a reasonable point to discuss though...



i keep wondering: if that ever flies above its toes then i'll certainly
call it The linux-audio revolution (or miracle, scnr:)

cheers
--
rncbc aka Rui Nuno Capela
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-03 Thread rosea.grammostola

On 04/03/2012 11:38 AM, rosea.grammostola wrote:

On 04/03/2012 10:05 AM, rncbc wrote:

On 03.04.2012 06:49, Joel Roth wrote:

On Thu, Mar 29, 2012 at 03:44:17PM +0200, Emanuel Rumpf wrote:


Back to life - back to reality

1. We start qtractor as part of a session, create some midi-tracks,
include some external wav-files.

Should the SM know about these external files, as I suggested ?
(Allowing the user to find out basic info about it. )
Or leave it completely to qtractor ?



snip


As I understand it, the primary motivation for a session
manager is to be able to save and restore the state of an
audio project[1] that consists of multiple interconnected
programs running on a multiprocessing Linux system.

In other words, the minimum capability sufficient to be
useful would be some sort of checkpointing mechanism.

A secondary goal, discussed extensively here, is that it
would be nice to be able to copy a session or export a
session. This is where all the contentious issues with
handling filesystem objects comes up.

The latter goal should be optional, IMO, rather than required.


/snip

this is exactly what i've been trying to tell (only that my english
wording leaves a lot to be desired)

thanks Joel :)

the primary goal is already achieved by qtractor on jack-session and
ladish; the second goal is the one i called utopian.


As far as I understood, to have everything saved in the session folder
was designed to make the behavior of the session manager more
predictable and more simple to avoid errors and misbehavior.
To be able to export the session was *not* the primary choice for this
(correct me if I am wrong).


* not the primary reason for this choice




speaking from a developer's pov. i find it very unlikely that NSM will
ever get broader acceptance than jack-session and/or ladish, given the
utopian restrictions it poses on client application design.

i wonder for a while: modifying an application to participate in
jack-session, for instance, is dead simple and costs only a small amount
of developer time and effort, provided he/she has the proper
motivation ;)

otoh. i have this creepy feeling that, to comply to NSM, one has to
compromise a lot of the application design and behavior--gui
restrictions, file location restrictions, osc managing interface, to
name a few--not that they are bad ideas at all, quite the contrary, but
they impose a kind of non-negligible (pun intended;) change into
application workings, unless coded to comply to the NSM-client-logo from
day zero.


Feelings are important, especially when dealing with something like
session management which success depends more or less by the adoption by
others. But I think we need to know the *facts* here. Is it really that
way as you think it is, or is it just your initial resistance (which one
can understand) to comply to the strict rules of NSM and isn't it that
bad when having a closer look at it?
It's a reasonable point to discuss though...



i keep wondering: if that ever flies above its toes then i'll certainly
call it The linux-audio revolution (or miracle, scnr:)

cheers
--
rncbc aka Rui Nuno Capela
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev




___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-03 Thread rncbc

On 03.04.2012 10:38, rosea.grammostola wrote:

On 04/03/2012 10:05 AM, rncbc wrote:

On 03.04.2012 06:49, Joel Roth wrote:

On Thu, Mar 29, 2012 at 03:44:17PM +0200, Emanuel Rumpf wrote:


Back to life - back to reality

1. We start qtractor as part of a session, create some 
midi-tracks,

include some external wav-files.

Should the SM know about these external files, as I suggested ?
(Allowing the user to find out basic info about it. )
Or leave it completely to qtractor ?



snip


As I understand it, the primary motivation for a session
manager is to be able to save and restore the state of an
audio project[1] that consists of multiple interconnected
programs running on a multiprocessing Linux system.

In other words, the minimum capability sufficient to be
useful would be some sort of checkpointing mechanism.

A secondary goal, discussed extensively here, is that it
would be nice to be able to copy a session or export a
session. This is where all the contentious issues with
handling filesystem objects comes up.

The latter goal should be optional, IMO, rather than required.


/snip

this is exactly what i've been trying to tell (only that my english
wording leaves a lot to be desired)

thanks Joel :)

the primary goal is already achieved by qtractor on jack-session and
ladish; the second goal is the one i called utopian.


As far as I understood, to have everything saved in the session
folder was designed to make the behavior of the session manager more
predictable and more simple to avoid errors and misbehavior.
To be able to export the session was *not* the primary choice for
this (correct me if I am wrong).



but is this one i complain about. nb. getting the full application 
state saved under one SM session directory is a lot different than 
saving everything an application state refers to under the same SM 
session directory.


i'll gently recall you can actually have sort of both with qtractor 
under jack-session management: you just choose which of qtractor's 
default session file format you want: either the regular xml state file 
(.qtr) or the complete bundle, self-contained archive/zip file (.qtz). 
note that if your files are huge, saving in this latter format might 
just take more time :)


however, please note, that's just a qtractor's user 
preference/convenience option, not mandated by any permanent rule of the 
SM API.


byee
--
rncbc aka Rui Nuno Capela
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-03 Thread rosea.grammostola

On 04/03/2012 02:55 PM, rosea.grammostola wrote:

On 04/03/2012 11:51 AM, rncbc wrote:

On 03.04.2012 10:38, rosea.grammostola wrote:

On 04/03/2012 10:05 AM, rncbc wrote:

On 03.04.2012 06:49, Joel Roth wrote:

On Thu, Mar 29, 2012 at 03:44:17PM +0200, Emanuel Rumpf wrote:


Back to life - back to reality

1. We start qtractor as part of a session, create some midi-tracks,
include some external wav-files.

Should the SM know about these external files, as I suggested ?
(Allowing the user to find out basic info about it. )
Or leave it completely to qtractor ?



snip


As I understand it, the primary motivation for a session
manager is to be able to save and restore the state of an
audio project[1] that consists of multiple interconnected
programs running on a multiprocessing Linux system.

In other words, the minimum capability sufficient to be
useful would be some sort of checkpointing mechanism.

A secondary goal, discussed extensively here, is that it
would be nice to be able to copy a session or export a
session. This is where all the contentious issues with
handling filesystem objects comes up.

The latter goal should be optional, IMO, rather than required.


/snip

this is exactly what i've been trying to tell (only that my english
wording leaves a lot to be desired)

thanks Joel :)

the primary goal is already achieved by qtractor on jack-session and
ladish; the second goal is the one i called utopian.


As far as I understood, to have everything saved in the session
folder was designed to make the behavior of the session manager more
predictable and more simple to avoid errors and misbehavior.
To be able to export the session was *not* the primary choice for
this (correct me if I am wrong).



but is this one i complain about. nb. getting the full application state
saved under one SM session directory is a lot different than saving
everything an application state refers to under the same SM session
directory.

i'll gently recall you can actually have sort of both with qtractor
under jack-session management: you just choose which of qtractor's
default session file format you want: either the regular xml state file
(.qtr) or the complete bundle, self-contained archive/zip file (.qtz).
note that if your files are huge, saving in this latter format might
just take more time :)

however, please note, that's just a qtractor's user
preference/convenience option, not mandated by any permanent rule of the
SM API.


But Qtractor seems to be special case here. Jonathan said in this thread
that there are not many apps with the same behavior when it comes to
saving and using files/ sessions.

So saying that this isn't ideal for Qtractor-like-applications, doesn't
say that other developers have problems with the strict saving rules of
NSM.
(I have the *feeling* that these rules are in general harder to accept
for developers of big applications like Qtractor, Ardour, Muse etc, then
it is for small applications. The first have the unconscious urge of
being in charge I can imagine, but I could be wrong).

However, it might be fair to take a look at how JackSession does this
and answer the question why it is or why it is not a problem to not have
these saving restrictions.


When searching for an answer, you find at least two quotes which tell 
you that it is important:


[Quote=Fons]
3. Clearly defining the way an app should behave w.r.t. its
   File menu entries (when managed). This is quite intrusive
   to existing clients, but it is IMHO absolutley essential.
   Kudos to the designer(s) for the having the courage to do
   this instead of allowing application developers to take
   the 'least effort' way (which would of course be better
   marketing, but invite later misery).
[/Quote=Fons]

*Why* this is essential isn't elaborated by Fons though.


[quote=Liles]
Currently one of the strong points of NSM is that applications with 
heavy state (e.g. large audio files) know *exactly* where to put the 
state at the time they join the session. This eliminates the need for 
undesirable hacks with just storing a link to the heavy state (as was 
generally required with LASH). I felt like this was one of the primary 
requirements of Non-DAW which was not addressed by other session managers.

[/quote=Liles]

(Assuming that this ^ is because of the strict opening and saving rules 
of NSM).

Liles compares here with LASH, undesirable hacks are not needed anymore.
Why is this a primary requirement?
Moreover LASH isn't seen as a serious candidate anyway these days. I 
would rather see a comparison with JackSession in this area. In other words:


How JackSession does this and why is it, or why it is not, a problem to 
not have these strict rules for applications which are in a session.



Regards,
\r

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-03 Thread Emanuel Rumpf
Am 3. April 2012 09:21 schrieb Nils l...@nilsgey.de:

 why don't you write your own Session Manager (Protocol)?
 You seem to be very knowledgable.


I did not write a whole sequencer app yet, that's why I don't call
that utopian  ;)
But Riu did.

- I'm not able to do it better than NSM
- we do not need 20 SMs, just one, that does it
- NSM is here already, and is usable and is great

There are many reasons to NOT write a SM, such
as endless discussions on LAD about f..ng details 

I'm glad, some very brave devs nevertheless did.

-- 
E.R.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-03 Thread Louigi Verona
Guys, is there any info on JACK Session state? What apps are supported? How
to use?

-- 
Louigi Verona
http://www.louigiverona.ru/
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-03 Thread rosea.grammostola

On 04/03/2012 04:18 PM, Louigi Verona wrote:

Guys, is there any info on JACK Session state? What apps are supported?
How to use?



http://tangostudio.tuxfamily.org/en/documentations/jacksession
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-03 Thread Rui Nuno Capela

On 04/03/2012 01:55 PM, rosea.grammostola wrote:

On 04/03/2012 11:51 AM, rncbc wrote:

On 03.04.2012 10:38, rosea.grammostola wrote:

On 04/03/2012 10:05 AM, rncbc wrote:

On 03.04.2012 06:49, Joel Roth wrote:

On Thu, Mar 29, 2012 at 03:44:17PM +0200, Emanuel Rumpf wrote:


Back to life - back to reality

1. We start qtractor as part of a session, create some midi-tracks,
include some external wav-files.

Should the SM know about these external files, as I suggested ?
(Allowing the user to find out basic info about it. )
Or leave it completely to qtractor ?



snip


As I understand it, the primary motivation for a session
manager is to be able to save and restore the state of an
audio project[1] that consists of multiple interconnected
programs running on a multiprocessing Linux system.

In other words, the minimum capability sufficient to be
useful would be some sort of checkpointing mechanism.

A secondary goal, discussed extensively here, is that it
would be nice to be able to copy a session or export a
session. This is where all the contentious issues with
handling filesystem objects comes up.

The latter goal should be optional, IMO, rather than required.


/snip

this is exactly what i've been trying to tell (only that my english
wording leaves a lot to be desired)

thanks Joel :)

the primary goal is already achieved by qtractor on jack-session and
ladish; the second goal is the one i called utopian.


As far as I understood, to have everything saved in the session
folder was designed to make the behavior of the session manager more
predictable and more simple to avoid errors and misbehavior.
To be able to export the session was *not* the primary choice for
this (correct me if I am wrong).



but is this one i complain about. nb. getting the full application state
saved under one SM session directory is a lot different than saving
everything an application state refers to under the same SM session
directory.

i'll gently recall you can actually have sort of both with qtractor
under jack-session management: you just choose which of qtractor's
default session file format you want: either the regular xml state file
(.qtr) or the complete bundle, self-contained archive/zip file (.qtz).
note that if your files are huge, saving in this latter format might
just take more time :)

however, please note, that's just a qtractor's user
preference/convenience option, not mandated by any permanent rule of the
SM API.


But Qtractor seems to be special case here. Jonathan said in this thread
that there are not many apps with the same behavior when it comes to
saving and using files/ sessions.

So saying that this isn't ideal for Qtractor-like-applications, doesn't
say that other developers have problems with the strict saving rules of
NSM.
(I have the *feeling* that these rules are in general harder to accept
for developers of big applications like Qtractor, Ardour, Muse etc, then
it is for small applications. The first have the unconscious urge of
being in charge I can imagine, but I could be wrong).



speaking of which

ardour gets all its stuff under one own session directory, on a per 
session/project basis, iirc just like NSM mandates,


bbbuut...:) making that one and the same directory as from an 
outsider/independent session manager like NSM is asking for a lot of 
file and symlink juggling, if you ask me


i'm not an expert in ardour internals, someone else could chime in and 
help me here.


my feeling again is that the effort to comply with NSM isn't, won't be 
so easy for any lass-than-simple-textbook-like client examples


once again, i call for some ardour expertise. i'm even afraid to ask 
this btw, but does ardour work with jack-session already? o.O


aham


However, it might be fair to take a look at how JackSession does this
and answer the question why it is or why it is not a problem to not have
these saving restrictions.



jack-session has some fsck-up restrictions of its own

one that i had historical complaints is about this non-reusable session 
directory restriction (here, the non particle, is not a pun;) which 
meant that you can't save into the same session directory twice


a really-smart/intelligent SM could copy and re(sym)link all the 
references under each client participant's session sub-directory, yes, a 
chimeric kind of effort comes to mind :o)


alas. this jack-session restriction has been somewhat circumvented by 
the versioning feature on qjackctl-as-jack-session-manager, by yours 
truly. yes it's true, but it shows you how cumbersome is like when one 
has to go around and break the red tape of those draconian SM's ;)


and now NSM is about asking for even more and thicker red tape...

cough

now, i could suggest NSM API to be split in levels of compliance and 
restrictiveness, so to speak:


- level 0 :- clients just store/retrieve their own private state from a 
supplied and independent session sub-directory; no GUI File menu 
restrictions; no file location 

Re: [LAD] NSM - handling large files

2012-04-03 Thread J. Liles
On Tue, Apr 3, 2012 at 6:35 AM, rosea.grammostola
rosea.grammost...@gmail.com wrote:

 [quote=Liles]
 Currently one of the strong points of NSM is that applications with heavy
 state (e.g. large audio files) know *exactly* where to put the state at the
 time they join the session. This eliminates the need for undesirable hacks
 with just storing a link to the heavy state (as was generally required with
 LASH). I felt like this was one of the primary requirements of Non-DAW which
 was not addressed by other session managers.
 [/quote=Liles]

 (Assuming that this ^ is because of the strict opening and saving rules of
 NSM).
 Liles compares here with LASH, undesirable hacks are not needed anymore.
 Why is this a primary requirement?

Because LASH was designed with the assumption that all client
applications would either:

1) Store all their state in memory and be fine with just dumping it to
disk when the save yourself message came.
2) Naturally store their heavy state in some random place (like QTractor?)

Programs with heavy state closely associated to the individual
projects (like Non-DAW and Ardour) had to work around this by just
storing the project data in some random place and only storing a
reference to it in LASH, which was terrible from a consistency
perspective because the user really had no idea where their data was.

I want to have my sessions laid out on disk in a very specific way,
with none of them named after GUIDs, and no applications/data being
(mis)directed to a session just because it happened to be the last one
active.

With NSM (this is part of the server implementation and not the
protocol) the user can lay things out on disk however they like,
organizing their sessions in any way they want (including doing fancy
things with subdirectories and symlinks) *and* have an expectation
that e.g. the audio they record in Non-DAW after adding it as a client
to a session *actually goes into the session directory they defined
when they created the session*. If I want to back up my audio
partition, I should not have to track down gigabytes of data  from
some hidden directory in $HOME that is only referred to inside
incomprehensible XML files as well.

The matter is complicated by applications which have been attempting
to do their own crude form of session management. But here's the key
point: It is only reasonable to expect an application to adhere to
*one* system of session management at a time. So, if the application
is connected to NSM, it should behave in a way consistent with other
NSM capable applications, and if it is connected to XSM, JackSession
or LASH, or what have you it can do whatever those systems allow
(which is totally undefined anyway).

 Moreover LASH isn't seen as a serious candidate anyway these days. I would
 rather see a comparison with JackSession in this area. In other words:

 How JackSession does this and why is it, or why it is not, a problem to not
 have these strict rules for applications which are in a session.

I believe JackSession was intended to be the bare minimum required to
transmit a 'save' message to JACK applications... Just a very basic
protocol. Doing anything more to ensure a smooth and consistent user
experience is outside of its scope. A lot of this behavior depends on
the implementation of the Session Manager server itself, but
JackSession by its nature has some basic limitations that exclude the
possibility of the kind of features NSM has, so a server
implementation for it can only do so much...
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-03 Thread J. Liles
On Tue, Apr 3, 2012 at 10:04 AM, Rui Nuno Capela rn...@rncbc.org wrote:


 jack-session has some fsck-up restrictions of its own

 one that i had historical complaints is about this non-reusable session
 directory restriction (here, the non particle, is not a pun;) which meant
 that you can't save into the same session directory twice

 a really-smart/intelligent SM could copy and re(sym)link all the
 references under each client participant's session sub-directory, yes, a
 chimeric kind of effort comes to mind :o)

 alas. this jack-session restriction has been somewhat circumvented by the
 versioning feature on qjackctl-as-jack-session-**manager, by yours
 truly. yes it's true, but it shows you how cumbersome is like when one has
 to go around and break the red tape of those draconian SM's ;)

 and now NSM is about asking for even more and thicker red tape...

 cough

 now, i could suggest NSM API to be split in levels of compliance and
 restrictiveness, so to speak:

 - level 0 :- clients just store/retrieve their own private state from a
 supplied and independent session sub-directory; no GUI File menu
 restrictions; no file location restrictions, no symlinks, no juggling, no
 dupes, no sh*t.

 - level 1+ :- anything that (may progressively?) imposes each one the
 mentioned non-restrictions of level 0.

 starting with level 0, there's a fair chance for NSM to revolve, and even
 co-exist peacefully with jack-session and ladish. call me a dreamer :)


Peacefully co-existing at the lowest common denominator of functionality
completely defeats the purpose of trying to improve the integration
experience for *users*. Remember, you only have to change the code once...
People use this stuff every day. If there is a compliance level of 0, then
developers will just pick that (you know it's true) and stop there.

As far as the restrictions imposed by NSM... NSM requires very little of
the application developer. The hardest part is if you want to support the
session 'switch' functionality, and even that is not very difficult (hey,
all the Non-* does it, so that means I had to implement it 4 times... so
why are you complaining when you haven't even tried?)  The requirement that
you *not* do something is a hell of a lot easier to comply with than
requiring that you do something complicated, which is exactly why NSM
*doesn't* require applications to do anything complicated...
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-02 Thread rosea.grammostola

On 03/30/2012 12:27 PM, Paul Davis wrote:

re: the central media location  - in rui's defense i'd like to point
out that it took cubase more than 10 years to move away from something
fairly close to his model.


Ok, that will be 5 yrs for Rui then ;)

Serious though. What does this mean for Qtractor and NSM in theory?

Qtractor can't apply to the strict session saving rules of NSM atm and 
not in the near future? If so, is there a solution for this from the 
perspective of Qtractor and NSM?

Are there other applications with this same 'problem'?

Best regards,

\r

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-02 Thread J. Liles
On Mon, Apr 2, 2012 at 9:11 AM, rosea.grammostola
rosea.grammost...@gmail.com wrote:
 On 03/30/2012 12:27 PM, Paul Davis wrote:

 re: the central media location  - in rui's defense i'd like to point
 out that it took cubase more than 10 years to move away from something
 fairly close to his model.


 Ok, that will be 5 yrs for Rui then ;)

 Serious though. What does this mean for Qtractor and NSM in theory?

It wouldn't be a problem if qtractor either kept all new media in its
per-application area of the session directory when running under NSM
or at least symlinked to the external files. There is precedent for
applications using completely different project formats when under SM
(for example, Yoshimi's .state files [although that functionality
appears to be broken in the stable release of yoshimi]). A session is
something that applications /participate/ in, and participation means
having to do some things differently in order to cooperate with the
session manager for the user's benefit, so IMHO none of this is asking
too much.

And, anyway, it's not /really/ a problem in practice until you want to
trasnport a session, and in that case you'd just have to follow
whatever qtractor's procedure is for doing that.

It's an interesting point and one that I'll need to state explicitly
in the next version of the API.

 Qtractor can't apply to the strict session saving rules of NSM atm and not
 in the near future? If so, is there a solution for this from the perspective
 of Qtractor and NSM?
 Are there other applications with this same 'problem'?

There are probably a few. I think Freewheeling also tries to store all
recorded loops in a central place in the users home directory. It's a
pretty unusual thing to do though and the truth is that the vast
majority of applications don't have heavy state and keep all project
information in memory and save/restore it from a single file. Anyway,
from my perspective, correcting the problem is as simple as adding a
rule to the NSM API that states:

* When connected to a session, the client *MUST* store all new media
(recorded audio, etc.) related to the open project in the project path
provided by the `open` message.

I can't imagine why Rui or anyone else would have a problem with this,
as it is exactly equivalent to the user saying Please store my
precious data somewhere predictable that I have predefined instead of
in whatever random place the application developer thought would be
good.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-02 Thread Emanuel Rumpf
Am 2. April 2012 19:17 schrieb J. Liles malnour...@gmail.com:

 Anyway,
 from my perspective, correcting the problem is as simple as adding a
 rule to the NSM API that states:

 * When connected to a session, the client *MUST* store all new media
 (recorded audio, etc.) related to the open project in the project path
 provided by the `open` message.


I thought - that's what we would not want: store large files in the
session dir !?
because duplicating a session should stay a light and fast process.

That is, why I had been proposing an nsm-large-files directory
(outside of the session-folder), for those,
but actually, it doesn't matter, _where_ NSM-clients store their large-files,
as long as they create symlinks for them in the session folder.

(maybe the sub-directory for symlinks should be defined as part of the
API. proposition: external-file-links).


-- -- -- --
Remember my definitions:

What is a large-file ?
 - every (larger) file, that is not required to immediately be
   copied if, a session is cloned.
 - every file, where a reference is enough in the first place

What is NO-large-file ?
 - data that is required to access large-files (references, symlinks)
 - that is lightweight (~ below 1MB) (some config-values)
 - has to be read by the SM to initialize the client
-- -- -- --


 I can't imagine why Rui or anyone else would have a problem with this,
 as it is exactly equivalent to the user saying

 Please store my
 precious data somewhere predictable that I have predefined instead of
 in whatever random place the application developer thought would be
 good.

My exact intention.


Regards, Emanuel
-- 
E.R.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-02 Thread Paul Giblock
 nb. all this applies whether the external files symlinking are
implemented or not (will that be an option or shall be mandatory by SM
protocol design?);

Do all target filesystems support symbolic links?
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-02 Thread Emanuel Rumpf
Am 2. April 2012 20:39 schrieb Paul Giblock pgib...@gmail.com:
 Do all target filesystems support symbolic links?


yeah ? what would happen to the links, if one copied the session
folder to his/her fat32 usb-stick ?
simply don't !! ?

or de-reference...

-- 
E.R.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-02 Thread J. Liles
On Mon, Apr 2, 2012 at 12:07 PM, Paul Giblock pgib...@gmail.com wrote:
 I didn't necessarily mean for transport or archival. I imagine just
 dereference it is one of the motivations for links in the first place.  I
 was more concerned about windows users, or people with large external
 (fat32) drives who wish to use this filesystem for their live session
 storage.  I just checked and NTFS at least supports symlinks.

Anyone attempting to store their production audio sessions on a fat32
filesystem is certifiably insane anyway...
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-02 Thread J. Liles
On Mon, Apr 2, 2012 at 11:29 AM, Emanuel Rumpf xb...@web.de wrote:
 I thought - that's what we would not want: store large files in the
 session dir !?
 because duplicating a session should stay a light and fast process.

Personally, I'm fine with having large files in my session
directories. In fact, that's exactly where I want them. Why would one
one to duplicate a session with a lot of pre-recorded audio? And,
anyway, this could be made to work by just storing that common audio
wherever you want and making 'external' references to it in the
session (and hopefully the application involved uses the symlink
technique we've discussed for referring to external files)--all
without the SM having to know anything about it.

 That is, why I had been proposing an nsm-large-files directory
 (outside of the session-folder), for those,
 but actually, it doesn't matter, _where_ NSM-clients store their 
 large-files,
 as long as they create symlinks for them in the session folder.

Right. As long as there are symlinks it's fine, except that I think it
should be the user deciding where things are stored rather than
individual applications.

Remember, you can always write a simple shell script that moves WAVE
files etc. into a central location outside of the session directories
and replaces them with symlinks. Again, this would be the user
deciding what to do and the SM or the application doesn't have to know
anything about it.

I think this is very much a corner case anyway. Normally, one wants
all the project data and media to be stored on the same filesystem, as
close together as possible, and doesn't care about being able to
duplicate a session with gigabytes of audio data (because... why are
you doing that anyway and why are you doing it so frequently that just
creating the symlinks yourself is too much trouble). Unless the use
case is very compelling, it's hard to justify adding any complexity or
requirements to either the SM or the client applications. Remember,
this is Unix--we don't have to stuff all the functionality into one
tool.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-02 Thread Thomas Vecchione
On Mon, Apr 2, 2012 at 3:11 PM, J. Liles malnour...@gmail.com wrote:

 On Mon, Apr 2, 2012 at 12:07 PM, Paul Giblock pgib...@gmail.com wrote:
  I didn't necessarily mean for transport or archival. I imagine just
  dereference it is one of the motivations for links in the first place.
 I
  was more concerned about windows users, or people with large external
  (fat32) drives who wish to use this filesystem for their live session
  storage.  I just checked and NTFS at least supports symlinks.

 Anyone attempting to store their production audio sessions on a fat32
 filesystem is certifiably insane anyway...


Can't agree with that.  USB Thumb Drives for instance are still one of the
most common ways to transport sessions and other data and are often
formatted FAT32 for interoperability purposes.

  Seablade
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-02 Thread Tim Westbrook
 Can't agree with that.  USB Thumb Drives for instance are still one of the
 most common ways to transport sessions and other data and are often
 formatted FAT32 for interoperability purposes.

   Seablade

Luckily tar files do support symlinks. Some folks even create a ext2
fs formatted loopback file on the fat32 partition.

Of course it's a problem if you try to extract that tar file onto a fat32.

Cheers,
Tim
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-02 Thread Emanuel Rumpf
Am 2. April 2012 21:22 schrieb J. Liles malnour...@gmail.com:

 Personally, I'm fine with having large files in my session
 directories. In fact, that's exactly where I want them.

 Why would one
 want to duplicate a session with a lot of pre-recorded audio?
Maybe with recorded audio, you wouldn't
- although maybe you would (see below).

If you work with samples, OTHO, why would you
want the (same!) samples to be stored in the sessions folder
and even in duplications ?
To waste some space ?


 And,
 anyway, this could be made to work by just storing that common audio
 wherever you want and making 'external' references to it in the
 session

That was our conclusion for using symlinks.
The clients would be advised, to create them
in ../nsm-session/external-file-links/

 (and hopefully the application involved uses the symlink
 technique we've discussed for referring to external files)--all
 without the SM having to know anything about it.

right


 ..., except that I think it
 should be the user deciding where things are stored rather than
 individual applications.

Most applications allow that anyway, and if not - it would not hurt much
to change this.

 Remember, you can always write a simple shell script

We can always create shell scripts for anything,
but aren't we talking about some kind of management !?

NSM has some nice rules already, to make things behave smooth.
Now add a few sensible rules, to make sure that
audio-file management works equally well.

These are really very simple points, I say.


example:
- clients MUST create symlinks for all external files used - in the
directory ../session/external-file-links/
- clients are ADVISED to store large-files in /nsm/large-files/ (and
create symlinks for them as in previous point)


 I think this is very much a corner case anyway.

I think no, but very much depends on personal work-flow.

I use to do different Versions of _the same_ project,
with some minor or major differences.
So my workflow would be:
- create a session
- if happy with a state, duplicate
- continue work with the duplicate.

since many/most files stay the same, there is no reason
to copy the files over different session directories.


-- 
E.R.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-04-02 Thread Emanuel Rumpf
A new thought:

Lets say we did store the session as tar.gz,
and we de-referenced the symlinks.
Means: We have all files related to the session th the tar.gz.
So far, so good.


Now we re-import the session to NSM:
We extract that tar.gz in the NSM sessions-folder.
Note: instead of symlinks we have now real files in the symlinks
directory (because we de-referenced before creating the tar.gz).

Real files should not go to the symlinks directory.
But we could have a simple script, to move these files
to the nsm-large-files/ folder and re-create the symlinks.

Now we should have a state very similar to where we began.
(exception: we did not restore the file-paths we've had originally,
but symlinked to the nsm-large-files folder instead)

I think this is acceptable
- the session stayed valid at least.

-- 
E.R.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-30 Thread Louigi Verona
From my user perspective - I use samples extensively, however I care very
little about exporting projects.
I do care about preserving them, but I have a special folder called
Sessions where I save projects from all audio apps. Add my sample library
to that and I can preserve everything.



-- 
Louigi Verona
http://www.louigiverona.ru/
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-30 Thread rosea.grammostola

On 03/30/2012 03:48 AM, J. Liles wrote:

The point of those guidelines is to allow users to know*exactly*  what
behavior they can expect.

The chief difficulty I had with implementing LASH support in programs
was that there was no answer as to what 'Save', 'Open', 'New', etc.
should do when running under LASH. Left, as is, the effect of these
operations would vary depending on how individual applications store
their state (whether fully in RAM, in a fixed location on disk, etc.).
This scenario is an absolute nightmare for both implementers and
users. If following a few simple rules to disable certain menu options
is enough to remove this ambiguity entirely, then why is that so hard
for you to accept? Do you*want*  to make things ambiguous and
impossible to predict? I know I don't. The rules are not there to be
draconian and imposing--They are there to allow people to have
confidence in what running under session management means regarding
where their data is stored.


Makes me wonder about JackSession. Does it have the same problem here 
compared to LASH?


\r
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-30 Thread Paul Davis
re: the central media location  - in rui's defense i'd like to point
out that it took cubase more than 10 years to move away from something
fairly close to his model.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-30 Thread Emanuel Rumpf
Am 30. März 2012 03:29 schrieb J. Liles malnour...@gmail.com:


 If all Linux Audio software dealt with external references in this
 way, archiving/export would be much less problematic.


Finding a solution for externals, was the whole point of this discussion.

After all the many arguments, I'm now feeling too,
that symlinks are the right thing for NSM.

Thank you everyone, for participating.


 Furthermore, in addition to the plain old symlinks, a truly robust
 solution might also store e.g. SHA1 hashes of external files, so that
 any mismatch is detectable.

Interesting point.

-- 
E.R.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-30 Thread Lieven Moors
On Fri, Mar 30, 2012 at 05:31:57PM +0200, Emanuel Rumpf wrote:
 Am 30. März 2012 03:29 schrieb J. Liles malnour...@gmail.com:
 
 
  If all Linux Audio software dealt with external references in this
  way, archiving/export would be much less problematic.
 
 
 Finding a solution for externals, was the whole point of this discussion.
 
 After all the many arguments, I'm now feeling too,
 that symlinks are the right thing for NSM.
 
 Thank you everyone, for participating.
 
 
  Furthermore, in addition to the plain old symlinks, a truly robust
  solution might also store e.g. SHA1 hashes of external files, so that
  any mismatch is detectable.
 
 Interesting point.
 

Would there be anything against using hard links?
Isn't it nice that you can delete the original files,
knowing that that are save when used in a session.

Portability would be a problem of course,
and deleting files might become more difficult
then you would like.

But if you would be able to control this with the
session manager, it might be a desirable feature.

lieven
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-30 Thread Fons Adriaensen
On Fri, Mar 30, 2012 at 09:07:07PM +0200, Lieven Moors wrote:
 
 Would there be anything against using hard links?

A hard link makes the file pointed to part of the session
directory, just as moving or copying the file would. There 
is no difference between a hard link and the original - both
are hard links. So such a file is no longer recognisable as
'external' and the choice of including it or not in an archive
or a copy no longer exists. That defeats the original purpose
which is to have this choice.

Apart from that, hard links are possible only within the
same file system. There are good reasons to keep big audio
files etc. on a separate one. That in itself is a motivation
for 'external' data in first place. I don't want hundreds of
Gigabytes of audio files on my /home partition, let alone in
my home directory.

Ardour makes this mistake of creating hard links if by chance
it happens to be possible, and even if the user explicitly
expressed his/her choice to keep a file out of the session
directory. It's inconsistent and unreliable behaviour and
only creates problems.

Ciao,

-- 
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-30 Thread Thomas Vecchione
Personally I prefer Ardour's behavior myself.  I do keep my samples on an
external drive, but in the end the ability to maintain a self-contained
session for portability purposes is important to me.  But to each their own.

 Seablade

On Fri, Mar 30, 2012 at 4:53 PM, Fons Adriaensen f...@linuxaudio.orgwrote:

 On Fri, Mar 30, 2012 at 09:07:07PM +0200, Lieven Moors wrote:

  Would there be anything against using hard links?

 A hard link makes the file pointed to part of the session
 directory, just as moving or copying the file would. There
 is no difference between a hard link and the original - both
 are hard links. So such a file is no longer recognisable as
 'external' and the choice of including it or not in an archive
 or a copy no longer exists. That defeats the original purpose
 which is to have this choice.

 Apart from that, hard links are possible only within the
 same file system. There are good reasons to keep big audio
 files etc. on a separate one. That in itself is a motivation
 for 'external' data in first place. I don't want hundreds of
 Gigabytes of audio files on my /home partition, let alone in
 my home directory.

 Ardour makes this mistake of creating hard links if by chance
 it happens to be possible, and even if the user explicitly
 expressed his/her choice to keep a file out of the session
 directory. It's inconsistent and unreliable behaviour and
 only creates problems.

 Ciao,

 --
 FA

 A world of exhaustive, reliable metadata would be an utopia.
 It's also a pipe-dream, founded on self-delusion, nerd hubris
 and hysterically inflated market opportunities. (Cory Doctorow)

 ___
 Linux-audio-dev mailing list
 Linux-audio-dev@lists.linuxaudio.org
 http://lists.linuxaudio.org/listinfo/linux-audio-dev

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-30 Thread Fons Adriaensen
On Fri, Mar 30, 2012 at 05:14:50PM -0400, Thomas Vecchione wrote:

 Personally I prefer Ardour's behavior myself.  I do keep my samples on an
 external drive, but in the end the ability to maintain a self-contained
 session for portability purposes is important to me.

You always have that ability, even if you allow others not
to use it. And if you don't allow that, as Ardour does when
by chance it can, it's no longer an 'ability' but something
forced onto you.

Ciao,

-- 
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-30 Thread Thomas Vecchione
Not awake enough to debate here, but my memory and your's of Ardour's
behavior doesn't seem to be matching up I don't believe.  But I ened more
sleep before I really dig into that.

   Seablade

On Fri, Mar 30, 2012 at 5:27 PM, Fons Adriaensen f...@linuxaudio.orgwrote:

 On Fri, Mar 30, 2012 at 05:14:50PM -0400, Thomas Vecchione wrote:

  Personally I prefer Ardour's behavior myself.  I do keep my samples on an
  external drive, but in the end the ability to maintain a self-contained
  session for portability purposes is important to me.

 You always have that ability, even if you allow others not
 to use it. And if you don't allow that, as Ardour does when
 by chance it can, it's no longer an 'ability' but something
 forced onto you.

 Ciao,

 --
 FA

 A world of exhaustive, reliable metadata would be an utopia.
 It's also a pipe-dream, founded on self-delusion, nerd hubris
 and hysterically inflated market opportunities. (Cory Doctorow)


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-30 Thread David Robillard
On Fri, 2012-03-30 at 20:53 +, Fons Adriaensen wrote:
 On Fri, Mar 30, 2012 at 09:07:07PM +0200, Lieven Moors wrote:
  
  Would there be anything against using hard links?

Nedko mentioned this idea on IRC as well...

 Apart from that, hard links are possible only within the
 same file system.

... but that's definitely a show-stopper

-dr


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-30 Thread Lieven Moors
On Fri, Mar 30, 2012 at 08:53:26PM +, Fons Adriaensen wrote:
 On Fri, Mar 30, 2012 at 09:07:07PM +0200, Lieven Moors wrote:
  
  Would there be anything against using hard links?
 
 A hard link makes the file pointed to part of the session
 directory, just as moving or copying the file would. There 
 is no difference between a hard link and the original - both
 are hard links. So such a file is no longer recognisable as
 'external' and the choice of including it or not in an archive
 or a copy no longer exists. That defeats the original purpose
 which is to have this choice.

But if the hardlinks would be in an 'external files' directory
managed by the session manager only, you would still have 
that choice when you make the archive.

Though I agree this is only based on convention...

 
 Apart from that, hard links are possible only within the
 same file system. There are good reasons to keep big audio
 files etc. on a separate one. That in itself is a motivation
 for 'external' data in first place. I don't want hundreds of
 Gigabytes of audio files on my /home partition, let alone in
 my home directory.

You could make a symbolic link to a directory with hardlinks
managed by the SM. Then the SM would spread like a giant octopus ;-)

Well, only kidding...

I agree that the arguments against them are very strong. 
But I must say, there is something seductive about them.

If you want to delete the originals without the fear of destroying
your sessions, go ahead. If you want to cleanup a session, tell
the session manager to delete the hardlinks for that session,
and delete the originals yourself.

If you want an archive, tell the SM to copy all the 'external files'
directories. Session management can exist in parallel with normal 
filesystem activity.

And most importantly, never worry about those dreadful broken links...

But still I agree, on a more fundametal level, that hardlinks
are a bad idea.

lieven
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-30 Thread Rui Nuno Capela

On 03/30/2012 10:27 PM, Fons Adriaensen wrote:

On Fri, Mar 30, 2012 at 05:14:50PM -0400, Thomas Vecchione wrote:


Personally I prefer Ardour's behavior myself.  I do keep my samples on an
external drive, but in the end the ability to maintain a self-contained
session for portability purposes is important to me.


You always have that ability, even if you allow others not
to use it. And if you don't allow that, as Ardour does when
by chance it can, it's no longer an 'ability' but something
forced onto you.



On 03/30/2012 10:14 PM, Thomas Vecchione wrote:
 Personally I prefer Ardour's behavior myself.  I do keep my samples on
 an external drive, but in the end the ability to maintain a
 self-contained session for portability purposes is important to me.  But
 to each their own.


aha. this discussion may still be in flux and i believe it's all about 
session management and not whether each application native behavior is 
wrong or right. aham ;)


but ntl. let me see,

ardour stores a world under its own session directory on a per session 
basis. you may call it that way or project, song, collection, whatever 
is more appropriate. check.


otoh, qtractor doesn't do that but you (the human being) are in control, 
remenber? it's your choice anyway. and there's an exit option: you may 
chose anytime to save the whole (qtractor) session in a zip file 
container. in case you don't know, this is a pretty regular zip file 
(besides having an esquisite .qtz file suffix), just like 
(open|libre)office and .jar files are and, as far as my knowledge goes, 
are pretty portable stuff ;)


again, the subject at hand is about session management and whether huge 
or small external files are to get reported to the SM from 
applications in its way to collect, map(*) and possibly massage--my 
nomenclature here--a managed-session-repertoire.


(*) map: hashes, symlinks, hardlinks or whatever--it's a SM 
implementation detail anyhow


otherwise, i may be way off base (which is not that rare:^))

cheers
--
rncbc aka Rui Nuno Capela
rn...@rncbc.org
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] NSM - handling large files

2012-03-29 Thread Emanuel Rumpf
The discussion started, with the question about large files.

Keep it simple - store either files or links in the session folder ?
Why not ?

Some more opinions please.

-- 
E.R.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-29 Thread Emanuel Rumpf
Am 29. März 2012 15:34 schrieb Emanuel Rumpf xb...@web.de:


Back to life - back to reality

1. We start qtractor as part of a session, create some midi-tracks,
include some external wav-files.

Should the SM know about these external files, as I suggested ?
(Allowing the user to find out basic info about it. )
Or leave it completely to qtractor ?

2. We record a new file in qtractor. Where would it be stored ?

Should the SM know about this file ?

3. A session is duplicated.
How does the SM handle the recorded and external files =

4. A session is exported.
Jonathan said, current practice is a simple directory copy.
Well ! Simple and not bad at all.
But what about the external files ?
Just make some symlinks for them ?


-- 
E.R.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-29 Thread Rui Nuno Capela

On 03/29/2012 02:44 PM, Emanuel Rumpf wrote:


Back to life - back to reality

1. We start qtractor as part of a session, create some midi-tracks,
include some external wav-files.

Should the SM know about these external files, as I suggested ?
(Allowing the user to find out basic info about it. )
Or leave it completely to qtractor ?

2. We record a new file in qtractor. Where would it be stored ?

Should the SM know about this file ?

3. A session is duplicated.
How does the SM handle the recorded and external files =

4. A session is exported.
Jonathan said, current practice is a simple directory copy.
Well ! Simple and not bad at all.
But what about the external files ?
Just make some symlinks for them ?




indeed. real life that is :)

as far as qtractor is, all media content files, be that either audio or 
midi types, are ALL external files. it's true that some are created and 
edited under qtractor direct control, but they are all external. no 
exceptions.


otoh, a qtractor session file (xml) is a listing or a map of references 
(links, paths, whatever) to those external files as they are in the 
file-system. but no, never symlinks.


qtractor's session directory (aka. its own session folder) is just 
an user preference, a location where all newly created media files 
(again, audio or midi, recorded or scratch) are located first time they 
get into existence--do not ever confuse this with any portable session 
directory or folder in any way. in fact, you get serious trouble if you 
do so. although there's this qtractor session archive/zip bundle file 
format (.qtz) which serves that particular purpose but as an option and 
convenience (just like an independent, moveable, self-contained zip-folder)


external or not, all-media content file awareness from a foreseeable 
session management entity, being that big or small, central or not, is, 
if you ask me, utopian.


sure, it would certainly be a really-good-thing(tm) to make a session 
archive portable across file-systems, machine architectures or 
platforms, users, networks, you name it... it really seems like an 
all-in-one/knows-it-all goddess application if you ask me. yuck! a 
pipe-dream if i reckon one :)


otoh. now in particular, those GUI (file menu) restrictions that NSM is 
posing on applications is something i won't comply to any time soon, not 
even later. so sorry. it's way too restrictive to me and my own 
belongings. from what i read, applications must then be modified to run 
in either of two or more awful different session modes eg. managed and 
non-managed? for x-sake, as if we hadn't enough of that already... i am 
so sorry again, but such a design won't fly much above the grass in my 
lawn... it gives me the shivers o,O


but that maybe just a first glance pov. don't take it final

however ;) imho, the SM should only know about application instances 
that are part of the so-called session, their state of which only each 
application knows about their own, or so i believe, _and_ the means to 
recall that collected set of states later on. if that state is described 
by a set of files, so be it. let's name it state-data-files, or just 
call it _internal_ files perhaps?


more. a session manager (or its protocol spec) should not touch any, any 
at all, of the external (media content?) files that each application are 
possibly working on during their life span.


under the so called session's -folder (or -directory, if you prefer) 
there should be _only_ stored the state-data-files that pertain to each 
participant application. you guess it right, that's the state of each 
participating application instance at the time of the eventual 
save-this-session-now! command gets issued (a-la snapshot). and add to 
that the inter-connection state file(s) as it will be certainly the job 
of the SM to gather too. jack-session does this kind of stuff.


now back to square one. to make that whole session state, folder or 
directory, as an archival portable one is, quite frankly and imho again, 
utopian. nuff said :) but (oh no, not again), as a clever guy once said, 
the impossible turns out to be possible when there's someone foolish 
enough to do it ;)


my 2c
--
rncbc aka Rui Nuno Capela
rn...@rncbc.org
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-29 Thread Fons Adriaensen
On Thu, Mar 29, 2012 at 10:23:30PM +0100, Rui Nuno Capela wrote:

 otoh. now in particular, those GUI (file menu) restrictions that NSM is  
 posing on applications is something i won't comply to any time soon, not  
 even later. so sorry. it's way too restrictive to me and my own  
 belongings. from what i read, applications must then be modified to run  
 in either of two or more awful different session modes eg. managed and  
 non-managed? for x-sake, as if we hadn't enough of that already... i am  
 so sorry again, but such a design won't fly much above the grass in my  
 lawn... it gives me the shivers o,O

You can't expect *any* session management system to work in
a reliable way without those rules. That's simple, basic, and
fairly easy to grok logic. The consequences of an app ignoring
this could be far more damaging than those of a user willingly
and knowingly keeping some data 'external'. And they will hit
the average user who doesn't even think about doing such things
and who expects his SM to just work.

Taking these rules into account is no big deal anyway. At least
not if your app has a clean control structure.

Again, the fact that the designer(s) of NSM have clearly stated
these rules is a sign that he/she/they know what is involved, and
has/have the courage to say this instead of going 'the easy way'.


Ciao,

-- 
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-29 Thread Rui Nuno Capela

On 03/29/2012 10:45 PM, Fons Adriaensen wrote:

On Thu, Mar 29, 2012 at 10:23:30PM +0100, Rui Nuno Capela wrote:


otoh. now in particular, those GUI (file menu) restrictions that NSM is
posing on applications is something i won't comply to any time soon, not
even later. so sorry. it's way too restrictive to me and my own
belongings. from what i read, applications must then be modified to run
in either of two or more awful different session modes eg. managed and
non-managed? for x-sake, as if we hadn't enough of that already... i am
so sorry again, but such a design won't fly much above the grass in my
lawn... it gives me the shivers o,O


You can't expect *any* session management system to work in
a reliable way without those rules. That's simple, basic, and
fairly easy to grok logic. The consequences of an app ignoring
this could be far more damaging than those of a user willingly
and knowingly keeping some data 'external'. And they will hit
the average user who doesn't even think about doing such things
and who expects his SM to just work.

Taking these rules into account is no big deal anyway. At least
not if your app has a clean control structure.

Again, the fact that the designer(s) of NSM have clearly stated
these rules is a sign that he/she/they know what is involved, and
has/have the courage to say this instead of going 'the easy way'.



well, you're probably right. i'm sure you are :)

only so like that he rules are telling me that i must code my 
application to run in at least two different modes: one (NSM-)managed 
and the other non-managed--often the original intended one


which one will it be? i ask: when will the user gets to run the 
application in which mode? or is that telling us that all applications 
should then be started under a totalitarian ruler as in NSM 
auspices?... oops. just i read the interesting part cf. 
http://non.tuxfamily.org/nsm/#n:1.1.1.7. Add Client, and yeah, really 
scary now... f7u12!


i may say now that people will be always welcome to patch (my) software, 
anytime ;)


cheers
--
rncbc aka Rui Nuno Capela
rn...@rncbc.org
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-29 Thread David Robillard
On Thu, 2012-03-29 at 22:23 +0100, Rui Nuno Capela wrote:
 now back to square one. to make that whole session state, folder or 
 directory, as an archival portable one is, quite frankly and imho again, 
 utopian. nuff said :)

It's indeed utopian to think that some centralized special magic program
and protocol and file format and whatever else will actually get
universally adopted.

However, files and directories and links are anything but
unrealistically utopian.  That's my point.

With all due respect, Emanuel, you can see here what happens when you
make a big complicated mess out of things and try to ram technology down
implementer's throats without justification: they simply reject it
outright as a utopian fantasy.

Achieving archival/etc is *trivial* without any fancy/annoying session
management crap whatsoever.  If apps want to save in a way that prevents
it, they will always be able to, however if they do, there is *one*
simple rule that makes *all* the mentioned functionality possible that
has nothing to do with any specific session manager API/protocol/file
formats/etc whatsoever:

 * All references to files outside the session directory must be a
symlink to that file

That's it.  No APIS, no protocols, no session manager file stores, no
redundant data that may not match reality, no egregious rules.  There's
not even a requirement for a session manager to be involved whatsoever,
if an app saves this way independently you can archive its sessions with
tar or whatever just the same.  If you did want a fancy GUI archival
tool that reports what files are used and whatever else, you could write
one, and it wouldn't even depend on the session manager at all - and I
don't mean it would loosely depend on it by only using OSC or whatever,
I mean it would not depend on it *at all*, nor would it depend on any
file format[1].  All even vaguely common languages have everything
required in their standard library, right now.  All of that Just
Works-eyness is because it's a simple idea, and doesn't use anything
that hasn't been baked in to the OS for literally decades.  It doesn't
get much less unrealistically utopian than this.

Erecting some fantastic non-existent architecture to achieve, in one
special circumstance, what this simple rule does, is a folly doomed for
failure.  To really distill it down, since we're on a reality trip:
you can either try to get people to adopt this convention, or you can
not have archivable/distributable sessions.  There is no option C.

That said, if I'm overlooking something, do tell (i.e. why, exactly, is
this simple plan not sufficient?), because from where I'm standing it's
a real mystery why we are acting like this is so damned complicated.

It's not.  At all.

-dr

[1] Try to sell any file format to this crowd and see how far you get...

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-29 Thread J. Liles
On Thu, Mar 29, 2012 at 4:40 PM, David Robillard d...@drobilla.net wrote:
 On Thu, 2012-03-29 at 22:23 +0100, Rui Nuno Capela wrote:
 now back to square one. to make that whole session state, folder or
 directory, as an archival portable one is, quite frankly and imho again,
 utopian. nuff said :)

 It's indeed utopian to think that some centralized special magic program
 and protocol and file format and whatever else will actually get
 universally adopted.

 However, files and directories and links are anything but
 unrealistically utopian.  That's my point.

 With all due respect, Emanuel, you can see here what happens when you
 make a big complicated mess out of things and try to ram technology down
 implementer's throats without justification: they simply reject it
 outright as a utopian fantasy.

 Achieving archival/etc is *trivial* without any fancy/annoying session
 management crap whatsoever.  If apps want to save in a way that prevents
 it, they will always be able to, however if they do, there is *one*
 simple rule that makes *all* the mentioned functionality possible that
 has nothing to do with any specific session manager API/protocol/file
 formats/etc whatsoever:

  * All references to files outside the session directory must be a
 symlink to that file

 That's it.  No APIS, no protocols, no session manager file stores, no
 redundant data that may not match reality, no egregious rules.  There's
 not even a requirement for a session manager to be involved whatsoever,
 if an app saves this way independently you can archive its sessions with
 tar or whatever just the same.  If you did want a fancy GUI archival
 tool that reports what files are used and whatever else, you could write
 one, and it wouldn't even depend on the session manager at all - and I
 don't mean it would loosely depend on it by only using OSC or whatever,
 I mean it would not depend on it *at all*, nor would it depend on any
 file format[1].  All even vaguely common languages have everything
 required in their standard library, right now.  All of that Just
 Works-eyness is because it's a simple idea, and doesn't use anything
 that hasn't been baked in to the OS for literally decades.  It doesn't
 get much less unrealistically utopian than this.

 Erecting some fantastic non-existent architecture to achieve, in one
 special circumstance, what this simple rule does, is a folly doomed for
 failure.  To really distill it down, since we're on a reality trip:
 you can either try to get people to adopt this convention, or you can
 not have archivable/distributable sessions.  There is no option C.

 That said, if I'm overlooking something, do tell (i.e. why, exactly, is
 this simple plan not sufficient?), because from where I'm standing it's
 a real mystery why we are acting like this is so damned complicated.

 It's not.  At all.

 -dr

 [1] Try to sell any file format to this crowd and see how far you get...

I absolutely agree on this point. In fact, referring to external files
in this way is now on my TODO list for Non-DAW.

Currently, when you drag n' drop an external audio file into a Non-DAW
timeline (as opposed to recording it from within Non-DAW), the file
remains external with its path recorded
in the project's journal. Using a symlink for this would be better in
*at least* the following two ways:

1) Allows archiving scripts etc. to discover and import the external
source *without having to understand the Non-DAW journal format*
2) It would allow Non-DAW to import external sources *without having
to update (or break) any existing references*

I cannot imagine any argument that could propose that these are bad things.

If all Linux Audio software dealt with external references in this
way, archiving/export would be much less problematic.

However, I would also like to offer an interesting little statistic...
I, personally, have hundreds of projects representing terabytes of
data, and in all that I don't have a single project which refers to
anything external to its project directory. This is something that
only effects certain users who make extensive use of sound-clip or
sample libraries. Not people who just do plain old
recording/synthesis/mixing. So let's try not to make a mountain out of
a mole hill. What is the actual percentage of users who have
references to external files *and* a strong need to export their
sessions? I suspect that it is in fact a very low number.

Furthermore, in addition to the plain old symlinks, a truly robust
solution might also store e.g. SHA1 hashes of external files, so that
any mismatch is detectable.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] NSM - handling large files

2012-03-29 Thread J. Liles
On Thu, Mar 29, 2012 at 2:23 PM, Rui Nuno Capela rn...@rncbc.org wrote:

 indeed. real life that is :)

 as far as qtractor is, all media content files, be that either audio or midi
 types, are ALL external files. it's true that some are created and edited
 under qtractor direct control, but they are all external. no exceptions.

 otoh, a qtractor session file (xml) is a listing or a map of references
 (links, paths, whatever) to those external files as they are in the
 file-system. but no, never symlinks.

 qtractor's session directory (aka. its own session folder) is just an
 user preference, a location where all newly created media files (again,
 audio or midi, recorded or scratch) are located first time they get into
 existence--do not ever confuse this with any portable session directory or
 folder in any way. in fact, you get serious trouble if you do so. although
 there's this qtractor session archive/zip bundle file format (.qtz) which
 serves that particular purpose but as an option and convenience (just like
 an independent, moveable, self-contained zip-folder)

Are you saying that qtractor stores all audio and MIDI files that it
creates in one central folder? That seems quite bizarre. What is the
justification for doing that? How does it benefit the user?

 external or not, all-media content file awareness from a foreseeable
 session management entity, being that big or small, central or not, is, if
 you ask me, utopian.

It isn't utopian if one follows David's scheme. A file is a file is a
file (is a symlink). Instead of storing a path to the external file,
create an internal symlink to it and store the path to the symlink
instead. Simple and it allows *any* tool to find *all* of the external
data referred to by a session.

 sure, it would certainly be a really-good-thing(tm) to make a session
 archive portable across file-systems, machine architectures or platforms,
 users, networks, you name it... it really seems like an
 all-in-one/knows-it-all goddess application if you ask me. yuck! a
 pipe-dream if i reckon one :)

Well, I certainly agree that the actual need for this kind of
functionality is probably being overestimated.

 otoh. now in particular, those GUI (file menu) restrictions that NSM is
 posing on applications is something i won't comply to any time soon, not
 even later. so sorry. it's way too restrictive to me and my own belongings.
 from what i read, applications must then be modified to run in either of two
 or more awful different session modes eg. managed and non-managed? for
 x-sake, as if we hadn't enough of that already... i am so sorry again, but
 such a design won't fly much above the grass in my lawn... it gives me the
 shivers o,O

 but that maybe just a first glance pov. don't take it final

The point of those guidelines is to allow users to know *exactly* what
behavior they can expect.

The chief difficulty I had with implementing LASH support in programs
was that there was no answer as to what 'Save', 'Open', 'New', etc.
should do when running under LASH. Left, as is, the effect of these
operations would vary depending on how individual applications store
their state (whether fully in RAM, in a fixed location on disk, etc.).
This scenario is an absolute nightmare for both implementers and
users. If following a few simple rules to disable certain menu options
is enough to remove this ambiguity entirely, then why is that so hard
for you to accept? Do you *want* to make things ambiguous and
impossible to predict? I know I don't. The rules are not there to be
draconian and imposing--They are there to allow people to have
confidence in what running under session management means regarding
where their data is stored.

 however ;) imho, the SM should only know about application instances that
 are part of the so-called session, their state of which only each
 application knows about their own, or so i believe, _and_ the means to
 recall that collected set of states later on. if that state is described by
 a set of files, so be it. let's name it state-data-files, or just call it
 _internal_ files perhaps?

I'm not sure what you mean, but to me it is obvious that only programs
which are connected to the session manager are subject to its control.

 more. a session manager (or its protocol spec) should not touch any, any at
 all, of the external (media content?) files that each application are
 possibly working on during their life span.

Of course it shouldn't.

 under the so called session's -folder (or -directory, if you prefer) there
 should be _only_ stored the state-data-files that pertain to each
 participant application. you guess it right, that's the state of each
 participating application instance at the time of the eventual
 save-this-session-now! command gets issued (a-la snapshot). and add to
 that the inter-connection state file(s) as it will be certainly the job of
 the SM to gather too. jack-session does this kind of stuff.

That's the idea... Except that 

Re: [LAD] NSM - handling large files

2012-03-29 Thread David Robillard
On Thu, 2012-03-29 at 18:29 -0700, J. Liles wrote:
[...]
 Currently, when you drag n' drop an external audio file into a Non-DAW
 timeline (as opposed to recording it from within Non-DAW), the file
 remains external with its path recorded
 in the project's journal. Using a symlink for this would be better in
 *at least* the following two ways:
 
 1) Allows archiving scripts etc. to discover and import the external
 source *without having to understand the Non-DAW journal format*
 2) It would allow Non-DAW to import external sources *without having
 to update (or break) any existing references*
 
 I cannot imagine any argument that could propose that these are bad things.

Me neither.  Well, not a good one, anyway :)

 If all Linux Audio software dealt with external references in this
 way, archiving/export would be much less problematic.

Yep.  I arrived at this via the experience of actually doing it - a
special magic solution seems feasible when you've got blinders on and
are just thinking about an SM program, but when you realize this can
cross-cut all the way from inside a generic library for loading standard
file(s) formats, through a plugin, through the host, through the session
manager, it's clear links are the only way.  It can be hard enough to
get saving right *without* making the load all weird.

It's not a YOU MUST DO THIS FOR NON SESSION MANAGER, it's a you
should do this because it makes external file references manageable

 However, I would also like to offer an interesting little statistic...
 I, personally, have hundreds of projects representing terabytes of
 data, and in all that I don't have a single project which refers to
 anything external to its project directory. This is something that
 only effects certain users who make extensive use of sound-clip or
 sample libraries. Not people who just do plain old
 recording/synthesis/mixing. So let's try not to make a mountain out of
 a mole hill. What is the actual percentage of users who have
 references to external files *and* a strong need to export their
 sessions? I suspect that it is in fact a very low number.

Certainly true for recorded audio files, sharing those between programs
is pretty esoteric (and if you're doing it, as Fons says, you know what
you're doing anyway).  In the greater scheme of things, though, using
sample banks and such is certainly not nichey.
 
When you do work with such things, it really sucks to not have a
reliable way to roll up a finished piece so it will actually work in the
future.

Plus, being able to easily share full sessions and collaborate and stuff
is cool and open sourcey :)

 Furthermore, in addition to the plain old symlinks, a truly robust
 solution might also store e.g. SHA1 hashes of external files, so that
 any mismatch is detectable.

Good idea.  Certainly can't hurt to know, though computing a hash of
some files might be extremely expensive...

-dr

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev