Assists music production by grouping standalone programs into sessions. Community version of "Non Session Manager".
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 5.7KB

2 years ago
2 years ago
2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. # New Session Manager
  2. ## Introduction
  3. New Session Manager (NSM) is a tool to assist music production by grouping standalone programs into sessions.
  4. Your workflow becomes easy to manage, robust and fast by leveraging the full potential of cooperative applications.
  5. It is a community version of the "NON Session Manager" and free in every sense of the word:
  6. free of cost, free to share and use, free of spyware or ads, free-and-open-source.
  7. You can create a session, or project, add programs to it and then use commands to save, start/stop,
  8. hide/show all programs at once, or individually. At a later date you can then re-open the session
  9. and continue where you left off.
  10. All files belonging to the session will be saved in the same directory.
  11. If you are a user (and not a programmer or packager) everything you need is to install NSM
  12. through your distributions package manager and, highly recommended, Agordejo as a GUI (see below).
  13. To learn NSM you don't need to know the background information from our documentation, which
  14. is aimed at developers that want to implement NSM support in their programs. Learn the GUI,
  15. not the server and protocol.
  16. ## Bullet Points
  17. * Drop-In replacement for the non-session-manager daemon nsmd and tools (e.g. jackpatch)
  18. * Simple and hassle-free build system to make packaging easy
  19. * Possibility to react to sensible bug fixes that would not have been integrated original nsmd
  20. * Stay upwards and downwards compatible with original nsmd
  21. * Conservative and hesitant in regards to new features and behaviour-changes, but possible in principle
  22. * Keep the session-manager separate from the other NON* tools Mixer, Sequencer and Timeline.
  23. * Protect nsmd from vanishing from the internet one day.
  24. * The goal is to become the de-facto standard music session manager for Linux distributions
  25. ## User Interface
  26. It is highly recommended to use Agordejo ( https://www.laborejo.org/agordejo/ ) as graphical
  27. user interface. In fact, if you install Agordejo in you distribution it will install NSM as
  28. dependency and you don't need to do anything yourself with this software package.
  29. This repository also contains the legacy FLTK interface simply called `nsm-legacy-gui`,
  30. symlinked to `non-session-manager` for backwards compatibility. (e.g. autostart scripts etc.)
  31. ## Supported Clients
  32. While NSM can start and stop any program it only becomes convenient if clients specifically
  33. implement support. This enables saving and hiding the GUI, amongst other features.
  34. Documentation and tutorials for software-developers will be added at a later date.
  35. ## Documentation and Manual
  36. Our documentation contains the API specification for the NSM protocol, which is the central document
  37. if you want to add NSM support to your own application.
  38. You can find html documentation installed to your systems SHARE dir or docs/out/index.html in this
  39. repository.
  40. There is also an online version https://linuxaudio.github.io/new-session-manager/
  41. We also provide a set of manpages for each executable (see Build).
  42. ## Fork and License
  43. This is a fork of non-session-manager, by Jonathan Moore Liles <male@tuxfamily.net> http://non.tuxfamily.org/
  44. which was released under the GNU GENERAL PUBLIC LICENSE Version 2, June 1991.
  45. All files, except nsm.h kept in this fork were GPL "version 2 of the License, or (at your
  46. option) any later version."
  47. `extras/nsm.h/nsm.h` is licensed under the ISC License.
  48. New-Session-Manager changed the license to GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007.
  49. See file COPYING
  50. Documentation in docs/ is licensed Creative Commons CC-By-Sa.
  51. It consist of mostly generated files and snippet files which do not have a license header for
  52. technical reasons.
  53. All original documentation source files are CC-By-Sa Version v4.0 (see file docs/src/LICENSE),
  54. the source file docs/src/api/index.adoc is a derived work from NON-Session-Managers API file which
  55. is licensed CC-By-Sa v2.5. Therefore our derived API document is also CC-By-Sa v2.5
  56. (see files docs/src/api/readme.txt and docs/src/api/LICENSE)
  57. ## Build
  58. The build system is meson.
  59. This is a software package that will compile and install multiple executables:
  60. * `nsmd`, the daemon or server itself. It is mandatory.
  61. * It has no GUI.
  62. * Dependency is `liblo`, the OSC library.
  63. * `jackpatch`, NSM client to save and remember JACK connections.
  64. * It has no GUI.
  65. * Dependencies are `JACK Audio Connection Kit` and `liblo`, the OSC library.
  66. * Can be deactivated (see below) `-Djackpatch=false`
  67. * `nsm-legacy-gui`, Legacy GUI for the user
  68. * Formerly known as "non-session-manager"
  69. * Dependencies are `FLTK`>=v1.3.0 and `liblo`, the OSC library.
  70. * Can be deactivated (see below) `-Dlegacy-gui=false`
  71. * `nsm-proxy`, NSM GUI Client to run any program without direct NSM support
  72. * Dependencies are `FLTK`>=v1.3.0, `fluid` (FLTK Editor/compiler, maybe in the same package as FLTK, maybe not) and `liblo`, the OSC library.
  73. * Can be deactivated (see below) `-Dnsm-proxy=false`
  74. ```
  75. meson build --prefix=/usr
  76. #or disable individual build targets:
  77. #meson build --prefix=/usr -Dlegacy-gui=false -Dnsm-proxy=false -Djackpatch=false
  78. cd build && ninja
  79. sudo ninja install
  80. ```
  81. Optionally you can skip `sudo ninja install` and run all executables from the build-dir.
  82. In this case you need to add the build-dir to your PATH environment variable so that the tools
  83. can find each other.
  84. ## Names of Executable Files and Symlinks
  85. Some distributions (and possibly local laws) prevent a forked software project from creating
  86. executable files under the same name, if the name itself is an original work subject to copyright,
  87. which it arguably is for the "NON-"-suite. Therefore New Session Manager renamed
  88. `non-session-manager` to `nsm-legacy-gui`. Installing will also create a symlink to
  89. `non-session-manager` for backwards compatibility. (e.g. autostart scripts etc.).