CESNET / UltraGrid

UltraGrid low-latency audio and video network transmission system
http://www.ultragrid.cz
Other
492 stars 53 forks source link

question: Audio underflow #217

Closed vrslev closed 2 years ago

vrslev commented 2 years ago

Hi there! Yesterday found this project and I think it can help me to save a lot of headache 😍

I'm developing wrapper around JACK and JackTrip for local audio networking. Basically, the job can be done almost out-of-the-box using UltraGrid. But there's one thing: audio underflow. UltraGrid logs Core Audio underflows even when I test on one Mac locally. Same thing happens when I add second Mac. Here's what I tried:

Is there a way to increase network buffer (?) so underflow won't reached? What would be the best way to solve the problem?

benroeder commented 2 years ago

What command line are you using to run this ?

vrslev commented 2 years ago

@benroeder uv -r coreaudio 127.0.0.1 --audio-channel-map 2:0,3:1,1:1, uv -s coreaudio:60 127.0.0.1 --audio-capture-format channels=16. I play audio Logic to BlackHole virtual audio interface, send the sound with UltraGrid, receive it on the same machine in speakers. Logic -> BlackHole, BlackHole -> UltraGrid, UltraGrid -> speakers Tested on M1 Mac locally and M1 Mac -> Intel Mac.

I see you experience similar issue (#213)?

benroeder commented 2 years ago

Yes that why I was asking, have you tried recording the output, would be interested to see what the "glitches" look like and how long you ran the test for ?

vrslev commented 2 years ago

I didn’t yet, I will

MartinPulec commented 2 years ago

Hi @vrslev,

what is the point of capturing (and thus sending and processing) 16 channels whilst using just 4? The point is that the issue could be either performance or network problem. Would it be possible to:

  1. paste the terminal output of the receiver, at least tens of second from the beginning until some steady behavior
  2. if only 4 channels are needed, try to send just those 4

Setting the network buffers is described here. Anyways, it shouldn't play a role for audio and generally low-bandwidth flow. If UltraGrid doesn't report lost packets (as should be obvious from the receiver output), it is not needed.

vrslev commented 2 years ago

@MartinPulec

paste the terminal output of the receiver, at least tens of second from the beginning until some steady behavior

Sure, I’ll do that and report back.

if only 4 channels are needed, try to send just those 4

I’m just testing at home, that’s why there’s only 4 channels used. In production I have mixer with 32 ins and 32 outs 😃

MartinPulec commented 2 years ago

I’m just testing at home, that’s why there’s only 4 channels used. In production I have mixer with 32 ins and 32 outs

Sure, understood. Anyways, I'd check whether it can be due to performance first.

Just FYI, I've just fixed an error causing a crash with your channel map configuration, I'd advise to upgrade to current continuous build (or it will later land to 1.7.3 update).

vrslev commented 2 years ago

@MartinPulec

Here are logs. Sometimes (after two minutes or so) underflow still occurs.

Sender ❯ ./uv -s coreaudio:68 127.0.0.1 --audio-capture-format channels=16 UltraGrid 1.7+ (tags/continuous rev 9f762fb1 built Feb 25 2022 10:57:40) Display device : none Capture device : none Audio capture : coreaudio:68 Audio playback : none MTU : 1500 B Video compression: none Audio codec : PCM Network protocol : UltraGrid RTP Audio FEC : none Video FEC : none [CoreAudio] [CoreAudio] Error setting frames. Created new RTP session with SSRC 0x293b915e. Display initialized-none Video capture initialized-none Created new RTP session with SSRC 0x4e23de9b. Audio sending started. [Audio sender] Sent 217088 samples in last 5.002932 seconds. [Audio sender] Channel 0 - volume: -49.20 dBFS RMS, -29.79 dBFS peak. [Audio sender] Channel 1 - volume: -55.48 dBFS RMS, -34.95 dBFS peak. [Audio sender] Channel 2 - volume: -52.53 dBFS RMS, -38.81 dBFS peak. [Audio sender] Channel 3 - volume: -52.53 dBFS RMS, -38.81 dBFS peak. [Audio sender] Channel 4 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 5 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 6 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 7 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 8 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 9 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 10 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 11 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 12 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 13 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 14 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 15 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Sent 220544 samples in last 5.000524 seconds. [Audio sender] Channel 0 - volume: -49.12 dBFS RMS, -29.79 dBFS peak. [Audio sender] Channel 1 - volume: -63.25 dBFS RMS, -35.41 dBFS peak. [Audio sender] Channel 2 - volume: -47.01 dBFS RMS, -34.19 dBFS peak. [Audio sender] Channel 3 - volume: -47.01 dBFS RMS, -34.19 dBFS peak. [Audio sender] Channel 4 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 5 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 6 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 7 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 8 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 9 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 10 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 11 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 12 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 13 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 14 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 15 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Sent 220672 samples in last 5.002089 seconds. [Audio sender] Channel 0 - volume: -49.13 dBFS RMS, -29.79 dBFS peak. [Audio sender] Channel 1 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 2 - volume: -47.70 dBFS RMS, -34.86 dBFS peak. [Audio sender] Channel 3 - volume: -47.70 dBFS RMS, -34.86 dBFS peak. [Audio sender] Channel 4 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 5 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 6 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 7 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 8 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 9 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 10 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 11 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 12 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 13 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 14 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 15 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Sent 220544 samples in last 5.001132 seconds. [Audio sender] Channel 0 - volume: -49.72 dBFS RMS, -29.79 dBFS peak. [Audio sender] Channel 1 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 2 - volume: -48.02 dBFS RMS, -35.09 dBFS peak. [Audio sender] Channel 3 - volume: -48.02 dBFS RMS, -35.09 dBFS peak. [Audio sender] Channel 4 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 5 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 6 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 7 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 8 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 9 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 10 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 11 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 12 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 13 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 14 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 15 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Sent 220544 samples in last 5.001515 seconds. [Audio sender] Channel 0 - volume: -55.71 dBFS RMS, -29.79 dBFS peak. [Audio sender] Channel 1 - volume: -62.54 dBFS RMS, -35.10 dBFS peak. [Audio sender] Channel 2 - volume: -55.41 dBFS RMS, -35.82 dBFS peak. [Audio sender] Channel 3 - volume: -55.41 dBFS RMS, -35.82 dBFS peak. [Audio sender] Channel 4 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 5 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 6 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 7 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 8 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 9 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 10 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 11 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 12 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 13 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 14 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 15 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Sent 220672 samples in last 5.002731 seconds. [Audio sender] Channel 0 - volume: -49.02 dBFS RMS, -29.79 dBFS peak. [Audio sender] Channel 1 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 2 - volume: -50.66 dBFS RMS, -31.89 dBFS peak. [Audio sender] Channel 3 - volume: -50.66 dBFS RMS, -31.89 dBFS peak. [Audio sender] Channel 4 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 5 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 6 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 7 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 8 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 9 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 10 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 11 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 12 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 13 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 14 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 15 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Sent 220544 samples in last 5.000899 seconds. [Audio sender] Channel 0 - volume: -49.01 dBFS RMS, -29.79 dBFS peak. [Audio sender] Channel 1 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 2 - volume: -44.16 dBFS RMS, -30.64 dBFS peak. [Audio sender] Channel 3 - volume: -44.16 dBFS RMS, -30.64 dBFS peak. [Audio sender] Channel 4 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 5 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 6 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 7 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 8 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 9 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 10 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 11 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 12 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 13 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 14 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio sender] Channel 15 - volume: -inf dBFS RMS, -inf dBFS peak. Exit
Receiver ❯ ./uv -r coreaudio 127.0.0.1 --audio-channel-map 2:0,3:1,1:1 UltraGrid 1.7+ (tags/continuous rev 9f762fb1 built Feb 25 2022 10:57:40) Display device : none Capture device : none Audio capture : none Audio playback : coreaudio MTU : 1500 B Video compression: none Audio codec : PCM Network protocol : UltraGrid RTP Audio FEC : none Video FEC : none [CoreAudio play.] Using adaptive buffer. In case of problems, try "--param audio-disable-adaptive-buffer" option. Created new RTP session with SSRC 0x62c8f7ec. Display initialized-none Video capture initialized-none Created new RTP session with SSRC 0x192e1901. Audio receiving started. [audio dec.] Channel remapping detected - automatically scaling audio levels. Use "--audio-scale none" to disable. New incoming audio format detected: 44100 Hz, 16 channels, 16 bits per sample, codec PCM [CoreAudio] Audio reinitialized to 16-bit, 2 channels, 44100 Hz Audio reconfiguration succeeded (2 channels, 2 Bps, 44100 Hz, codec: PCM). [CoreAudio] Audio buffer underflow. SSRC 293b915e: 16112/16256 packets received (99.11%), 144 lost, max loss 64. [Audio decoder] Received 6975488/6975488 B, decoded 217984 samples in 5.00 sec. [Audio decoder] Channel 0 - volume: -49.41 dBFS RMS, -29.79 dBFS peak. [Audio decoder] Channel 1 - volume: -54.81 dBFS RMS, -34.95 dBFS peak. [Audio decoder] Channel 2 - volume: -51.00 dBFS RMS, -34.19 dBFS peak. [Audio decoder] Channel 3 - volume: -51.00 dBFS RMS, -34.19 dBFS peak. [Audio decoder] Channel 4 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 5 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 6 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 7 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 8 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 9 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 10 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 11 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 12 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 13 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 14 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 15 - volume: -inf dBFS RMS, -inf dBFS peak. SSRC 293b915e: 27648/27648 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7061504/7061504 B, decoded 220672 samples in 5.00 sec. [CoreAudio] Audio buffer underflow. [Audio decoder] Channel 0 - volume: -49.13 dBFS RMS, -29.79 dBFS peak. [Audio decoder] Channel 1 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 2 - volume: -46.78 dBFS RMS, -34.88 dBFS peak. [Audio decoder] Channel 3 - volume: -46.78 dBFS RMS, -34.88 dBFS peak. [Audio decoder] Channel 4 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 5 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 6 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 7 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 8 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 9 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 10 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 11 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 12 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 13 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 14 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 15 - volume: -inf dBFS RMS, -inf dBFS peak. SSRC 293b915e: 27392/27392 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7065600/7065600 B, decoded 220800 samples in 5.01 sec. [Audio decoder] Channel 0 - volume: -49.71 dBFS RMS, -29.79 dBFS peak. [Audio decoder] Channel 1 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 2 - volume: -48.39 dBFS RMS, -34.86 dBFS peak. [Audio decoder] Channel 3 - volume: -48.39 dBFS RMS, -34.86 dBFS peak. [Audio decoder] Channel 4 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 5 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 6 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 7 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 8 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 9 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 10 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 11 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 12 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 13 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 14 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 15 - volume: -inf dBFS RMS, -inf dBFS peak. SSRC 293b915e: 27648/27648 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7061504/7061504 B, decoded 220672 samples in 5.00 sec. [Audio decoder] Channel 0 - volume: -50.86 dBFS RMS, -29.79 dBFS peak. [Audio decoder] Channel 1 - volume: -62.55 dBFS RMS, -35.10 dBFS peak. [Audio decoder] Channel 2 - volume: -48.76 dBFS RMS, -35.09 dBFS peak. [Audio decoder] Channel 3 - volume: -48.76 dBFS RMS, -35.09 dBFS peak. [Audio decoder] Channel 4 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 5 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 6 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 7 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 8 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 9 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 10 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 11 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 12 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 13 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 14 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 15 - volume: -inf dBFS RMS, -inf dBFS peak. SSRC 293b915e: 27520/27520 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7057408/7057408 B, decoded 220544 samples in 5.00 sec. [Audio decoder] Channel 0 - volume: -51.32 dBFS RMS, -29.79 dBFS peak. [Audio decoder] Channel 1 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 2 - volume: -52.45 dBFS RMS, -31.89 dBFS peak. [Audio decoder] Channel 3 - volume: -52.45 dBFS RMS, -31.89 dBFS peak. [Audio decoder] Channel 4 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 5 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 6 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 7 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 8 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 9 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 10 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 11 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 12 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 13 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 14 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 15 - volume: -inf dBFS RMS, -inf dBFS peak. SSRC 293b915e: 27520/27520 packets received (100%), 0 lost, max loss 0. [CoreAudio] Audio buffer underflow. [Audio decoder] Received 7061504/7061504 B, decoded 220672 samples in 5.01 sec. [Audio decoder] Channel 0 - volume: -48.92 dBFS RMS, -29.79 dBFS peak. [Audio decoder] Channel 1 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 2 - volume: -46.64 dBFS RMS, -31.13 dBFS peak. [Audio decoder] Channel 3 - volume: -46.64 dBFS RMS, -31.13 dBFS peak. [Audio decoder] Channel 4 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 5 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 6 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 7 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 8 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 9 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 10 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 11 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 12 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 13 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 14 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 15 - volume: -inf dBFS RMS, -inf dBFS peak. Audio dec stats (cumulative): 10566 played / 10823 total audio frames SSRC 293b915e: 27520/27520 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7061504/7061504 B, decoded 220672 samples in 5.00 sec. [Audio decoder] Channel 0 - volume: -49.37 dBFS RMS, -29.79 dBFS peak. [Audio decoder] Channel 1 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 2 - volume: -45.06 dBFS RMS, -30.64 dBFS peak. [Audio decoder] Channel 3 - volume: -45.06 dBFS RMS, -30.64 dBFS peak. [Audio decoder] Channel 4 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 5 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 6 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 7 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 8 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 9 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 10 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 11 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 12 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 13 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 14 - volume: -inf dBFS RMS, -inf dBFS peak. [Audio decoder] Channel 15 - volume: -inf dBFS RMS, -inf dBFS peak. Played 1582720 audio samples in 35.982593 seconds (43985.712977 samples per second). Audio dec stats (cumulative): 12263 played / 12541 total audio frames Pbuf: total 19923463/19941504 packets received (99.90953%). Exit

Just FYI, I've just fixed an error causing a crash with your channel map configuration, I'd advise to upgrade to current continuous build (or it will later land to 1.7.3 update).

I have noticed some crashes (including segmentation faults) when was playing with audio channel mapping, but I think the problem is irrelevant :) Thanks anyway!

MartinPulec commented 2 years ago

@vrslev thanks for the data. I've tested with your setup on 2 computers - both using 16 channel BlackHole. First was very old Mac Pro (Early 2008), the second recent M1 Macbook.

The Macbook was without a problem. Mac Pro was more problematic, I make it work in the end by using --param audio-buffer-len=300 for the receiver and -m 9000 (Jumbo frames on sender), although still the underflow occurs from times to times. It is definitely a performance issue there because the (per-thread load was peaking up to 100% as per top(1)).

Can you check if top isn't also peaking to 100%? On the M1 notebook, the maximal load peaked to something like one third.

vrslev commented 2 years ago

@MartinPulec CPU load is 17-23% on one core both for sender and receiver on M1 MacBook. After setting options you suggested it became 21-28%.

MartinPulec commented 2 years ago

Hi @vrslev, thanks for the info. That is quite interesting, setting Jumbo frames should definitely decrease the load on both sides, not increase. Anyway, the difference doesn't seem to be significant. I've just pushed change (built in the continuous), that displays how much samples was skipped.

Anyways, can you confirm that the problem is really audible? I was thinking that even though not all requested samples are written to the API, it can deal with lower amount (either resampling or requesting samples earlier) and thus it can be false positive.

vrslev commented 2 years ago

@MartinPulec Here are logs on fresh build:

Sender ❯ /Applications/uv-qt.app/Contents/MacOS/uv -s coreaudio:60 127.0.0.1 --audio-capture-format channels=16 -m 9000 MasterPortDestroyer is armed UltraGrid 1.7+ (tags/continuous rev 57181368 built Mar 14 2022 11:30:02) Display device : none Capture device : none Audio capture : coreaudio:60 Audio playback : none MTU : 9000 B Video compression: none Audio codec : PCM Network protocol : UltraGrid RTP Audio FEC : none Video FEC : none Created new RTP session with SSRC 0x50c85c7e. Display initialized-none Video capture initialized-none Created new RTP session with SSRC 0x1f73fc3b. Audio sending started. [Audio sender] Sent 232832 samples in last 5.000086 seconds. [Audio sender] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak [Audio sender] Sent 240000 samples in last 5.000179 seconds. [Audio sender] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak [Audio sender] Sent 240128 samples in last 5.002441 seconds. [Audio sender] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak [Audio sender] Sent 240128 samples in last 5.002477 seconds. [Audio sender] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak [Audio sender] Sent 240128 samples in last 5.002630 seconds. [Audio sender] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak [Audio sender] Sent 240128 samples in last 5.002585 seconds. [Audio sender] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak [Audio sender] Sent 240128 samples in last 5.002518 seconds. [Audio sender] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak [Audio sender] Sent 240128 samples in last 5.002584 seconds. [Audio sender] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak [Audio sender] Sent 240000 samples in last 5.000445 seconds. [Audio sender] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak [Audio sender] Sent 240128 samples in last 5.003239 seconds. [Audio sender] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak [Audio sender] Sent 240128 samples in last 5.002153 seconds. [Audio sender] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak [Audio sender] Sent 240128 samples in last 5.002301 seconds. [Audio sender] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak [Audio sender] Sent 240128 samples in last 5.002672 seconds. [Audio sender] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak [Audio sender] Sent 240128 samples in last 5.002189 seconds. [Audio sender] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak Exit [CoreAudio] writing buffer caused error -66748. [CoreAudio] writing buffer caused error -66748. [CoreAudio] writing buffer caused error -66748. MasterPortDestroyer triggered
Receiver ❯ /Applications/uv-qt.app/Contents/MacOS/uv -r coreaudio 127.0.0.1 --param audio-buffer-len=300 MasterPortDestroyer is armed UltraGrid 1.7+ (tags/continuous rev 57181368 built Mar 14 2022 11:30:02) Display device : none Capture device : none Audio capture : none Audio playback : coreaudio MTU : 1500 B Video compression: none Audio codec : PCM Network protocol : UltraGrid RTP Audio FEC : none Video FEC : none [CoreAudio play.] Using adaptive buffer. In case of problems, try "--param audio-disable-adaptive-buffer" option. Created new RTP session with SSRC 0x7b683f91. Display initialized-none Video capture initialized-none Created new RTP session with SSRC 0x121814aa. Audio receiving started. New incoming audio format detected: 48000 Hz, 16 channels, 16 bits per sample, codec PCM [CoreAudio play.] Audio reinitialized to 16-bit, 16 channels, 48000 Hz Audio reconfiguration succeeded (16 channels, 2 Bps, 48000 Hz, codec: PCM). Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! SSRC 50c85c7e: 28768/28800 packets received (99.89%), 32 lost, max loss 32. [Audio decoder] Received 7626752/7626752 B, decoded 238336 samples in 5.00 sec. [Audio decoder] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! SSRC 50c85c7e: 29952/29952 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7684096/7684096 B, decoded 240128 samples in 5.00 sec. [Audio decoder] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! SSRC 50c85c7e: 30080/30080 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7684096/7684096 B, decoded 240128 samples in 5.00 sec. [Audio decoder] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! SSRC 50c85c7e: 29952/29952 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7684096/7684096 B, decoded 240128 samples in 5.00 sec. [Audio decoder] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! SSRC 50c85c7e: 30080/30080 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7680000/7680000 B, decoded 240000 samples in 5.00 sec. [Audio decoder] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! SSRC 50c85c7e: 29952/29952 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7684096/7684096 B, decoded 240128 samples in 5.00 sec. [Audio decoder] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak Audio dec stats (cumulative): 11610 played / 11617 total audio frames Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! SSRC 50c85c7e: 29824/29824 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7680000/7680000 B, decoded 240000 samples in 5.00 sec. [Audio decoder] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! SSRC 50c85c7e: 30080/30080 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7680000/7680000 B, decoded 240000 samples in 5.00 sec. [Audio decoder] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! SSRC 50c85c7e: 29952/29952 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7684096/7684096 B, decoded 240128 samples in 5.00 sec. [Audio decoder] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! SSRC 50c85c7e: 29952/29952 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7680000/7680000 B, decoded 240000 samples in 5.00 sec. [Audio decoder] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! SSRC 50c85c7e: 30080/30080 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7684096/7684096 B, decoded 240128 samples in 5.00 sec. [Audio decoder] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! SSRC 50c85c7e: 29952/29952 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7684096/7684096 B, decoded 240128 samples in 5.00 sec. [Audio decoder] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak Warning: ring buffer overflow!!! Audio dec stats (cumulative): 23215 played / 23249 total audio frames Warning: ring buffer overflow!!! SSRC 50c85c7e: 30080/30080 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7680000/7680000 B, decoded 240000 samples in 5.00 sec. [Audio decoder] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! Warning: ring buffer overflow!!! SSRC 50c85c7e: 29952/29952 packets received (100%), 0 lost, max loss 0. [Audio decoder] Received 7684096/7684096 B, decoded 240128 samples in 5.00 sec. [Audio decoder] Volume: -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf -inf/-inf dBFS RMS/peak Warning: ring buffer overflow!!! Played 3431808 audio samples in 72.499309 seconds (47335.733876 samples per second). Audio dec stats (cumulative): 26783 played / 26826 total audio frames Pbuf: total 49513760/49520896 packets received (99.98559%). Exit MasterPortDestroyer triggered

Yes, I can here interrupts :(

vrslev commented 2 years ago

My interest is much lower not because I decided to use JACK and JackTrip in my project. But I'm happy to continue testing for you guys if you need help 🙏

MartinPulec commented 2 years ago

I've looked into the logs and the receiver one was a bit confusing to me at first. If you look at it more closely, there isn't underflow anymore but overflows all the time. I realized that I've met this when UltraGrid is run headlessly - CoreAudio doesn't play the output at all. However it suffices to interrupt the screensaver (either physically or with remote desktop) - would it be possible to rerun it and post the logs? I am afraid that I don't know if it helps, it depends :)

vrslev commented 2 years ago

@MartinPulec I don't really understand what should I test. Same setup with latest build?

MartinPulec commented 2 years ago

I meant the lines: Warning: ring buffer overflow!!! means that nothing is played, perhaps Mac is sleeping, so the logs are not helpful. But don't worry, if you do not need this to be resolved, we can postpone it for now.

vrslev commented 2 years ago

☺️👌