Cadence
Cadence copied to clipboard
Claudia NSM support?
Is NSM support planned or wanted for Claudia?
I'd like to add something to this as I (had, but not anymore through this suggestion) the plan of reviving the slowly dying ladish.
I think going NSM would be a good step and want to share my ideas on how this could be supported.
NSM essentially splits ladish into two things:
-
jackpatch
for storing/restoring the jack links -
nsmd
for the actual session management
By this system, Cadence support for NSM would essentially be:
- drop
claudia
,jackpatch
takes information directly from jack socatia
is sufficient
or
embedcatia
intoclaudia
(or even better, do NSM detection incatia
) with the side bar showing the sessions and programs registered to NSM - add the ability to load NSM sessions in
cadence
so NSM can properly restore aftercadence
startsjack
(jackpatch
does not startjackdbus
, nor should it) - alter
claudia-launcher
to support adding programs to NSM through OSC
NSM support in Claudia is not planned, nor will it happen. Claudia is 100% just a frontend for ladish, a copy of gladish with some little extra things on top.
Catia will not do any session management, on purpose. The addition of bridges in there is already too much I think, making it confusing vs other tools in Cadence. I want to leave Catia as barebones as possible.
Automatically loading NSM session on start is a good idea, like we have now for ladish studios. But I am not sure how to detect this, I did not do any investigation.
Changing claudia-launcher to add applications to a running NSM session is a good idea as well, but again I am not sure how to do this yet. Perhaps not possible
Last few days I've been playing around with NSM a bit which have given me the following input:
-
There's the general NSM osc protocol which allows basic session management like adding programs, listing the current sessions and starting one. This would be sufficient for cadence.
-
Detection of NSM is by checking validity of NSM_URL environment variable and getting a response from it so a simple "/nsm/session/list" to NSM_URL would be sufficient to both populate the list and detect whether it's running
-
Adding programs to a session is as simple as starting the respective NSM aware program, as they should auto register with the session according to the protocol
-
nsm-proxy
integration, however, might be more difficult due tonsmd
only providing details of launching programs to thenon-session-manager
gui. -
also
nsmd
will only bind to a single gui, so this should be the frontend. (an alternative would be to modifynsmd
to support multiple guis running at the same time.
Given your input, I would suggest:
- A new tool, name yet to be decided but probably starting with a C which embeds/reuses
catia
but combines it with a session overview on the side. This would simplify the code of this tool to just session management ascatia
is embedded for the patching part. Catia would not have to be changed and claudia can remain as is. - This tool implements the /nsm/gui/* osc endpoint to receive more details about the session which allow it to give a view of the current session
-
claudia-launcher
simply starts nsm aware tools or ansm-proxy
when they are not natively supporting nsm, in a similar fashion to how it's done with ladish level 0 or 1- either by starting
nsm-proxy
throughnsmd
and talking to thensm-proxy
directly over its gui protocol - or by supplying arguments directly to
nsm-proxy
by starting it without help ofnsmd
but exporting the NSM_URL tonsm-proxy
- either by starting
The latter option might need tweaking of nsm-proxy, or a replacement for nsm-proxy
Unless you have any objections, I would like to start on cadence first, to get auto starting sessions. And next clone claudia as starting point for the newer gui. After that, surely some input on the best approach regarding the launcher is given and can be implemented.
I have implemented basic NSM support to Cadence now:
https://github.com/dsonck92/Cadence/tree/nsm-support
It allows starting NSM if not started, load a NSM session after jack has started and the ability to start NSM from the Cadence GUI. I'll gradually add the features described as far as it's possible.
Now that LADISH is for all intents and purposes dead, NSM support is more relevant than ever.
Right now, I have to jerry-rig my system every time it starts, using NSM to start CalfJackHost and Non-Mixer, and Catia to connect them with Alsa and Pulseaudio. Would be great, if I didn't have to connect them manually.