- IRC #non at irc.freenode.net
The Non Session Manager is an API and an implementation for session management in the context of Linux Audio. NSM clients use a well-specified OSC protocol to communicate with the session management daemon.
See NsmVideos for some links to screencasts about NSM.
NSM does not depend directly on JACK or any other audio subsystem. This means that ALSA or OSS only applications, non-audio applications, or applications using as-yet unknown audio subsystems may participate in a session.
Saving/restoring the JACK connection graph is accomplished by the (included) JackPatch client.
NSM clients are required to store all project data in a location known to the user. The user should always know where all the data for a session is. Sessions can be archived with simple tools like 'tar'.
NSM is the only session manager to support distrubuted sessions across multiple hosts, controllable via a single interface.
NSM compliant clients must present a uniform project control interface to the user. The meaning of 'save', etc. under session management is unambiguous.
NSM does not require client applications to link to any library. It only requires that they implement the published OSC API, using their choice of OSC library.
Smart clients are able to switch projects without restarting. This vastly improves project switching times between sessions which utilize the same clients.
Sessions are organized as-named on disk in a heirarchical structure (i.e. Albums/My Album Foo/Final Mix of Bar) and can be managed (deleted, renamed, copied, etc.) with any file-manager.
The NSM UI is simple and fast.
Clients can report status information to NSM, including loading/saving progress.
Don't like the NSM UI? You can build your own and communicate with the server via a simple OSC protocol.
A server implementation and some helpful clients are included in the Non distribution. Please refer to the User Manual
The file nonlib/nsm.h represents a reference implementation of the client interface in the form of a single C header file (permissively licensed) which can be copied into your project's source tree.
Nils Gey has written a pure Python client implementation using pyliblo. It can be found on github here: pynsmclient
The NSM API is formally described here
The following libraries are required to build Non Session Manager.
This work is licensed under a Creative Commons License