christofmuc / JammerNetz

OpenSource internet jam sessions, aka Networked Music Performance software.
GNU Affero General Public License v3.0
50 stars 11 forks source link

Want to be able to control local mix #17

Open christofmuc opened 3 years ago

christofmuc commented 3 years ago

The current design does force all participants to hear - except for drops - exactly the same. For some use cases, this might not be required/desired, so there could be an option to override volume sliders from the general mix with my own taste.

reneknuvers commented 3 years ago

Would this be implemented by distributing a user-specific mix created on the server to each client (like Jamulus), or by distributing individual channels to the users and client-side mixing (which as a side effect would allow multitrack recording on the client's end)

christofmuc commented 3 years ago

@reneknuvers This is about making a client-specific mix on the server, like Jamulus does. Actually, also Jammernetz already creates a client specific mix as you can use the "Send" mode of a channel to excluse yourself from your mix only, but I have no individual mixing controls for the other participants (the sliders are disabled for now). Would be relatively easy to add.

The other feature you mention is to turn the server only into a relay server, and mix on the client. This is also easy, but you only get half of the benefit of a pure peer to peer solution like Sonobus. P2P can be faster than server-based especially if all participants are close to each other in network topology. A server (i.e. in AWS Frankfurt) has the advantage if everybody is connected via a quick connection to the internet hub, but participants are in different areas of the Internet.

Basically both P2P and Relay-server are easy to do with the software, it is just a few modifications to the code base. Not sure when I get around to do it, I had already started a branch for the server relay mode.

Note that you can get fake-multitrack recordings by turning on the upload record feature for each participant and then uploading everybody's data e.g. to Google drive - you'd have to align them in a DAW, but if you add some audible cues like clapping this is easily possible.