Replies: 10 comments 24 replies
-
Hi! I also thought about having the opposite direction: Don't send a mix to another user, but let another user "steal" or copy any other user's mix. Maybe we should have some overview of advantages/disadvantages of solving this problem (usability, flexibility, implementation). |
Beta Was this translation helpful? Give feedback.
-
Ok, did some thinking, with all the previous input. How about the following design:
that way, there is absolutely no clutter in the UI unless a mix is being broadcast. If there is a mix being broadcast, it is very clear that this is the case. It should be easy to follow that mix, or to unfollow it, making this simple to use for people who just want to follow. People joining later can still follow this mix because of the server-side state. There is no privacy issue from others seeing your mix, preventing 'you muted me!' arguments. The headless client case is supported as well. Drawbacks are that this feature is a bit hidden for the person wanting to broadcast their mix (also a benefit!), and that personal adjustments mean unfollowing the mix altogether. Another drawback is that checking for problems by muting everyone is not possible. that could be solved by starting a second jamulus instance with a second sound card (often possible because people use an external audio interface and have their internal sound card as well). Possible nice to have additions:
|
Beta Was this translation helpful? Give feedback.
-
Started development in https://github.com/pieterbos/jamulus/tree/broadcast_mixer . So far the basics: Next steps towards a basic implementation:
To optimize
To check:
|
Beta Was this translation helpful? Give feedback.
-
Thanks @pieterbos and @cwerling for working on this! It seems like there are multiple approaches to solve this issue and it's great to have a structured list of advantages/disadvantages. Sadly, neither I nor any other @jamulussoftware/maindevelopers had time to dig into details until now. I think there is openness for having such a feature, but there is no clear tendency yet what approach would fit Jamulus' principles best. Freel free to go ahead with your proof of concept implementations, I'll be sure to try them out. Please keep in mind though that it is highly likely that we will have to settle on one of the approaches at some point. |
Beta Was this translation helpful? Give feedback.
-
Ok, here is my idea for that kind of functionality: namely a button for following (rather than stealing) someone else's mix. That reduces the numbers of mixes that the server has to create. For large ensembles where a useful mix for getting all the important cues is important, everyone in a section can follow the section leader. Following someone's mix means that you cannot change your own mix anymore unless there is some circularity established also following you (yes, this becomes a lot of graph theory handwaving in larger groups and needs to find a more formal and dependable as well as practically useful definition so that it becomes reasonably straightforward to arrive at a setting with a single mix that everyone can adjust, either per section or for all). |
Beta Was this translation helpful? Give feedback.
-
Pieter Bos ***@***.***> writes:
Perhaps in that case, broadcast is the wrong term, and it could be a
second option with a name such as 'create a cooperative mix'? That
others then could join, or perhaps participate in, instead of the more
passive sounding to follow?
That is not hard to implement, apart from to decide what to do if two
people grab the same fader at the same time. Could you perhaps explain
why you would want such a feature, and what it would solve?
"Following" basically means not taking responsibility for what you get
to hear. A lot of people in a group setting, particularly a large
group, will not be eager to bother with something as technical as
creating an individual mix. Others will enjoy putting together
something particular.
Currently the main course for not having to mess with controls is to
tell someone when they are too loud or not loud enough so that just
keeping every control at the same level works reasonably.
However, in a large group setting the server would be taxed with
creating, say, 32 separate mixes and a single mix would likely not work
well for both sopranos and basses, so there is some need for something
in between.
A main technical incentive for giving up an individual mix is that any
shared mix reduces server workload.
I thought that the setup for following would be somewhat reliable in
allowing for several different but significantly reduced in number
mixes. When followers enter a circle, that would create a lockup where
nobody can change the mix anymore unless they stop following for a
moment. The idea was that when detecting such a situation, to use it
for just considering the circle as a single synchronised group and
unlock it for change by everyone instead of change by noone.
I am not sure that this resolution of what would otherwise be a lockup
of mutually released responsibility is a sensible interface, to be
honest. When doing it spontaneously, it would likely result in some
random group of masters (either synchronised or independet) and
followers without control, with the overall outcome hard to plan for.
So it might be too cute to be useful.
…--
David Kastrup
|
Beta Was this translation helpful? Give feedback.
-
So, the first working proof of concept is finished enough to show how this would work. The code is at It is demo/prototype quality, intended to show how it works and to discuss if this is the way to go, both functionally and technically. The linked pull request contains a description of the status and all the things that are unfinished. The basics should work well though. You need both the server and client of this branch to run this. Opinions? |
Beta Was this translation helpful? Give feedback.
-
Any updates on this topic? We tested the master mix #1381 once and I'm still not fully convinced. I do see a huge benefit if actually only one mix is needed; unfortunately, I don't think that's the case in reality (Sopranos might not want to hear Tenors too loud, while Tenors would not like to hear Sopranos too loud; a server might be used by two bands/...). The major disadvantages I see are:
Nevertheless, it seems to be almost fully backwards compatible which is a huge benefit. I think the most flexible approach would be the broadcast mix functionality and probably people would ask for it in future? |
Beta Was this translation helpful? Give feedback.
-
ann0see ***@***.***> writes:
Thank you for the quick reply. I'll try what I can test.
> and older clients will be unable to follow the broadcasted mix.
That's a small disadvantage unfortunately (at least for my choir)
we've just updated and I doubt my choir members would like to go
through the hassle of updating again. I think some would do it, but
surely not all. Nevertheless, I might be able to test it (but I can't
guarantee anything)
> I haven't had much spare time recently
Same for me.
> I could open a draft pull request?
Sure. We have a lot of open PRs at the moment and I hope it will get visibility.
With regard to user interface: I wonder whether it makes sense to
combine this with the "mixer group" menus since in some manner you don't
lock to your own sliders then but to someone else's?
Not sure this makes for a convincing concept but thought I'd mention
that handwaving idea anyway.
…--
David Kastrup
|
Beta Was this translation helpful? Give feedback.
-
Just tested it and there were some warnings: src/server.h:144:47: warning: unused parameter ‘bIsBroadcastingMixer’ [-Wunused-parameter] and GUI issues (the follow mix checkbox remained even after I disconnected from the server). Probably that's ok for a PoC? |
Beta Was this translation helpful? Give feedback.
-
We rehearse with a big band using Jamulus. Right now we have a sound-check where one person creates a mix, saves it, sends it using whatsapp, and the others open that. Or at least those who want it and understand how this works open it. Then they make any personal adjustments they may need for their own mix.
Of course, that's a bit complicated. Too complicated for a couple of people to do, or rather tricky to use for those of us on Raspberry Pis used only for Jamulus. Especially since there's a perfectly fine network protocol that could be used. So, my idea:
The message to indicate someone sent a mix could be a chat message with a button or link to apply it, or a separate dialog. I would say a chat message is less annoying and easier to ignore if you don't want the mix.
The option to send the mix could be a simple menu item, perhaps under the current save/load options in File. Since this is not often needed, hiding it away there could mean it doesn't get in the way of other users.
The mix could include levels, pan settings and groups.
A startup flag could be added to set it to auto-accept these mixes, for example to control headless clients remotely.
Of course, this isn't a bit problem, just a nice to have feature. If I have enough spare time the coming weeks I might try to work on implementing this.
But first: Opinions?
Beta Was this translation helpful? Give feedback.
All reactions