-
Notifications
You must be signed in to change notification settings - Fork 227
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow client to request fader position by using client source port #666
Comments
At a macro level, I'm unclear what you're trying to achieve. Using the GRP button, individual Jamulus users can assign all Basses to Group 1, Baritones to Group 2, and so on. Then moving any fader in that group will move all faders in that group equally. But more fundamentally, don't you want all faders for all singers at the same level (say, 50%)? In that way, singers are all hearing "unleveled" sound, so if a single voice is dominating it means that voice needs to reduce their input level (or singing volume), not have the output adjusted by others. That's the closest approximation to "singing together live". The downside to your command line parameter solution is that it requires all users to start Jamulus from a command line, which is (1) reasonably easy using a Shortcut in Windows, but (2) reasonably difficult on a Mac, where the Terminal application or other solutions will be needed. |
So you want a person (the choral Director?) to control the fader levels for all the client connections (via the server)? I'm unclear what problem that solves? As I mentioned above, a choral solution should be "flat" (same % on all faders) so that listeners can hear when a voice is "sticking out of the sound". If everyone is adjusting their own faders, particularly the Director, then they're all hearing mixed sound, not natural sound, and the chorus will likely be surprised when they can finally gather in person and it sounds nothing like it did in Jamulus. :) |
I'm sorry Chris, I haven't explained in a clearer manner. This has nothing to do with levels. Have you looked at the code? that might make the operation clearer. |
No, it isn't. If you name all your singers like "1:Alf", "2:Nina", ... then everybody only has to press Ctrl+I shortcut once when all singers are connected to the server and everybody has exactly the same fader layout.
That's not gonna work. If you, e.g., look at NAT or other nasty staff private network routers do, they can change the port the Jamulus server sees at any time. |
@storeilly Just to let you know: There was a feature request (#673) to change the Jamulus client behaviour so that a new clients fader appears on the RH side of the fader panel. So the fader ID on the server no longer defines the order of the faders at the client anymore. If you really want to see the faders sorted according to the server IDs, there is a workaround. If all faders are assigned to no group (i.e. the group feature is not used by any fader) and you sort by Group, actually you will get the order by server channel ID. |
Hi @corrados I'd like you to consider my request seriously please. Could you make #673 optional and enabled with a command line switch or a checkbox in settings. I'm certain that competent users like Simon, and those that need this will be better able to find it than the various members of the choirs I'm involved with. I would much prefer if faders were sorted by the server as a default, and we could come up with some system to pre-assign the fader position. My suggestion of seeding the call to GetFreeChan() is my attempt to open the conversation on how to achieve a pre-defined fader order which is identical for every client and makes sense to the users. It is important in a choir for everyone to have an identical view of the faders especially for members in a large choir, it is difficult enough to explain to less competent users how to use the basic functions of the interface. I understand that using the client source port will only be 80% effective (I have been logging ports on my own fork for ages) but my C++ ability is limited and I don't want to load you with requests for help. I learned C over 30 years ago and only use it rarely. I use Pascal more often but sadly it's not my full time job. It is adding another level of complexity if we now have to explain how to sort the faders by using a workaround and I feel that many more users will be adversely affected with this change than Simon. I apologize if my explanations are not clear, but my use case is important, I have been promoting choral use of Jamulus worldwide on facebook and our choir made a presentation to Sing Ireland (the national association for choral singing in Ireland) sharing our experience with Jamulus. It has been effective in spreading the message and I have been contacted by at least five choirs who previously have been battling with Zoom. our presentation on Sing Ireland Webinar |
Sure. But we should discuss other options here, too.
If you think that the choir members have so much trouble in using Jamulus that they cannot sort the faders, then I would recommend to use something like this: #599 where they do not get any faders at all which is the simplest solution for them.
As I mentioned, the preferred way of doing this is to tell them to prepend a number to their profile name. Then a simple Ctrl+n will get what you want. If you use a command line argument, you also have to make their installation/startup special. So this is similar to just tell them to change the name in the profile. Or you could create a jamulus.ini file for them and create a Windows shortcut using --inifile
Well, that depends. What was implemented so far was far from intuitive. The faders appeared at random positions. Now there is a simple rule which is much better.
I really appreciate the time and effort you are spending for this. I also spend a lot of time modifying Jamulus to support as many clients as possible. As you know, 100 clients are supported by your own server now which is a great achievement. 1 year ago I was considering 10 musicians on the Jamulus server a lot! :-) In my opinion, if pressing Ctrl+n is a too difficult for the choir members, than it will also be too difficult to adjust the faders correctly. So I guess these who cannot press Ctrl+n will not touch the faders at all so it does not matter how they are sorted. |
@storeilly I asked previously and am still confused by what use case you're trying to solve. I think you want single-person control of all fader views because (1) you don't trust other users to find/adjust faders, (2) you don't want other users to be able to adjust faders, or (3) both. Or are you trying to solve some other need? If you're trying to solve any of (1), (2), or (3), it seems like a simpler solution would be for Jamulus to offer a "hide all faders" option, either as a checkbox or command line parameter. When enabled, no faders are shown, and the mix from the server is set to 50% for all participants. Or maybe 75%. Regardless, individual users would then control output volume using whatever controls they have available outside Jamulus, which is likely their computer's system volume control. Now, that doesn't give a Director control of the mix that all other participants are hearing, but I also don't think that's what you're trying to achieve. After all, a choral group rehearsing in person is usually natural sound levels (no amplification) to get correct balance, with each individual adjusting - allowing each participant to adjust their own mix eliminates that need, but would also lead to unbalanced singing once the group is in person again. Anyway, if you don't mind, can you tell us what problem you're trying to solve, rather than telling us your solution? Thanks! |
I think I need assistance explaining this! Maybe @brynalf would have an opinion? I think it is easier for competent users to use a command line switch or a setting checkbox than asking a large group to do so or apply an additional step. One use case... older member of choir connects his interface incorrectly and connects squealing... Choir director issues request to mute "Tenor 2 Stephen". At least one of the choir will ask where his fader is. With the current options of sorting the faders in three different ways there is no way to answer that question without confusion. What I am requesting is a consistent, identical and pre-definable order that cannot be changed without ticking a checkbox or using a command line switch. This is well within the competency of the users that need it, like Simon. I am happy that most of my choir can balance their sound so I won't be promoting #599 |
@storeilly Thanks for explaining the need. I have a few ideas...
There is a change coming that so that new connections to the server will always appear on the right side of the list of users. So a user that joins and is squealing will always be found on the right, regardless of the sort order. As new users join, anyone wanting to retain the sort order (available from the menus) will have to select it again - in effect, they are "Sort Now" choices, not "Sort Forever" choices. |
Interesting usecase. Let's extend that use case a bit. Assume the choir has 100 singers. So "Stephen" has a problem with his interface and the director requests all singers to mute him:
|
I think, the current way I have implemented the fader sorting is not ideal. Right now it just sorts the faders on clicking the menu item. But I think it would be better to have this function persistently. So if you click on the menu item, now the item is checked and the sorting is applied all the time so that if a new client connects, it is correctly sorted. I think when this is implemented, that would help your choir usecase. So every singer must only switch on the sorting by name once and then it is stored in the settings file and always enabled. Then you have the situation you want to have: all singers see exactly the same fader layout. |
@corrados There are certainly upsides to continuous sorting. The downside is that newly-joined clients would no longer appear on the right, making them harder to find if needing to mute or adjust fader level. But perhaps I'm solving for a use cae without a user: does anyone really have a "sort once but don't continue sorting" need? |
Well, I would not call it "downside". If you are continuously sorting, of course, the new fader does not appear on the right. This is the case if no sorting is enabled. And, of course, you can still do what is possible today: simply switch sorting on and immediately turn it off again. Then you have sorted the faders once (i.e. instead of pressing Ctrl+n once you then just do it twice). |
To the problem of finding a fader quickly- An extension to the idea of using chat as an interaction tool could be chat actions, where the Director can type in simple commands - "MUTE @mention" and instruct everyone to click it. Whoever clicks the highlighted command, executed the command locally. |
Thank you, that is excellent and gives exactly what is needed and saves you from my amateur code! Would it be easy to add "Sort Channel Users by City" to the list please? If so, we can put the sort number in a field that does not occupy any space on screen. SATB is not alphabetical and we currently have 8 vocal groups in our large choir, I'm sure other choirs may have more. We currently use compact skin to fit everyone on screen and minimize the information in Alias/Name as attached and put full name in City field that everyone can see via the tooltip. Thanks again, |
I am happy that you like my proposal.
Interesting idea :-). Sure, I can implement that easily. I'll write it on my TODO list. |
Yes I understand that of course, character strings are not integers. :) |
Thank you, I can not build for windows at the minute, could you (or someone) build one for me please. I can test this tomorrow evening or Thursday evening. |
@storeilly Here is a Windows/Mac build available for testing: #619 (comment) |
Thanks @corrados Tested and working well. (with 2 clients) I'll do a more in depth test with a few others on Thursday, but I'm happy that works. |
Thanks for testing. Can you now close this Issue? |
Working with a large choir, it is easier if the singers' faders are grouped in voice types and in the same order, it is also useful if everyone's view of that is the same which is why I prefer a server side solution to this.
I've been thinking about this for a while and I have come up with a concept of using the client source port to request a particular position on the mixer board if the server is configured to accept it. I've started working on this and have successfully tested the concept using hard coded port numbers. I'm working now to make it configurable with a command line switch but my coding skill is not up to scratch. Code is currently not working with the command line parameter, it's on my fork here I'm open to any ideas, help and comments to see if this is workable.
How it works....
Server is started with a specific number as the first source port to be accepted as ordering port... eg : 22300
Clients connect with source ports > 22300 and < = (22300+maxclients) they are connected to first available channel after ((source port)-22300) .... in case the maxclients is reached, the first available channel after 0.
Clients that connect outside this port range get channels assigned as normal.
The code accepts the client source port and subtracts it from the server command line parameter for starting port set by the server operator. The server will then try to assign the first available fader position greater than that number to the client at first connect. If it cannot assign a position and there are still available slots on the server, the server will then assign the lowest available slot as it does currently.
My concept requires all members of the choir to add the "-p xxxx" parameter similar to the following
Jamulus -p 22300 (for Sopranos)
Jamulus -p 22310 (for Altos)
..... etc..
This numbering gives 10 slots for each group. Alternative numbering systems will also work and finer granularity.
The text was updated successfully, but these errors were encountered: