jamulussoftware / jamulus

Jamulus enables musicians to perform real-time jam sessions over the internet.
https://jamulus.io
Other
990 stars 222 forks source link

[Feature request] more than 2 outputs #733

Closed guixers closed 3 years ago

guixers commented 3 years ago

If Jamulus would support more than 2 outputs we could use the outs to feed another recording system (or maybe via some VST Rewire) Jamulus is great but its not a replacement for a professional DAW for recording.

In our band we have the drummer in the studio (uses 20 tracks!) and we record 2 jamulus tracks for guitar and bass along with those 20 in a Mackie DL32R. We had a dedicated pc and interface for jamulus and connect the outs of that interface to the mackie for recording If Jamulus had more than 2 we could record a 6 piece band all remote less the drummer for example in la live streaming gig .. Any way Jamulus could support more than 2 outs in the future?

corrados commented 3 years ago

You can record multiple outputs at the Jamulus server. Use the -R command line argument to enable the functionality.

guixers commented 3 years ago

Hi The question is not to record outputs at the server is to route to physical outputs at the client. Unless you can route the server outputs to physical outputs instead of recording them, is that possible?

guixers commented 3 years ago

Jamulus feature request

A map of what I suggest, hopefully easier to understand. This version would use the client to send to recording. I guess easier to expand this existing feature than changing the server :- )

WolfganP commented 3 years ago

Probably duplicate functionality of https://github.com/corrados/jamulus/issues/146

guixers commented 3 years ago

Indeed. Only question remains since its seems the server side is probably not a way to go. Can the client side be done by allowing more than 2 outs? it would save to have to open more than 1 client in the server location

WolfganP commented 3 years ago

Indeed. Only question remains since its seems the server side is probably not a way to go. Can the client side be done by allowing more than 2 outs? it would save to have to open more than 1 client in the server location

The issue with getting audio from the client is that you insert an additional audio compress/decompress in between (plus that everything is mixed already server side)

guixers commented 3 years ago

My point is that you already do that. I mean for 2 outputs only I can get the jamulus client's audio (the personal mix) the via the interface audio outs. Thats what we hear in our headset I have been using that for recording and works very well The ask is to do this for more than 4 tracks, so that you could use the personal mix with 4 for example instead of 2 outputs

kwindrem commented 3 years ago

guixers: the mix between clients occurs in the server and the mixed signal is sent to each client. In the limit, what you are asking for is that the mix occurs in each client and it receives the raw signal from every client. LOTS more bandwidth on each connection. If you want a LIMITED number of mixes, you can always run multiple Jamulus clients. Each one would then receive it's own mix from the server.

guixers commented 3 years ago

Ah ! I get it now, the personal mix is created by the server... that makes more sense now I mean in that case yes, I would hope there is a choice to have a stereo mix back or maybe a 4 track mix and be able to route that to back to the client and allow the client to route it to their audio interface outs. In the end the bandwidth would be the same as having 2 clients in the same PC but easier to set up, all from 1 client.

I get for now 2 clients is the way to go and that is awesome.

chrisrimple commented 3 years ago

@guixers Interesting situation. Based on your diagram, you have 24 INs to Jamulus and you would optimally like 24 OUTs from Jamulus, so you can record on an external device with full mixing control. But you've solved the bulk of your need by sending 20 INs (drums) to the Mackie and recording directly, while getting the other 4 INs from the Jamulus Server, but as just 2 channels. Given that the direct monitoring of the 20 INs (drums) has less latency than the 4 INs from the Jamulus Server, how are you synchronizing timing on the Mackie?

A suggestion that may work for you...

Once you've got all INs recording as WAV files on the Jamulus Server, you'll be able to mix as you wish.

guixers commented 3 years ago

Hi Chris Here is the thing I don't want to use Jamulus for recording... We spend thousands to buy a mackie and a lot more gear...for recording! :- ) There is no sync needed between jamulus and the mackie but since we have awesome internet in London the recordings in the mackie show no lag between the remote instruments and the drums. With the solution of having 1 client in the studio per remote , which our PC should take very finely and since we have more than 1 audio interface on it then i think we are good!

chrisrimple commented 3 years ago

@guixers I don't understand. You're saying that the latency from [Drums to Mackie] is the same as from [Guitar to audio interface to Jamulus client to internet to Jamulus server to internet to Jamulus client to audio interface to Mackie]? I think that you must be mistaken. If the recordings you're getting at the Mackie have the Drums and Guitar synced, then you're probably not recording the Drums directly (monitored), you're recording them when they come back from the Jamulus server (so that everything is in sync). If I'm right about that, then you're not getting the best possible (recorded) sound from the drums, since the sound has been processed by the Mackie > Jamulus client > Jamulus server > Jamulus client > Mackie in your audio path. And if that's true, then you might as well just record on the server, and reduce the number of processing steps.

Also, as others have noted, if you're recording from a Jamulus client's output, you're not getting "raw" sound, you're getting it however it's been modified by the client settings. So if you run 3 Jamulus clients in the studio, you want their settings (faders, etc.) to be identical, or you'll be getting "mixed" sound from the clients.

guixers commented 3 years ago

No, the latency is not the same BUT. The Remote Jamulus sessions are having 15-30ms latency , we use high spec interfaces , for example the asio latency of my interface at home is 2.63ms + 15 ms to get to the server .... thats nothing ! I know i am recording the drums at the studio :- )

I need to test the 2 clients at teh studio thing... lets see how it goes.

guixers commented 3 years ago

An example: This is the drums in teh studoi and bass and guitar remote with the way I am describing Do you think we are out of sync? Sync1.zip

guixers commented 3 years ago

I tried the multiple clients on Studio method and it worked a treat. Happy for this to be closed since there is a way to do it and you already have the request in mind in another issue logged. Btw Super awesome software!