Firelight Technologies FMOD Studio API
FMOD_OUTPUT_OBJECT3DINFO
This structure is passed to the plugin via FMOD_OUTPUT_OBJECT3DUPDATE_CALLBACK, so that whatever object based panning solution available can position it in the speakers correctly. Object based panning is a 3D panning solution that sends a mono only signal to a hardware device, such as Dolby Atmos or other similar panning solutions.
C/C++ Syntax
typedef struct {
float *buffer;
unsigned int bufferlength;
FMOD_VECTOR position;
float gain;
float spread;
float priority;
} FMOD_OUTPUT_OBJECT3DINFO;
JavaScript Syntax
struct FMOD_OUTPUT_OBJECT3DINFO
{
bufferlength,
gain,
spread,
priority,
};
Members
buffer
[r] Mono PCM floating point buffer. This buffer needs to be scaled by the gain value to get distance attenuation.
bufferlength
[r] Length in PCM samples of buffer.
position
[r] Vector relative between object and listener.
gain
[r] 0.0 to 1.0 - 1 = 'buffer' is not attenuated, 0 = 'buffer' is fully attenuated.
spread
[r] 0 - 360 degrees. 0 = point source, 360 = sound is spread around all speakers
priority
[r] 0.0 to 1.0 - 0 = most important, 1 = least important. Based on height and distance (height is more important).
Remarks
FMOD does not attenuate the buffer, but provides a 'gain' parameter that the user must use to scale the buffer by. Rather than pre-attenuating the buffer, the plugin developer can access untouched data for other purposes, like reverb sending for example. The 'gain' parameter is based on the user's 3D custom rolloff model.
Members marked with [r] mean read only for the developer, read/write for the FMOD system. Members marked with [w] mean read/write for the developer, read only for the FMOD system.
JavaScript only :
Not all fields are currently supported or may not work as expected at this time. To initialize an new instance in javascript use "FMOD.OUTPUT_OBJECT3DINFO()", no 'new' keyword is required.
See Also
Version 1.10.03 Built on Feb 1, 2018