got it!!!
I was right about the forward vector being -n, but the up vector is of course a vector that projects onto the v-axis in the uv plain, as given by u/n

)
ASEVector3f camForward, camUp;
camForward.Set(-cam.n.x, -cam.n.y, -cam.n.z);
camUp.Set(cam.u.x/cam.n.x, cam.u.y/cam.n.y, cam.u.z/cam.n.z);
camForward.Normalize();
camUp.Normalize();
player.Wav3DSetListenerPosition(&cam.position, &camForward, &camUp);
player.Wav3DSetSourcePosition(&ship.position);
Just in case that helps anyone else. It has applications with the sound library FMOD.