cancel
Showing results for 
Search instead for 
Did you mean: 

Oculus Spatializer not working on Quest, but works in editor and windows builds

will_anderson
Level 2
Hey, I have a pretty unique problem with the Oculus Spatializer and Wwise. 

Currently we are using Wwise 2018.1.6 with OSP 1.38.0

As far as I'm aware the plugin is set up correctly. It works in wwise, It works in the unity editor and it works in windows rift builds. 

When we build to quest, it does not work at all. Any audio using the OSP does not spatialize, have reflections/reverb of falloff

I have double checked that the libOculusSpatializerWwise2018.so is in the correct DSP folder for both arm64 and arm7 (does not work on either build target). I followed this guide: 
https://developer.oculus.com/documentation/audiosdk/latest/concepts/osp-wwise-unity-install/

and this guide:
https://developer.oculus.com/documentation/audiosdk/latest/concepts/osp-wwise-overview/


D Unity   : Unable to lookup library path for 'libAudioPluginOculusSpatializer', native render plugin support disabled.07-02 16:07:24.954 20666 20681
E Unity   : Unable to find libAudioPluginOculusSpatializer

I have read that the "Unable to find libAudioPluginOculusSpatializer" error is a false error here, but that doesn't explain why the spatialization is not working. 
https://issuetracker.unity3d.com/issues/android-arm64-build-cannot-load-libaudiopluginoculusspatiali...

We have tried:
mono armv7 builds (debug and release)
il2cpp armv7 builds (debug and release)
il2cpp arm64 builds (debug and relase) 
with no success

Do you have any idea what i might be doing wrong and is there any info i could give you to help debug this. 

Things that I am unsure of currently: 
1. the only plugin i installed to my Wwise installation (following the second linked guide) is the windows 64 bit plugin. Do i need to also install an android plugin for the android banks. In my android bank plugin xml i have
<Plugin Name="AttachableMixerInput" ID="32837795" DLL="OculusSpatializerWwise"/> 
<Plugin Name="Oculus Spatializer" ID="9572518" DLL="OculusSpatializerWwise"/>

which seems to match the naming convention of the windows dll and not the android .so file 

2. Do i have to manually register the plugin code side? If so, why would it work in editor and in windows builds? Ive read conflicting information about this online, but it seems like the C++ wwise plugin should handle registration of the plugin 

3. Are there any steps missing in those two guides? Im kinda at a loss at this point ive been debugging for about a week. 

Here is a screenshot of my folder structure for reference 
mbxebcmlvenf.png
aecg7r6zlqis.png

and here is where i installed the plugin to wwise 
pg3qqlab6nyn.png
7 REPLIES 7

RegularFriend
Level 2
We are running Unity 2018.4 forgot to mention that 

Petroza
Level 7
Hi Will,

I just tested this and found that using the default file name for our Android plugin doesn't work with Unity+Wwise. Can you try renaming libOculusSpatializerWwise2018.so to libOculusSpatailizer.so, and let me know if that works?

If you can confirm this works, then I'll get the docs updated so they have the correct instructions.

Cheers,
Pete

RegularFriend
Level 2
Hey,

So I tried renaming both the .so file itself and then the .soname property of the so file using greadelf. Neither seems to work. 

we have tried:
-The name you suggested for the filename, unedited soname 
-The name you suggested for the filename, matching soname
-The original name of the file, soname set to what you suggested

none seemed to work 

Here is our modified .so file if you wanna check it out. it should have the internal .soname changed to what you said as well as the file name: https://drive.google.com/open?id=13VrIeJoFNg0nYGCM_jnBOs8LRZcv7j3p

We used patchelf to change and test the soname without de/recompiling. 

Still get the error on startup and no specialization in builds. Not sure what's up, but we would really like to have OSP on our device as it sounds much better than other solutions we have tried. Any help would be appreciated. 

-Will

Petroza
Level 7
Hi Will,

So I just created a fresh project from scratch. I used Wwise Hub to integrate Wwise 2019.1.1 into my Unity 2018.2.1f1 project.

I downloaded the 1.38 Spatializer package from the download page, put the 64-bit plugin in my Wwise installation and my Unity project. Everything works fine in editor.

Then I added libOculusSpatailizerWwise2018.so to Assets\Wwise\Deployment\Plugins\Android\armeabi-v7a\DSP

When I deployed on Oculus Quest the sound was playing as 3D panning not spatializing, because it didn't load the plugin properly, this is error I got in logcat:
(Filename: ./Runtime/Export/Debug.bindings.h Line: 43)
07-12 14:48:55.838 5456 5470 I Unity :
07-12 14:48:55.845 5456 5510 I AKDEBUG : dlopen failed: library "/data/app/com.oculus.unity_wwise_test-2/lib/arm/libOculusSpatializerWwise.so" not found
07-12 14:48:55.845 5456 5510 I AKDEBUG : AK Error:
07-12 14:48:55.845 5456 5510 I AKDEBUG : Could not find plugin dynamic library OculusSpatializerWwise
I renamed libOculusSpatailizerWwise2018.so to libOculusSpatailizerWwise.so in Windows explorer (without changing the soname)

Then rebuilt the app in Unity and it all worked fine. I repeated the same process with the ARM64 plugin and that worked after rename as well.

Note: you can inspect the contents of an APK file using 7-zip, this is a good way to check if the library files are in the right location

Let me know if it's still not working for you and we can follow up on email.

RegularFriend
Level 2
Thank you I will look into it, I imagine its likely i broke something when editing hte soname. 

-Wil

RegularFriend
Level 2
Could also be because of unity verion / wwise version differnces we are one

Wwise 2018.1.6
Unity 2018.4

I'll see if versioning makes a difference as well. Thank you for all your help!

-Will

RegularFriend
Level 2
Sent you a DM here. Still having some issues.