I’m not sure if this is a bug or user error (most likely, it’s me).
I was using setSpeakerPosition() to specify the physical angles of the actual speaker layout. Just to make sure it worked, I used setSpeakerPosition() to swap the right and left speakers. I played a 3D sound “from the right” and it now came out of the left speaker. Cool.
Later on, I was using a 3D Event, moving it around using event->set3DAttributes(), which works as expected; the event sound moves where I put it.
But I then tried the “speaker swap” again, and nothing happened. The 3D event played from the right came from the right speaker regardless of setSpeakerPosition(). Non-Event sounds “swapped” when I used setSpeakerPosition(), but not 3D Event sounds.
I then changed how I set the 3D Event position by grabbing its ChannelGroup and using group->set3DAttributes(). This worked - a non-event sound AND an event sound played “from my right” came out of the left speaker when swapped, and out of the right speaker when not swapped.
I assume that event->set3DAttributes() is the “correct” way of moving an Event around (especially since it will, I assume, use the front & up vectors to also aim the sound cone if used). However, it appears that event->set3DAttributes() doesn’t pick up on speaker locations that are changed with setSpeakerPosition. The event’s ChannelGroup, however, does appear to take the setSpeakerPosition changes into account.
Am I misunderstanding these two calls?