The problem with peer to peer is that you lose the synchronization that a central server provides. The value of a central server is in effectively providing a common clock source that everyone's audio is synchronized to. If you can find another way to synchronize all the audio streams together at the recipient, more power to you.
One of you might be running their audio interface at 44.1khz instead of 48khz. Everyone should be at 48khz I believe.
Tom, if you use qjackctl or Carla or some other way of controlling the Jack audio connections graph, sometimes there will be a connection made directly from the system capture device to the system playback device. This is effectively software monitoring. You can just delete those connections to fix it. You basically want audio flowing audio_capture_device -> jamulus -> audio_playback_device.
Giles, I don't think the idea of everyone running their own server makes sense. Then there would need to be additional software connecting those servers together. It would just add more complexity and latency.
Depending on what your OS version is etc. you might need to go to System Preferences -> Security & Privacy -> General and approve the app after the first time trying to run it. If you have the MacOS firewall on, you may need to go to System Preferences -> Security & Privacy -> Firewall, and then add Jamulus to the list of allowed apps. This might only be needed if you're running a server, not sure.
Andres: Qt Creator is a cross-platform IDE that comes with the Qt development kit. Jamulus uses Qt, so downloading the Qt development kit and starting Qt Creator is a good way to get started browsing and building the code. https://www.w3schools.com/cpp/ is one of many C++ tutorials out there.
VOTE: llcon
More important than the geographic distances from each other are the ping times from each other... If you connect to the server and then open up the "Settings" dialog box while connected, what are the numbers it shows in the lower right area for ping time and overall latency? Since you mention a laptop, it's worth asking if you're using WiFi. Ethernet will reduce latency slightly and be more reliable, especially if you have other devices sharing your connection. As far as making your server private,...
I put a QoS rule in my home router just to make sure that other people downloading/uploading would be less likely to impact my Jamulus use. I don't think QoS is going to help average latency but it might help the worst case performance if you have a lot of other traffic on your local network.
Neat... After getting curious how to do something like this myself with collaborators who aren't technically capable, I've found the Larix Broadcaster app for iOS/Android, which supports not only RTSP/RTMP, but the SRT protocol. OBS can take in SRT video through the Media Source without an intermediate server, and after playing around I've got the lag down to about 2 seconds. Still too much to do without a delay on the audio, but better than before. Thanks for the tips!
Nice. Now I'm curious about what software you used for the video side of things. Was this truly broadcast live-ish with just the aforementioned delay, or did you record the videos while Jamulus-ing and then edit everything together afterwards?
This morning I and a friend used Jamulus for the first time for the singing/music in a Zoom church worship service for probably 50 people on Zoom and 100 on Facebook Live. The setup was my computer running a private server and the client on Linux (version is 3.5.1git or so), and then my friend running 3.5.0 on a Mac. I used Carla (from kx.studio) to feed the sound from my Jamulus client via Jack through Pulseaudio and into Zoom, which right now is the main "place" where the worship service participants...
This occurs with newly downloaded .exe's that I download into a directory on an ext2fsd...