{"id":27915089,"url":"https://github.com/jackaudio/new-session-manager","last_synced_at":"2025-05-06T15:34:08.145Z","repository":{"id":50906675,"uuid":"256801658","full_name":"jackaudio/new-session-manager","owner":"jackaudio","description":"Assists music production by grouping standalone programs into sessions. Community version of \"Non Session Manager\".","archived":false,"fork":false,"pushed_at":"2022-10-12T22:19:17.000Z","size":12264,"stargazers_count":77,"open_issues_count":20,"forks_count":10,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-03-26T07:26:09.828Z","etag":null,"topics":["jackaudio","linuxaudio","midi","nsm","session-management"],"latest_commit_sha":null,"homepage":"https://new-session-manager.jackaudio.org","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jackaudio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-18T16:33:31.000Z","updated_at":"2023-11-26T17:35:06.000Z","dependencies_parsed_at":"2022-08-12T22:11:40.761Z","dependency_job_id":null,"html_url":"https://github.com/jackaudio/new-session-manager","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackaudio%2Fnew-session-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackaudio%2Fnew-session-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackaudio%2Fnew-session-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackaudio%2Fnew-session-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jackaudio","download_url":"https://codeload.github.com/jackaudio/new-session-manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252713131,"owners_count":21792427,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jackaudio","linuxaudio","midi","nsm","session-management"],"created_at":"2025-05-06T15:34:07.512Z","updated_at":"2025-05-06T15:34:08.133Z","avatar_url":"https://github.com/jackaudio.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# New Session Manager\n\n## Introduction\n\nNew Session Manager (NSM) is a tool to assist music production by grouping standalone programs into\nsessions. Your workflow becomes easy to manage, robust and fast by leveraging the full potential of\ncooperative applications.\n\nNSM continues to be free in every sense of the word: free of cost, free to share and use, free of\nspyware or ads, free-and-open-source.\n\nYou can create a session, or project, add programs to it and then use commands to save, start/stop,\nhide/show all programs at once, or individually. At a later date you can then re-open the session\nand continue where you left off.\n\nAll files belonging to the session will be saved in the same directory.\n\nIf you are a user (and not a programmer or packager) everything you need is to install NSM\nthrough your distributions package manager and, highly recommended, Agordejo as a GUI (see below).\n\nTo learn NSM you don't need to know the background information from our documentation, which\nis aimed at developers that want to implement NSM support in their programs. Learn the GUI,\nnot the server and protocol.\n\n\n## Bullet Points\n* Drop-In replacement for the non-session-manager daemon nsmd and tools (e.g. jackpatch)\n* Simple and hassle-free build system to make packaging easy\n* Possibility to react to sensible bug fixes that would not have been integrated original nsmd\n* Stay upwards and downwards compatible with original nsmd\n* Conservative and hesitant in regards to new features and behaviour-changes, but possible in principle\n* Keep the session-manager separate from the other NON* tools Mixer, Sequencer and Timeline.\n* Protect nsmd from vanishing from the internet one day.\n* The goal is to become the de-facto standard music session manager for Linux distributions\n\n## User Interface\nIt is highly recommended to use Agordejo ( https://www.laborejo.org/agordejo/ ) as graphical\nuser interface. In fact, if you install Agordejo in your distribution it will install NSM as\ndependency and you don't need to do anything yourself with this software package.\n\nThis repository also contains the legacy FLTK interface simply called `nsm-legacy-gui`,\nsymlinked to `non-session-manager` for backwards compatibility. (e.g. autostart scripts etc.)\n\n## Supported Clients\n\nWhile NSM can start and stop any program it only becomes convenient if clients specifically\nimplement support. This enables saving and hiding the GUI, amongst other features.\nDocumentation and tutorials for software-developers will be added at a later date.\n\n## Documentation and Manual\n\nOur documentation contains the API specification for the NSM protocol, which is the central document\nif you want to add NSM support to your own application.\n\nYou can find html documentation installed to your systems SHARE dir or docs/out/index.html in this\nrepository.\nThere is also an online version https://jackaudio.github.io/new-session-manager/\n\nWe also provide a set of manpages for each executable (see Build).\n\n\n## Fork and License\nThis is a fork of non-session-manager, by Jonathan Moore Liles \u003cmale@tuxfamily.net\u003e http://non.tuxfamily.org/\nwhich was released under the GNU GENERAL PUBLIC LICENSE  Version 2, June 1991.\n\nAll files, except nsm.h kept in this fork were GPL \"version 2 of the License, or (at your\noption) any later version.\"\n\n`nsm.h` is licensed under the ISC License.\n\nNew-Session-Manager changed the license to GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007.\nSee file COPYING\n\nDocumentation in docs/ is licensed Creative Commons CC-By-Sa.\nIt consist of mostly generated files and snippet files which do not have a license header for\ntechnical reasons.\nAll original documentation source files are CC-By-Sa Version v4.0 (see file docs/src/LICENSE),\nthe source file docs/src/api/index.adoc is a derived work from NON-Session-Managers API file which\nis licensed CC-By-Sa v2.5. Therefore our derived API document is also CC-By-Sa v2.5\n(see files docs/src/api/readme.txt and docs/src/api/LICENSE)\n\n\n## Build\nThe build system is meson.\n\nThis is a software package that will compile and install multiple executables:\n* `nsmd`, the daemon or server itself. It is mandatory.\n  * It has no GUI.\n  * Dependency is `liblo`, the OSC library.\n* `jackpatch`, NSM client to save and remember JACK connections.\n  * It has no GUI.\n  * Dependencies are `JACK Audio Connection Kit` and `liblo`, the OSC library.\n  * Can be deactivated (see below) `-Djackpatch=false`\n* `nsm-legacy-gui`, Legacy GUI for the user\n  * Formerly known as \"non-session-manager\"\n  * Dependencies are `FLTK`\u003e=v1.3.0 and `liblo`, the OSC library.\n  * Can be deactivated (see below) `-Dlegacy-gui=false`\n* `nsm-proxy`, NSM GUI Client to run any program without direct NSM support\n  * Dependencies are `FLTK`\u003e=v1.3.0, `fluid` (FLTK Editor/compiler, maybe in the same package as FLTK, maybe not) and `liblo`, the OSC library.\n  * Can be deactivated (see below) `-Dnsm-proxy=false`\n\n\n```\nmeson build --prefix=/usr\n#or disable individual build targets:\n#meson build --prefix=/usr -Dlegacy-gui=false -Dnsm-proxy=false -Djackpatch=false\ncd build \u0026\u0026 ninja\nsudo ninja install\n```\n\nOptionally you can skip `sudo ninja install` and run all executables from the build-dir.\nIn this case you need to add the build-dir to your PATH environment variable so that the tools\ncan find each other.\n\n## Names of Executable Files and Symlinks\n\nSome distributions (and possibly local laws) prevent a forked software project from creating\nexecutable files under the same name, if the name itself is an original work subject to copyright,\nwhich it arguably is for the \"NON-\"-suite. Therefore New Session Manager renamed\n`non-session-manager` to `nsm-legacy-gui`. Installing will also create a symlink to\n`non-session-manager` for backwards compatibility. (e.g. autostart scripts etc.).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackaudio%2Fnew-session-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjackaudio%2Fnew-session-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackaudio%2Fnew-session-manager/lists"}