Binaural Effect¶
Typedefs¶
-
typedef struct _IPLBinauralEffect_t *IPLBinauralEffect¶
Spatializes a point source using an HRTF, based on the 3D position of the source relative to the listener.
The source audio can be 1- or 2-channel; in either case all input channels are spatialized from the same position.
Functions¶
-
IPLerror iplBinauralEffectCreate(IPLContext context, IPLAudioSettings *audioSettings, IPLBinauralEffectSettings *effectSettings, IPLBinauralEffect *effect)¶
Creates a binaural effect.
- Parameters
context – The context used to initialize Steam Audio.
audioSettings – Global audio processing settings.
effectSettings – The settings to use when creating the binaural effect.
effect – [out] The created binaural effect.
- Returns
Status code indicating whether or not the operation succeeded.
-
IPLBinauralEffect iplBinauralEffectRetain(IPLBinauralEffect effect)¶
Retains an additional reference to a binaural effect.
- Parameters
effect – The binaural effect to retain a reference to.
- Returns
The additional reference to the binaural effect.
-
void iplBinauralEffectRelease(IPLBinauralEffect *effect)¶
Releases a reference to a binaural effect.
- Parameters
effect – The binaural effect to release a reference to.
-
void iplBinauralEffectReset(IPLBinauralEffect effect)¶
Resets the internal processing state of a binaural effect.
- Parameters
effect – The binaural effect to reset.
-
IPLAudioEffectState iplBinauralEffectApply(IPLBinauralEffect effect, IPLBinauralEffectParams *params, IPLAudioBuffer *in, IPLAudioBuffer *out)¶
Applies a binaural effect to an audio buffer.
This effect CANNOT be applied in-place.
- Parameters
effect – The binaural effect to apply.
params – Parameters for applying the effect.
in – The input audio buffer. Must be 1- or 2-channel.
out – The output audio buffer. Must be 2-channel.
- Returns
IPL_AUDIOEFFECTSTATE_TAILREMAINING
if any tail samples remain in the effect’s internal buffers, orIPL_AUDIOEFFECTSTATE_TAILCOMPLETE
otherwise.
Structures¶
-
struct IPLBinauralEffectSettings¶
Settings used to create a binaural effect.
-
struct IPLBinauralEffectParams¶
Parameters for applying a binaural effect to an audio buffer.
Public Members
-
IPLVector3 direction¶
Unit vector pointing from the listener towards the source.
-
IPLHRTFInterpolation interpolation¶
The interpolation technique to use.
-
IPLfloat32 spatialBlend¶
Amount to blend input audio with spatialized audio.
When set to 0, output audio is not spatialized at all and is close to input audio. If set to 1, output audio is fully spatialized.
-
IPLfloat32 *peakDelays¶
Base address of an array into which to write the left- and right-ear peak delays for the HRTF used to spatialize the input audio.
Memory for this array must be allocated and managed by the caller. Can be NULL, in which case peak delays will not be written.
-
IPLVector3 direction¶
Enumerations¶
-
enum IPLHRTFInterpolation¶
Techniques for interpolating HRTF data.
This is used when rendering a point source whose position relative to the listener is not contained in the measured HRTF data.
Values:
-
enumerator IPL_HRTFINTERPOLATION_NEAREST¶
Nearest-neighbor filtering, i.e., no interpolation.
Selects the measurement location that is closest to the source’s actual location.
-
enumerator IPL_HRTFINTERPOLATION_BILINEAR¶
Bilinear filtering.
Incurs a relatively high CPU overhead as compared to nearest-neighbor filtering, so use this for sounds where it has a significant benefit. Typically, bilinear filtering is most useful for wide-band noise-like sounds, such as radio static, mechanical noise, fire, etc.
-
enumerator IPL_HRTFINTERPOLATION_NEAREST¶