I know there's been 101 threads on this, but I'm hoping someone can help me debug the audio dropouts I'm experiencing.
I currently see about 20ms ping time and in total about 40ms-65ms overall delay. On a very good moment, I might be down to 35ms overall delay. I have my Macbook Pro setup to play a track through QLab, but when I monitor this track, I hear tons of audio dropouts, which sound like fast crackles, essentially. (Or maybe it's "jitter"?) Nevertheless, it's quite frequent: every few seconds there will be a burst of crackles, and then sometimes 20-30 seconds in between bursts. I wonder if this is everyone's experience? Or is there something I can do to minimize these dropouts?
Here is what it looks like: https://www.youtube.com/watch?v=-mYRxURCwhg
I couldn't get Quicktime to record the sound while screencasting this video, but imagine it sounds a bit like a bad cable crackle combined with some explosive little pops (in bursts) here and there.
I'll describe my setup in detail below.
My setup: Computer
A brand new Macbook Pro, running Catalina 10.15.6
2 GHz Quad-Core Intel Core i5
16GB memory
Internet Connection
Speed test:
Connected via a 6ft Cat5e cable with a Ethernet to USBC adapter to my Macbook pro
Download speed: 467.3 Mbps
Upload speed: 8.28 Mbps (though once I ran the speed test and got 0.08 Mbps upload - not sure if there's inconsistency here)
Server details
I'm running my own server on Google Cloud, which is set up in us-west-2a (Los Angeles). I'm about 300 miles away.
The server size should not be a big problem: I picked one with 16GB memory and 4 vCPUs.
I was the only one connected to the server, and monitoring myself on headphones.
Audio routing
I am playing tracks on either Logic or QLab - same audio issue using either program. In the demo video, I'm playing a track on Logic.
I use Soundflower and Ladiocast to route the audio to Jamulus as an input, and am monitoring in my headphones or speakers as an output.
Logic is running at 44.1kHz: not sure if it could be clocking issue. It does sound kind of like one. Confirmed the tracks are all clean in Logic.
Other info
I've tried it with all programs closed except Jamulus and QLab, and some programs (e.g., Chrome, on). Doesn't seem to make a big difference any way. I experience the issue in both cases.
Thanks in advance for any help!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for the hint. I've now tried playing a 48k track on Logic running 48k. Still experiencing the audio artifacts described above.
It does sound like a potential clocking problem though. I wonder if there is something I need to pay attention to when using Soundflower and Ladiocast, which is the method I'm using to pipe Logic output into Jamulus input.
The other possibly related evidence is that sometimes but not always, the local jitter buffer size seems to increase and the system shows an "x" under the jitter settings in correlation with the dropouts. I have the Jitter Buffer set on auto.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for the hint. I've now tried playing a 48k track on Logic running 48k. Still experiencing the audio artifacts described above.
It does sound like a potential clocking problem though. I wonder if there is something I need to pay attention to when using Soundflower and Ladiocast, which is the method I'm using to pipe Logic output into Jamulus input.
The other possibly related evidence is that sometimes but not always, the local jitter buffer size seems to increase and the system shows an "x" under the jitter settings in correlation with the dropouts. I have the Jitter Buffer set on auto.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Have you tried runnng the Jamulus server on your MAC too and connecting the client then to 127.0.0.1 ? That would eliminate any external communications problems, just to see where the problem is coming from.
I suspect it is your Internet connection. What you are describing sounds to me like wifi, but I am sure that there are other ways that the Internet can produce similarly large amounts of transient jitter. From your data I read that with a constant ping of 20ms you have overall delays of between 35 and 65ms. That difference is huge and will probably be coming from a data stream that is at times very jittery.
When I connect to servers about 500km from me, for example Frankfurt or Paris, the overall delay jitter I see is just a couple of ms, not more.
Do you have the possibility to try another ISP? Note that the problem is not the speed of the connection, but the regularity of the data transfer. You can have a great speed test result and still problems.
And yes, run all your programs at 48khz, I am surprised that Jamulus worked at all.
I hope that helps,
Don
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for the suggestion. I just tried running a local server and connecting to it via 127.0.0.1.
The ping time is 0ms and overall delay is staying pretty steady at about 20ms. Jitter buffer is auto-set at 2 and 2.
Empirically, there may be slightly fewer audio artifacts now and I'll sometimes go about a minute without any, but they are definitely still happening from time to time. I've confirmed there are no audio artifacts when I play the same track directly from Logic to my headphones, without Jamulus.
DonC, do you think these observations are consistent with your hypothesis that it's an inconsistent / jittery Internet connection?
If so, is there a way to test the regularity of data transfer?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Learned a few more things:
1) The Ladiocast virtual mixer I'm using has its own sample rate settings (I've now updated to 48kHz. I think this helped, although it's hard to tell as the problem has not entirely gone away.
2) The dropout intensity seems to be correlated with overall delay time. I guess there's not much I can do about that, is there? If ping time is around 20ms, is it expected that overall delay time would be 35-65ms as I'm experiencing? Is there anything I can do to lower this overall time (short of upgrading my internet connection)?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The extra delay beyond ping should be what you have seen when on the local server, i.e., 20ms steady. 35-65 is a (too) wide range. One strange thing is the great asymmetry you have in download/upload, for me is not normal.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
In my case, the clicks and dropouts that I hear "occasionally" are definitely caused by activity on my PC, especially when it involves audio/video. For example, if I bring up a page from Ultimate Guitar while playing and a video displays in the bottom corner the clicking begins. On my Linux client, moving a window on the screen cause clicks and dropouts.
👍
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It could also be that you have other things running in the background, disk backup, etc. that are causing this. Be sure that you are just running Jamulus and your DAW and nothing else.
I would be very surprised that your MAC would be overloaded by just Jamulus and a DAW.
On my not-too-fast Win10 system I have done similar stuff and never heard any sound degradation.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
1) I closed everything except Jamulus on my computer (including Ladiocast/Soundflower, which I had been using for audio routing), and played the track from my phone directly into the computer microphone. It was definitely a lot better. Overall latency was about 40ms the whole time (ping time: 20ms). It was not totally clean, with a few audible clicks during the 3 minute track, but not nearly as distracting as it was previously. I will try tomorrow to connect an audio interface and play the track through my phone via the audio interface. Maybe that is a better long term solution as it doesn't require having Logic open on the same computer.
2) I opened just Ladiocast and routed my computer microphone through Ladiocast (still playing the track on the phone). The result was a bit worse than (1) but not as bad as it's been in previous experiments. The clicks that were there were a bit more noticeable and "bursty" (e.g., several quick clicks/dropouts in a row). In theory, Ladiocast and Soundflower should add 0 latency, but I wonder if there is some master clock issue. Per above, I've made sure they are all set at 48kHz now.
3) I tried the same thing as (2), but this time with stereo in/out on Jamulus. The audio definitely had more dropouts this time.
4) I also tried playing around with the audio quality settings on Jamulus, but couldn't really tell if it had an effect.
Not entirely sure what to make of all this other than it could be a combination of different things adding up.
DonC - is there something with Wireshark I can do to test the regularity of data transfer as you had mentioned above?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
On a Mac, it has been suggested to switch off location services, disable WiFi too (even if you use Ethernet, disable WiFi), be sure Google Drive or similar are in pause.
Regarding Soundflower, it is not really maintained since years, perhaps you could try Black Hole that is more up to date (and equally free).
However, I am still thinking that 467/8 is a suspect download/upload ratio (what are the nominal values? i.e., what are you paying for?). If you have a spare Ethernet cable, I would try to change it.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I know there's been 101 threads on this, but I'm hoping someone can help me debug the audio dropouts I'm experiencing.
I currently see about 20ms ping time and in total about 40ms-65ms overall delay. On a very good moment, I might be down to 35ms overall delay. I have my Macbook Pro setup to play a track through QLab, but when I monitor this track, I hear tons of audio dropouts, which sound like fast crackles, essentially. (Or maybe it's "jitter"?) Nevertheless, it's quite frequent: every few seconds there will be a burst of crackles, and then sometimes 20-30 seconds in between bursts. I wonder if this is everyone's experience? Or is there something I can do to minimize these dropouts?
Here is what it looks like: https://www.youtube.com/watch?v=-mYRxURCwhg
I couldn't get Quicktime to record the sound while screencasting this video, but imagine it sounds a bit like a bad cable crackle combined with some explosive little pops (in bursts) here and there.
I'll describe my setup in detail below.
My setup:
Computer
A brand new Macbook Pro, running Catalina 10.15.6
2 GHz Quad-Core Intel Core i5
16GB memory
Internet Connection
Speed test:
Connected via a 6ft Cat5e cable with a Ethernet to USBC adapter to my Macbook pro
Download speed: 467.3 Mbps
Upload speed: 8.28 Mbps (though once I ran the speed test and got 0.08 Mbps upload - not sure if there's inconsistency here)
Server details
I'm running my own server on Google Cloud, which is set up in us-west-2a (Los Angeles). I'm about 300 miles away.
The server size should not be a big problem: I picked one with 16GB memory and 4 vCPUs.
I was the only one connected to the server, and monitoring myself on headphones.
Audio routing
I am playing tracks on either Logic or QLab - same audio issue using either program. In the demo video, I'm playing a track on Logic.
I use Soundflower and Ladiocast to route the audio to Jamulus as an input, and am monitoring in my headphones or speakers as an output.
Logic is running at 44.1kHz: not sure if it could be clocking issue. It does sound kind of like one. Confirmed the tracks are all clean in Logic.
Other info
I've tried it with all programs closed except Jamulus and QLab, and some programs (e.g., Chrome, on). Doesn't seem to make a big difference any way. I experience the issue in both cases.
Thanks in advance for any help!
That your "logic" is running at 44.1 Khz caught my attention because there was a time when we that would not work at all.
See this discussion which comments on Jamulus treating the audio frames as 48 kHz where as the driver treated them as 44.1 kHz https://sourceforge.net/p/llcon/discussion/533517/thread/706abc35cb/
Can one of the developers comment on whether 44.1Khz is expected to work? Did that capability come along with the smaller buffer sizes?
Thanks for the hint. I've now tried playing a 48k track on Logic running 48k. Still experiencing the audio artifacts described above.
It does sound like a potential clocking problem though. I wonder if there is something I need to pay attention to when using Soundflower and Ladiocast, which is the method I'm using to pipe Logic output into Jamulus input.
The other possibly related evidence is that sometimes but not always, the local jitter buffer size seems to increase and the system shows an "x" under the jitter settings in correlation with the dropouts. I have the Jitter Buffer set on auto.
Thanks for the hint. I've now tried playing a 48k track on Logic running 48k. Still experiencing the audio artifacts described above.
It does sound like a potential clocking problem though. I wonder if there is something I need to pay attention to when using Soundflower and Ladiocast, which is the method I'm using to pipe Logic output into Jamulus input.
The other possibly related evidence is that sometimes but not always, the local jitter buffer size seems to increase and the system shows an "x" under the jitter settings in correlation with the dropouts. I have the Jitter Buffer set on auto.
Have you tried runnng the Jamulus server on your MAC too and connecting the client then to 127.0.0.1 ? That would eliminate any external communications problems, just to see where the problem is coming from.
I suspect it is your Internet connection. What you are describing sounds to me like wifi, but I am sure that there are other ways that the Internet can produce similarly large amounts of transient jitter. From your data I read that with a constant ping of 20ms you have overall delays of between 35 and 65ms. That difference is huge and will probably be coming from a data stream that is at times very jittery.
When I connect to servers about 500km from me, for example Frankfurt or Paris, the overall delay jitter I see is just a couple of ms, not more.
Do you have the possibility to try another ISP? Note that the problem is not the speed of the connection, but the regularity of the data transfer. You can have a great speed test result and still problems.
And yes, run all your programs at 48khz, I am surprised that Jamulus worked at all.
I hope that helps,
Don
Thanks for the suggestion. I just tried running a local server and connecting to it via 127.0.0.1.
The ping time is 0ms and overall delay is staying pretty steady at about 20ms. Jitter buffer is auto-set at 2 and 2.
Empirically, there may be slightly fewer audio artifacts now and I'll sometimes go about a minute without any, but they are definitely still happening from time to time. I've confirmed there are no audio artifacts when I play the same track directly from Logic to my headphones, without Jamulus.
DonC, do you think these observations are consistent with your hypothesis that it's an inconsistent / jittery Internet connection?
If so, is there a way to test the regularity of data transfer?
Learned a few more things:
1) The Ladiocast virtual mixer I'm using has its own sample rate settings (I've now updated to 48kHz. I think this helped, although it's hard to tell as the problem has not entirely gone away.
2) The dropout intensity seems to be correlated with overall delay time. I guess there's not much I can do about that, is there? If ping time is around 20ms, is it expected that overall delay time would be 35-65ms as I'm experiencing? Is there anything I can do to lower this overall time (short of upgrading my internet connection)?
The extra delay beyond ping should be what you have seen when on the local server, i.e., 20ms steady. 35-65 is a (too) wide range. One strange thing is the great asymmetry you have in download/upload, for me is not normal.
In my case, the clicks and dropouts that I hear "occasionally" are definitely caused by activity on my PC, especially when it involves audio/video. For example, if I bring up a page from Ultimate Guitar while playing and a video displays in the bottom corner the clicking begins. On my Linux client, moving a window on the screen cause clicks and dropouts.
Thanks, BTDT. It might be the very fact that I'm playing audio off Logic Pro (an audio program) that's causing these dropouts.
It could also be that you have other things running in the background, disk backup, etc. that are causing this. Be sure that you are just running Jamulus and your DAW and nothing else.
I would be very surprised that your MAC would be overloaded by just Jamulus and a DAW.
On my not-too-fast Win10 system I have done similar stuff and never heard any sound degradation.
I've tried a few more things.
1) I closed everything except Jamulus on my computer (including Ladiocast/Soundflower, which I had been using for audio routing), and played the track from my phone directly into the computer microphone. It was definitely a lot better. Overall latency was about 40ms the whole time (ping time: 20ms). It was not totally clean, with a few audible clicks during the 3 minute track, but not nearly as distracting as it was previously. I will try tomorrow to connect an audio interface and play the track through my phone via the audio interface. Maybe that is a better long term solution as it doesn't require having Logic open on the same computer.
2) I opened just Ladiocast and routed my computer microphone through Ladiocast (still playing the track on the phone). The result was a bit worse than (1) but not as bad as it's been in previous experiments. The clicks that were there were a bit more noticeable and "bursty" (e.g., several quick clicks/dropouts in a row). In theory, Ladiocast and Soundflower should add 0 latency, but I wonder if there is some master clock issue. Per above, I've made sure they are all set at 48kHz now.
3) I tried the same thing as (2), but this time with stereo in/out on Jamulus. The audio definitely had more dropouts this time.
4) I also tried playing around with the audio quality settings on Jamulus, but couldn't really tell if it had an effect.
Not entirely sure what to make of all this other than it could be a combination of different things adding up.
DonC - is there something with Wireshark I can do to test the regularity of data transfer as you had mentioned above?
On a Mac, it has been suggested to switch off location services, disable WiFi too (even if you use Ethernet, disable WiFi), be sure Google Drive or similar are in pause.
Regarding Soundflower, it is not really maintained since years, perhaps you could try Black Hole that is more up to date (and equally free).
However, I am still thinking that 467/8 is a suspect download/upload ratio (what are the nominal values? i.e., what are you paying for?). If you have a spare Ethernet cable, I would try to change it.