Replies: 5 comments 10 replies
-
Hi. Thanks for the request. That's surely a feature which would be good. I vaguely remember there was a discussion about that saying that it was a bit tricky as the client levels are stored in the GUI and the server doesn't support sending fader levels back at the moment. |
Beta Was this translation helpful? Give feedback.
-
Yep. Currently there is far too much state held in the GUI (mostly client-side, some server-side). None should be there - it should all be in the underlying CClient etc code rather than CClientDlg etc code. The fader positions and checkboxes are pure UI - adjusting triggers requests to send levels to the server and the server sends back current state (i.e. when you connect) that's displayed. |
Beta Was this translation helpful? Give feedback.
-
Looking at some other projects, ELK for example, looks like they are doing something with gRPC and OSC. |
Beta Was this translation helpful? Give feedback.
-
Hi! I would like to revive this discussion. Used Jamulus r3.9 (as provided by Debian 12 Bookworm) I have been able to integrate a lot of functionality with Zynthian (a Raspberry Pi based audio device). Using MIDI CC control of each channel provides adequate (but not perfect - no feedback) control. Using JSON-RPC provides a little extra control and some monitoring allowing display of connected users, metering, etc. This integration is almost good enough but there are some features missing to provide the full (or at least substantial) experience. Through other integrations, e.g. PianoTeq I have discovered that JSON-RPC is suboptimal for rapid access so the MIDI control is currently a good option. I would love to see OSC control and monitoring added. (I may one day be tempted to submit a PR for this!) The most notable is access to server lists / directories. Lists of public servers are availble in the GUI during the connect stage but these are not exposed via JSON-RPC or any remote access method. It would be advantageous to be able to query the directories of public servers. I have looked at the source code but have not yet worked out how to do this directly and think it may be better to expose the functionallity via the API, e.g. JSON-RPC call. My current integration only supports access to servers that the user knows the IP address / hostname and port number. This works well for private servers that are shared between members but one of the fun parts of Jamulus is joining public sessions, meeting and playing with stangers / new friends. I would like JSON-RPC functions added to provide:
Access to more core parameters improves the ability to integrate Jamulus within devices which brings benefits such as the ability to provide higher level of accessibility, more widespread adoption, etc. |
Beta Was this translation helpful? Give feedback.
-
I have implemented a JSON-RPC method and notification for this:
I am not aware of a mechanism to get a list of public servers. It may be advantageous to publish the list of jamulus hosted servers. (I couldn't find them anywhere outside the source code.) Having looked at how the data is organised I see that ping time, quantity of connected clients and list of connected clients are properties of each server so should be implemented with their own methods / notifications. I have not yet done this. I have not yet looked at changing settings via JSON-RPC. I will submit a PR. |
Beta Was this translation helpful? Give feedback.
-
The documentation for JSON-RPC API implementation in jamulus does not include the ability to set, get or be notified of changes to:
These would be very useful additions to the API allowing remote control of a headless client. It would facilitate integration of a jaumuls in other devices, e.g. zynthian.
I have considered using the MIDI CC control but this does not implement feedback so the remote client cannot know if its state agrees with the actual jamulus state.
Beta Was this translation helpful? Give feedback.
All reactions