- 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 NsmPatches for patches to add NSM support to existing programs, and ApplicationsSupportingNsm for a list of applications that include NSM support in their releases.
See NsmVideos for some links to screencasts about NSM.
Note: This is the official NSM project. If you got something called "NSM" from somewhere else, either a distribution package or from project whose full name is not "Non Session Manager," or which purports to be developed and maintained by someone other than Jonathan Moore Liles, then you've got something of dubious provenance and unassured quality. Beware counterfeits and impostors.
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 Hilbricht has written a pure Python client implementation. It can be found on github here: https://github.com/diovudau/pynsm2
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