Comments (11)
This usually indicates the buffers are too small. When the jitter is larger than the buffer sizes allow, a connection is dropped (well, it is UDP traffic so there is no connection, but this means that no package has been received in time). After a short time, the participant is assumed to be gone and the remote channel is removed. This happens too quickly right now - but it indicates that you need larger buffer sizes. The client side buffers can be set with the sliders in the UI, but the server side buffers are command line parameters to the server executable.
I recommend running the server from the command line and watching the output - it displays the jitter of each participant's data coming in.
from jammernetz.
thank you.
I see: Feb 26 15:00:13 ip-aws JammerNetzServer[597]: Client my-wan-ip:8935: New client connected, first package received Feb 26 15:00:15 ip-aws JammerNetzServer[597]: Client my-wan-ip:8935: Jitter queue underrun, removing from client list in mix!
I have tried to change client buffer but nothing change. Sorry how I can set more large buffer in the server command line? I mean a large server bufffer will only encrease the buffer but not will encrease obbligatory the latency?
from jammernetz.
the participants are with ping from 5 to 10 to 20ms.. also i see that the problem sometimes is less present on different type of audio sound cards.
For the same server, to explain what we works for us with jamulus... we have minimu client buffer of 2.67ms and server jitter
buffer 7. ping 9ms with total delay 26ms
from jammernetz.
The buffers are not fixed (only the minimum buffer), so adding large numbers doesn't lead to a higher latency when there is no jitter.
The server has three different settings:
- Specify the length of the incoming jitter buffer in blocks with -b
- Specify the maximum length of the incoming buffer in blocks before continuing mixing with -w
- Specify the number of packets a client needs to send before becoming part of the mix (minimum queue length) with -p
The default setting is at
- -b Packages needed minimum in queue: 3 (or 8 ms)
- -w Packages accumulated before deciding the others are not going to send (maximum wait time for the others to provide audio): 5 (or 13,33 ms)
- -p Packages prefilled when a client comes back online: 3
The prefill is meant for dealing with drops instead of jitter, you could try to set it to 0 if you know you have higher jitter but no drops. Also, start adding a higher wait time (at the price of higher latency) to see if you can get a stable connection first and then try to move values down from there to get faster.
It is also possible to compile with buffer size 64 instead of 128, but I haven't tested that for a while. Should also make a difference!
That's to be changed in the file BuffersConfig.h.
from jammernetz.
so you could try
JammerNetzServer -b 5 -w 10 -p 5
and incresase the sliders in the clients for a start. If that works without disconnects, you can start decreasing values. Also, sometimes the flicker can be seen but not heard. Did you check th audio quality, do you hear clicks and crackles when it flickers?
from jammernetz.
Ping btw is less important than jitter, which is why I added jitter measurement into the server, you ca see it displayed in the last 2 columns, Jitter ms (milliseconds) and Jitter SD (Standard deviation).
from jammernetz.
Thank you. I will try soon. (there is no way to run the client on high sierra?..tried to compile with brew without success)
from jammernetz.
High Sierra should work as far as I recall.
Did you try the precompiled binaries I have here? https://github.com/christofmuc/JammerNetz/releases
from jammernetz.
Did you try the precompiled binaries I have here? https://github.com/christofmuc/JammerNetz/releases
require 10.14 and i have 10.13.6 (on a mac pro 2009 with a flashed firmware to 2010 and I can't upgrade to 10.14)
from jammernetz.
Hm, not sure where the requirement comes from. Maybe C++ 17 support (which is required).
The CMakeFile.txt says
# Target a specific macOS version to allow older hardware to run the client
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.11" CACHE STRING "Minimum OS X version to target for deployment")
but something other seems to ignore that.
from jammernetz.
You are really kind thank you. Unfortunately with opencore and Sonoma there are serious problems with audio over USB
from jammernetz.
Related Issues (20)
- Setup.exe generated should have version number in it HOT 1
- Want to specify which port to use HOT 1
- Need to be able to resample to allow mixing 44100 and 48000
- Need to allow to mix different buffer sizes. Currently you need an interface that does 128
- Want to see channels of others (including peak meter?) HOT 1
- Want to be able to control local mix HOT 2
- Choirs: Large number of participants. Would like to have submixers
- Want to be able to control other peoples volume slider.
- Startup is really slow when you have too many Audio interfaces. HOT 1
- Could add better error concealment HOT 1
- Want local monitoring HOT 1
- Client starts in background, users don't see window, open it a second time HOT 1
- Should split session control and audio packets to reduce bandwidth requirement
- SERVER: Port 0 is accepted when no "=" sign is used in specifying command line param HOT 2
- DOC: Hint on creating a random secret HOT 1
- Perhaps oneTBB needs an update HOT 2
- Linux compile error (when compiling oneTBB) HOT 6
- Rename Input Channel HOT 3
- cannot connect with Yamaha MG-XU usb mixers on Windows HOT 32
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jammernetz.