One of the problems with network audio is that computers at each end may have slightly different sampling frequencies due to differences between the clocks on the sound card. Computer clocks vary. If the sending computer is slower than the receiving computer, then even if you have a buffer, your buffer will be slowly empty. If it works faster, you will gradually get excess data. This man tried only what you did and saw the dropout. Please note that buying more expensive sound cards will reduce his problem, but will not completely fix it unless he does something like blocking them for a GPS time signal. Your regular casual user will not do this.
Perhaps for short gears you can handle it. For example, if you make a voice and you stop transmitting when the speaker is quiet, then you can synchronize your buffers when you restart. Interestingly, this will be with latency. The โrightโ solution requires re-sampling the sound on the receiving side in order to cope with a small difference in sampling frequency.
With such a small change in frequency, you could leave with your closest neighbor - effectively pass or duplicate samples so often. The digital amateur radio software I've heard about uses linear interpolation between samples. You need to maintain and control the scaling factor to make sure you clear your buffer so that new data arrives, but has a control loop that won't be too frustrated by network vagaries and won't try to make sudden big changes.
I donโt know if you took it into account or not. I saw people torture this, who do not. I, besides people, are currently using the former audio conferencing library to take care of this. If you're curious about how to do this, the digital ham community is a good place to watch.
source share