0
0

Hello there,

I am currently playing with DSPs. And I’ve done some custom sound source DSP just like the oscillator version BUT…

What would be the trick to make them 3D sounds ???!!!

  • You must to post comments
0
0

When you play the source/DSP, you get back a channel, and that is what is positioned in 3D space. Call Channel::set3DAttributes(), and it should move relative to the listener position.

  • You must to post comments
0
0

As there is no default sound mode for the channel, you will probably have to call Channel::setMode to FMOD_3D as well.

  • You must to post comments
0
0

Cool!
That does fix my issue, thanks !

  • You must to post comments
0
0

But…

It seems now that initializing the fmod system with the flag FMOD_INIT_3D_RIGHTHANDED won’t have effect on this custom DSP source. IE I still listen the sound coming from the right when the x member of the FMOD_VECTOR is positive

In the meanwhile, i’d like to notice something strange in the documentation: (4.17.07)

In the Fmod INIT Flags:

FMOD_INIT_3D_RIGHTHANDED
All platforms – FMOD will treat +X as [b:2qar66z7]right[/b:2qar66z7], +Y as up and +Z as backwards (towards you).

And in set3DListenerAttributes:
By default, FMOD uses a left-handed co-ordinate system. This means +X is right, +Y is up, and +Z is forwards.
To change this to a right-handed coordinate system, use FMOD_INIT_3D_RIGHTHANDED. This means +X is [b:2qar66z7]left[/b:2qar66z7], +Y is up, and +Z is forwards.

  • You must to post comments
0
0

I can also add that setting once the default listener position like it is done in the 3D sample project seems to solve the problem. But I still dont see why it should be done :

FMOD_VECTOR pos = { 0.0f, 0.0f, 0.0f };
FMOD_VECTOR forward = { 0.0f, 0.0f, 1.0f };
FMOD_VECTOR up = { 0.0f, 1.0f, 0.0f };
FMOD_VECTOR vel = { 0.0f, 0.0f, 0.0f };

result = system->set3DListenerAttributes(0, &pos, &vel, &forward, &up);

  • You must to post comments
Showing 5 results
Your Answer

Please first to submit.