I’ve been tinkering with the FMOD_3D
this weekend and noticed strange behaviors.
I could turn an FMOD_3D
sound into a stereo sound by calling ChannelControl::set3DSpread()
with the value 180, but there are some catches.
Only certain combinations of x, y, and z of the position vector worked.
I was testing with different values to see if there’s a rule or something but soon gave up for other reasons, which I will explain below.
Anyway, below are some combinations I tested.
{ 0.0f, 0.0f, 0.0f } : Mono at the center
{ 0.0f, 0.0f, 0.000000001f } : Stereo at the center
{ 0.0f, 0.0f, -0.000000001f } : Mono at the far left
{ -50.0f, -50.0f, -50.0f } : Stereo at the center
{ 50.0f, 50.0f, 50.0f } : Stereo at the center
{ 0.000000001f, 0.000000001f, 0.000000001f } : Stereo at the center
{ 0.0f, 0.000000001f, 0.000000001f } : Stereo at the center
{ 0.0f, -0.000000001f, 0.000000001f } : Stereo at the center
{ 0.000000001f, 0.0, 0.000000001f } : Stereo at the center
{ -0.000000001f,0.0, 0.000000001f } : Stereo at the center
{ 0.0f, 0.00000001f, 0.000000001f } : Mono at the center
{ 0.0f, -0.00000001f, 0.000000001f } : Mono at the center
{ 0.00000001f, 0.0, 0.000000001f } : Mono at the center
{ -0.00000001f, 0.0, 0.000000001f } : Mono at the center
{ -5000.0f, -5000.0f, 5000.0f } : Stereo at the center
{ 0.0f, 0.0f, 5000.0f } : Stereo at the center
I stopped testing because :
-
If a different value is passed to ChannelControl::set3DSpread
, then different combinations are needed.
-
After setting the 3D spread thing, the sound doesn’t work as other FMOD_3D
sounds anymore. I tried many different positions, but all I got was one of the three types as listed above.
“Mono at the center, Stereo at the center, and Mono at the far left.”
I couldn’t locate the sound at the exact position I wanted at all.
-
After adding FMOD_DSP_TYPE_PAN
to the channel, it suddenly feels like as if set3DSpread
was called with the value 85 or something. I mean, it feels much narrower than 180.
-
Whatever I do with FMOD_DSP_PAN_2D_ROTATION
, it didn’t make any difference at all.
Sorry for spamming here.
Let me ask again:
- When I don’t use doppler, do I still need to pass position vectors multiplied by the distance factor to
set3DAttributes
?
- Is there any way to locate a stereo sound in a 3D space?