Scratchy Microphone - part2

Hi Michael

I'm fighting since many days also with mic problems.... if I use voice recorder on windows 10, the recording is choppy. sounds like the single packets were lost or missplaced - it is hard to understand what was recorded.

This is my setup:
- Rode USB-NT Microphone
- Raspberry Pi4+ and Pi3+. all with the latest server 4.1.3 (optimized)
- Windows 10 client (VirtualHere 5.0.2)
- everything is connected over gigabit switch (Unifi). The Raspberry has 1GB link.
Note: Mouse, Keyboard, gaming pad - all of them work very good, without any delays. Just microphone recording is the issue.

I've tried to connect the microphone directly to the host computer - the recording is fine.

For me it looks like transport problem between VirtualHere Client and Server.

Do you have any advice how to fix it?

best regards
Lukas

#2

That microphone is probably too sensitive for the extra network latency. I notice they advertise "studio microphone" which probably means they have strict timing requirements for the signals. What you could try is use voicemeeter and use the microphone as the input and adjust the buffer properties to e.g 1024 samples and that might fix the issue

#3

I've experimented with running USB audio over VirtualHere on a WiFi connection quite a bit, and here's what I've learned.

USB audio is super sensitive to latency and late packets. Even if the packets aren't lost, if they are late because they are waiting for other network traffic or need to be resent, that can be enough to interrupt the USB connection and make the sound choppy. I bet if you watch the latency graph on the client, the times will be jumping all over. Even if the latency is still low overall, that can be enough to cause issues.

You can try reducing the recording quality from the sound control panel to reduce how much throughput it needs (Example: 192khz/24bit audio uses around 14Mbps if I remember right). Reducing the compression on the client can help a bit too.

A lighter weight Linux distro might help. I started using DietPi on my Pi4 recently. It runs far less in the background and could free up some processing power for you, which might help.

Also, if the server is transmitting data over the same connection that is used for internet access, that extra traffic can introduce more latency, like streaming, downloading or watching videos. If you can create a dedicated network connection that is only for VirtualHere traffic, that will do the most to reduce latency as it won't be fighting with other network traffic. You would need an extra router and either an internal network card or a USB dongle to set that up though.

Hopefully some of that will be helpful for you.

#4

You've mentioned WiFi - have you tried connecting the PC via an ethernet cable? It should reduce network latency and give you less late packets.

#5

@MarkoD Magicld mentioned that everything he is running is through his UniFi gigabit switch. I only mentioned my experimentation with WiFi because I think those ideas could also apply to a wired connection, especially extra traffic on the wire. Guess i should have been more clear, sorry.

#6

@Magicld As another idea, you can just try a different ethernet adapter on the client PC. Just did a comparison experiment on my laptop using it's onboard ethernet and then a USB ethernet dongle, and the latency graph is noticeably more level overall with the dongle. The same might work for you.