VBAN protocol questions #1023
-
I just discovered that VBAN is supported. :-) I tried the generator -> VBAN stream. It is working, but stuttering on the local network. The stutter is periodical, and depends on the VBAN network settings (Optimal, fast etc). The slower the setting the more rare the glitches. I suspect it's buffer underrun on the PC (receiver) side, because maybe the bitrate is a bit slower on the ESP sender side. Maybe the crystal is a little bit under the rated frequency. Possible, that the PC side VBAN receiver does not have adaptive speed control? :-O Or I just misunderstood the situation? I will measure a clock speed (SPI clock or something) to check, if my ESP32 clock is really slower. Considering the hw mod of the crystal osc is not easy, maybe a sw trick should help on the ESP sender side? For example repeating a sample after a few thousand samples. Anything is better, then constant stuttering. However, considering the one way protocol, it's manual tuning, not adaptive. |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 4 replies
-
You can use the throttle_correction_ms to fine tune the transmission speed: If you get only underruns you can try to speed up the transmission a bit by increasing the negative value. |
Beta Was this translation helpful? Give feedback.
-
The main thing I disliked was that there are no reasonable codecs supported. |
Beta Was this translation helpful? Give feedback.
-
Playing with microseconds I was able reach 30...60 seconds without buffer over/under run, however it's useless, because the thermal drift easily destroys my effort. :-) // delay |
Beta Was this translation helpful? Give feedback.
-
Using a Python program I tested the VBAN UDP stream of the streams-generator-vban example. I measured the bitrate in Python, and found, that the example program's bitrate varies way too much. Your intention probaly was, that the throttle setting acts as fine tuning in the 0.1% range. But it's brutal, throttle +-1 resulted in a few percents. And the random deviation is big too, prevents any slow adaptive sync to keep up. So I think it's a bug in the throttle control. Next I try to fix it. |
Beta Was this translation helpful? Give feedback.
-
I wrote a quick&dirty fix, and now the example is working without buffer under/overflows with either the VB-Audio VBANReceptor or the Python VBAN program. So I misunderstood the situation in my first comments, the problem was on the ESP side, |
Beta Was this translation helpful? Give feedback.
You can use the throttle_correction_ms to fine tune the transmission speed: If you get only underruns you can try to speed up the transmission a bit by increasing the negative value.