---------------------- I'm sorry, but the knowledge sources do not contain specific information about microphone support or known issues on the HTC VIVE Focus 3 platform. The documentation covers microphone setup and troubleshooting for platforms like Mac, iOS, Android, and general Unity settings, but does not mention the VIVE Focus 3 or provide platform-specific guidance for it.
If the microphone works on Pico, Oculus, and PC but not on the VIVE Focus 3, it may be due to platform-specific compatibility or permission issues not addressed in the current Normcore documentation. I recommend checking your Unity microphone permissions and device settings, as well as reaching out to the Normcore community for further assistance, as suggested in the documentation for unresolved issuesVoice chat common questions. ---------------------- Note: you can ask me a follow up question by @ mentioning me again ----------------------
On the Vive Focus 3, Normcore uses the Unity Microphone API. I would start by verifying that the Unity microphone API works on that platform. HTC has been known to be fairly buggy there
Also make sure nothing else in your app tries to bind to the microphone too. Unityβs microphone API will return silence for all future attempts to bind to the microphone
So, I debugged the connection to the room and catch next error :
AndroidPlayer "HTC_VIVE_Focus_3" GameObject has multiple AudioSources and/or AudioListeners attached. While built-in filters like lowpass are instantiated separately, components implementing OnAudioFilterRead may only be used by either one AudioSource or AudioListener at a time. The reason for this is that any state information used by the callback exists only once in the component, and the source or listener calling it cannot be inferred from the callback. In this case the OnAudioFilterRead callback of script AudioPreprocessorPlaybackListener was first attached to a component of type AudioSource on the game object Camera after which a component of type AudioListener tried to attach it. UnityEngine.GameObject:AddComponent() Normal.Realtime.RealtimeAvatarVoice:ConnectLocalAudioStream() Normal.Realtime.<RequestMicrophonePermissionAndConnectLocalAudioStreamTask>d__36:MoveNext() UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr) Normal.Realtime.RealtimeAvatarVoice:RequestMicrophonePermissionAndConnectLocalAudioStream() Normal.Realtime.RealtimeAvatarVoice:ConnectAudioStream() Normal.Realtime.RealtimeAvatarVoice:Update()
[./Modules/Audio/Public/AudioCustomFilter.cpp line -1521741816]
I guess the line 287 in the attached image throws the error. The script is RealtimeAvatarVoice. SDK version 2.15.4. What could be the solution to it?
can you show me the logic for how the echoCancellation book is calculated and what each of the values log on that device? it should evaluate to false on that platform as it has hardware echo cancellation already
@maxweisel Well, I've forked like you suggested with include of "wvr" string in the list of "isXRPlatform" variable set. The error is gone but the microphone still didn't work properly. I've found the post from liamc and added that check in the forked RealtimeAvatarVoice component. The microphone become pretty stable