vircadia / vircadia-native-core

Vircadia open source agent-based metaverse ecosystem.
https://vircadia.com/
Other
531 stars 175 forks source link

microphone needed to connect to audio mixer #1166

Open JulianGro opened 3 years ago

JulianGro commented 3 years ago

So at least on Linux, when your microphone doesn't work Vircadia just doesn't connect to the audio mixer.

daleglass commented 3 years ago

Doesn't work how? There's no microphone found in the system? This seems hard, because PulseAudio creates "monitor" sources, that record for instance whatever sound is being played on the system. So long there's sound at all it should be possible for an application to record something, even if it's the system sounds.

PulseAudio also has a "null sink", which provides sound output into /dev/null in the absence of audio hardware. This can be helpful in that applications in a VM without sound hardware will be able to "play" sound just fine. This may also come with the corresponding "monitor" source (I've not checked this part)

Under what distribution, with what audio system?

Are there any errors in the log?

JulianGro commented 3 years ago

I my case my microphone doesn't record anything unless I change a setting in alsamixer (just disabling and enabling noise reduction). This is on Linux Mint 19.3 with PulseAudio. There has been similar reports on MacOS though, where people apparently don't hear others talking when Vircadia doesn't have microphone permissions. (The sound works otherwise)

ctrlaltdavid commented 3 years ago

A couple of program logs might help shed some light on the matter:

Also, does "doesn't connect to the audio mixer" mean that the audio ping value in the Stats overlay is -1?

stale[bot] commented 3 years ago

Hello! Is this still an issue?

JulianGro commented 3 years ago

:angry:

ctrlaltdavid commented 3 years ago

If the problem is "can connect to the audio mixer but don't hear any audio" then this could be something to do with bool AudioClient::switchInputToAudioDevice(const HifiAudioDeviceInfo inputDeviceInfo, bool isShutdownRequest) not being called or being called with invalid "no audio input device" in the inputDeviceInfo field. If there is no audio input device the _dummyTimer is supposed to be started up to send SilentAudioFrame packets to the audio mixer. ... The audio mixer sends audio to a user client only if it's receiving some sort of audio packet from the user client.

JulianGro commented 3 years ago

It actually doesn't connect. Or rather, you don't hear people talking and once you plug a microphone in you hear the sound that it makes when you connect to an audio mixer.

stale[bot] commented 2 years ago

Hello! Is this still an issue?