Looks like this is because you aren’t setting the correct rotation- you are passing forward and up vectors of [0 0 1] and [0 1 0] which will mean the listener is always pointing globally forwards.
To correct this you will need to get your camera rotation, and from there calculate forward and up vectors. There are a few different ways to calculate them depending on what you get back from the camera’s rotation- what game engine / geometry library are you using?
Ok, well as far as I know that doesn’t have a camera class so I’ll assume that is your own creation? Do you have something in there like GetForwardVector() or GetLeftVector()?
So you did- in which case, you need to convert your camera’s front and up vectors to FMOD_VECTOR and call System::set3DListenerAttributes witth those instead of [0 0 1] and [0 1 0].
Again, without knowing what your Camera class provides or your geometry’s handedness this might not be 100% correct, but I would expect something like this to fix the issue: