Skip to content
This repository has been archived by the owner on Aug 21, 2023. It is now read-only.

Claudia NSM support? #142

Open
kroll-j opened this issue Jan 5, 2017 · 5 comments
Open

Claudia NSM support? #142

kroll-j opened this issue Jan 5, 2017 · 5 comments

Comments

@kroll-j
Copy link

kroll-j commented Jan 5, 2017

Is NSM support planned or wanted for Claudia?

@dsonck92
Copy link

dsonck92 commented Jan 8, 2019

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 so catia is sufficient
    or
    embed catia into claudia (or even better, do NSM detection in catia) 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 after cadence starts jack (jackpatch does not start jackdbus, nor should it)
  • alter claudia-launcher to support adding programs to NSM through OSC

@falkTX
Copy link
Owner

falkTX commented Jan 12, 2019

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

@dsonck92
Copy link

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 to nsmd only providing details of launching programs to the non-session-manager gui.

  • also nsmd will only bind to a single gui, so this should be the frontend. (an alternative would be to modify nsmd 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 as catia 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 a nsm-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 through nsmd and talking to the nsm-proxy directly over its gui protocol
    • or by supplying arguments directly to nsm-proxy by starting it without help of nsmd but exporting the NSM_URL to nsm-proxy

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.

@dsonck92
Copy link

dsonck92 commented Jan 24, 2019

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.

@Metalhead33
Copy link

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants