Crate audionimbus_sys

Source
Expand description

§audionimbus-sys

Rust bindings to the Steam Audio library. This crate is not meant to be used directly; most users should use audionimbus, a safe wrapper built on top of audionimbus-sys.

§Overview

audionimbus-sys exposes raw bindings to the Steam Audio C library. It is inherently unsafe, as it interfaces with external C code; for a safe API, refer to audionimbus.

§Version compatibility

audionimbus-sys mirrors the version of Steam Audio.

§Installation

audionimbus-sys requires linking against the Steam Audio library during compilation.

To do so, download steamaudio_4.6.1.zip from the release page.

Locate the relevant library for your target platform (SDKROOT refers to the directory in which you extracted the zip file):

PlatformLibrary DirectoryLibrary To Link
Windows 32-bitSDKROOT/lib/windows-x86phonon.dll
Windows 64-bitSDKROOT/lib/windows-x64phonon.dll
Linux 32-bitSDKROOT/lib/linux-x86libphonon.so
Linux 64-bitSDKROOT/lib/linux-x64libphonon.so
macOSSDKROOT/lib/osxlibphonon.dylib
Android ARMv7SDKROOT/lib/android-armv7libphonon.so
Android ARMv8/AArch64SDKROOT/lib/android-armv8libphonon.so
Android x86SDKROOT/lib/android-x86libphonon.so
Android x64SDKROOT/lib/android-x64libphonon.so
iOS ARMv8/AArch64SDKROOT/lib/ioslibphonon.a

Ensure the library is placed in a location listed in the dynamic library search paths (e.g., /usr/local/lib).

Finally, add audionimbus-sys to your Cargo.toml:

[dependencies]
audionimbus-sys = "4.6.1"

§Documentation

Documentation is available at docs.rs.

Since this crate strictly follows Steam Audio’s C API, you can also refer to the Steam Audio C API reference for additional details.

§License

audionimbus-sys is dual-licensed under the MIT License and the Apache-2.0 License. You may choose either license when using the software.

Structs§

IPLAirAbsorptionModel
An air absorption model that can be used for modeling frequency-dependent attenuation of sound over distance.
IPLAmbisonicsBinauralEffectParams
Parameters for applying an Ambisonics binaural effect to an audio buffer.
IPLAmbisonicsBinauralEffectSettings
Settings used to create an Ambisonics binaural effect.
IPLAmbisonicsDecodeEffectParams
Parameters for applying an Ambisonics decode effect to an audio buffer.
IPLAmbisonicsDecodeEffectSettings
Settings used to create an Ambisonics decode effect.
IPLAmbisonicsEncodeEffectParams
Parameters for applying an Ambisonics encode effect to an audio buffer.
IPLAmbisonicsEncodeEffectSettings
Settings used to create an Ambisonics encode effect.
IPLAmbisonicsPanningEffectParams
Parameters for applying an Ambisonics panning effect to an audio buffer.
IPLAmbisonicsPanningEffectSettings
Settings used to create an Ambisonics panning effect.
IPLAmbisonicsRotationEffectParams
Parameters for applying an Ambisonics rotation effect to an audio buffer.
IPLAmbisonicsRotationEffectSettings
Settings used to create an Ambisonics rotation effect.
IPLAudioBuffer
Describes an audio buffer. All audio buffers passed to Steam Audio must be deinterleaved.
IPLAudioSettings
Global settings for audio signal processing.
IPLBakedDataIdentifier
Identifies a “layer” of data stored in a probe batch. Each probe batch may store multiple layers of data, such as reverb, static source reflections, or pathing. Each layer can be accessed using an identifier.
IPLBinauralEffectParams
Parameters for applying a binaural effect to an audio buffer.
IPLBinauralEffectSettings
Settings used to create a binaural effect.
IPLBox
An axis-aligned box. Axis-aligned boxes are used to specify a volume of 3D space.
IPLContextFlags
Additional flags for modifying the behavior of a Steam Audio context.
IPLContextSettings
Settings used to create a context object.
IPLCoordinateSpace3
A 3D coordinate system, expressed relative to a canonical coordinate system.
IPLDirectEffectFlags
Flags indicating which direct path parameters to apply.
IPLDirectEffectParams
Parameters for applying a direct effect to an audio buffer.
IPLDirectEffectSettings
Settings used to create a direct effect.
IPLDirectSimulationFlags
Flags indicating which types of direct simulation should be enabled for a given \c IPLSource.
IPLDirectivity
A directivity pattern that can be used to model changes in sound intensity as a function of the source’s orientation. Can be used with both direct and indirect sound propagation.
IPLDistanceAttenuationModel
A distance attenuation model that can be used for modeling attenuation of sound over distance. Can be used with both direct and indirect sound propagation.
IPLHRTFSettings
Settings used to create an HRTF object.
IPLHit
Information about a ray’s intersection with 3D geometry.
IPLInstancedMeshSettings
Settings used to create an instanced mesh.
IPLMaterial
The acoustic properties of a surface.
IPLMatrix4x4
A 4x4 matrix used to represent an affine transform.
IPLOpenCLDeviceDesc
Describes the properties of an OpenCL device. This information can be used to select the most suitable device for your application.
IPLOpenCLDeviceSettings
Specifies requirements that an OpenCL device must meet in order to be considered when listing OpenCL devices.
IPLPanningEffectParams
Parameters for applying a panning effect to an audio buffer.
IPLPanningEffectSettings
Settings used to create a panning effect.
IPLPathBakeParams
Parameters used to control how pathing data is baked.
IPLPathEffectParams
Parameters for applying a path effect to an audio buffer.
IPLPathEffectSettings
Settings used to create a path effect.
IPLProbeGenerationParams
Settings used to generate probes.
IPLRay
A ray in 3D space.
IPLReflectionEffectParams
Parameters for applying a reflection effect to an audio buffer.
IPLReflectionEffectSettings
Settings used to create a reflection effect.
IPLReflectionsBakeFlags
Flags for specifying what types of reflections data to bake.
IPLReflectionsBakeParams
Parameters used to control how reflections data is baked.
IPLSceneSettings
Settings used to create a scene.
IPLSerializedObjectSettings
Settings used to create a serialized object.
IPLSimulationFlags
Flags indicating which types of simulation should be enabled for a given \c IPLSource.
IPLSimulationInputs
Simulation parameters for a source.
IPLSimulationOutputs
Simulation results for a source.
IPLSimulationSettings
Settings used to create a simulator.
IPLSimulationSharedInputs
Simulation parameters that are not specific to any source.
IPLSourceSettings
Settings used to create a source.
IPLSpeakerLayout
Describes a standard or custom speaker layout.
IPLSphere
A sphere. Spheres are used to define a region of influence around a point.
IPLStaticMeshSettings
Settings used to create a static mesh.
IPLTriangle
A triangle in 3D space.
IPLTrueAudioNextDeviceSettings
Settings used to create a TrueAudio Next device.
IPLVector3
A point or vector in 3D space. Steam Audio uses a right-handed coordinate system, with the positive x-axis pointing right, the positive y-axis pointing up, and the negative z-axis pointing ahead. Position and direction data obtained from a game engine or audio engine must be properly transformed before being passed to any Steam Audio API function.
IPLVirtualSurroundEffectParams
Parameters for applying a virtual surround effect to an audio buffer.
IPLVirtualSurroundEffectSettings
Settings used to create a virtual surround effect.
_IPLAmbisonicsBinauralEffect_t
_IPLAmbisonicsDecodeEffect_t
_IPLAmbisonicsEncodeEffect_t
_IPLAmbisonicsPanningEffect_t
_IPLAmbisonicsRotationEffect_t
_IPLBinauralEffect_t
_IPLContext_t
_IPLDirectEffect_t
_IPLEmbreeDevice_t
_IPLHRTF_t
_IPLInstancedMesh_t
_IPLOpenCLDeviceList_t
_IPLOpenCLDevice_t
_IPLPanningEffect_t
_IPLPathEffect_t
_IPLProbeArray_t
_IPLProbeBatch_t
_IPLRadeonRaysDevice_t
_IPLReflectionEffectIR_t
_IPLReflectionEffect_t
_IPLReflectionMixer_t
_IPLScene_t
_IPLSerializedObject_t
_IPLSimulator_t
_IPLSource_t
_IPLStaticMesh_t
_IPLTrueAudioNextDevice_t
_IPLVirtualSurroundEffect_t
max_align_t

Enums§

IPLAirAbsorptionModelType
The types of air absorption that can be used.
IPLAmbisonicsType
Supported channel ordering and normalization schemes for Ambisonic audio.
IPLAudioEffectState
States that an audio effect can be left in after processing a frame of audio.
IPLBakedDataType
The types of baked data that can be stored in a probe batch.
IPLBakedDataVariation
The different ways in which the source and listener positions used to generate baked data can vary as a function of probe position.
IPLDistanceAttenuationModelType
The types of distance attenuation that can be used.
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.
IPLHRTFNormType
Volume normalization types to use.
IPLHRTFType
The type of HRTF to use.
IPLLogLevel
Severity levels of log messages generated by Steam Audio.
IPLOcclusionType
The different algorithms for simulating occlusion.
IPLOpenCLDeviceType
The type of devices to include when listing OpenCL devices.
IPLProbeGenerationType
The different algorithms for generating probes.
IPLReflectionEffectType
Type of reflection effect algorithm to use.
IPLSIMDLevel
SIMD instruction sets that Steam Audio can attempt to use.
IPLSceneType
The types of scenes that can be created. Each scene type corresponds to a different ray tracing implementation.
IPLSpeakerLayoutType
Supported speaker layouts.
IPLTransmissionType
Modes of applying transmission effects.
IPLbool
Boolean values.
IPLerror
Status codes returned by Steam Audio API functions.

Constants§

STEAMAUDIO_VERSION
STEAMAUDIO_VERSION_MAJOR
STEAMAUDIO_VERSION_MINOR
STEAMAUDIO_VERSION_PATCH

Functions§

iplAirAbsorptionCalculate
Calculates the air absorption coefficients between a source and a listener.
iplAmbisonicsBinauralEffectApply
Applies an Ambisonics binaural effect to an audio buffer.
iplAmbisonicsBinauralEffectCreate
Creates an Ambisonics binaural effect.
iplAmbisonicsBinauralEffectGetTail
Retrieves a single frame of tail samples from an Ambisonics binaural effect’s internal buffers.
iplAmbisonicsBinauralEffectGetTailSize
Returns the number of tail samples remaining in an Ambisonics binaural effect’s internal buffers.
iplAmbisonicsBinauralEffectRelease
Releases a reference to an Ambisonics binaural effect.
iplAmbisonicsBinauralEffectReset
Resets the internal processing state of an Ambisonics binaural effect.
iplAmbisonicsBinauralEffectRetain
Retains an additional reference to an Ambisonics binaural effect.
iplAmbisonicsDecodeEffectApply
Applies an Ambisonics decode effect to an audio buffer.
iplAmbisonicsDecodeEffectCreate
Creates an Ambisonics rotation effect.
iplAmbisonicsDecodeEffectGetTail
Retrieves a single frame of tail samples from an Ambisonics decode effect’s internal buffers.
iplAmbisonicsDecodeEffectGetTailSize
Returns the number of tail samples remaining in an Ambisonics decode effect’s internal buffers.
iplAmbisonicsDecodeEffectRelease
Releases a reference to an Ambisonics rotation effect.
iplAmbisonicsDecodeEffectReset
Resets the internal processing state of an Ambisonics decode effect.
iplAmbisonicsDecodeEffectRetain
Retains an additional reference to an Ambisonics rotation effect.
iplAmbisonicsEncodeEffectApply
Applies an Ambisonics encode effect to an audio buffer.
iplAmbisonicsEncodeEffectCreate
Creates an Ambisonics encode effect.
iplAmbisonicsEncodeEffectGetTail
Retrieves a single frame of tail samples from an Ambisonics encode effect’s internal buffers.
iplAmbisonicsEncodeEffectGetTailSize
Returns the number of tail samples remaining in an Ambisonics encode effect’s internal buffers.
iplAmbisonicsEncodeEffectRelease
Releases a reference to an Ambisonics encode effect.
iplAmbisonicsEncodeEffectReset
Resets the internal processing state of an Ambisonics encode effect.
iplAmbisonicsEncodeEffectRetain
Retains an additional reference to an Ambisonics encode effect.
iplAmbisonicsPanningEffectApply
Applies an Ambisonics panning effect to an audio buffer.
iplAmbisonicsPanningEffectCreate
Creates an Ambisonics panning effect.
iplAmbisonicsPanningEffectGetTail
Retrieves a single frame of tail samples from a Ambisonics panning effect’s internal buffers.
iplAmbisonicsPanningEffectGetTailSize
Returns the number of tail samples remaining in an Ambisonics panning effect’s internal buffers.
iplAmbisonicsPanningEffectRelease
Releases a reference to an Ambisonics panning effect.
iplAmbisonicsPanningEffectReset
Resets the internal processing state of an Ambisonics panning effect.
iplAmbisonicsPanningEffectRetain
Retains an additional reference to an Ambisonics panning effect.
iplAmbisonicsRotationEffectApply
Applies an Ambisonics rotation effect to an audio buffer.
iplAmbisonicsRotationEffectCreate
Creates an Ambisonics rotation effect.
iplAmbisonicsRotationEffectGetTail
Retrieves a single frame of tail samples from an Ambisonics rotation effect’s internal buffers.
iplAmbisonicsRotationEffectGetTailSize
Returns the number of tail samples remaining in an Ambisonics rotation effect’s internal buffers.
iplAmbisonicsRotationEffectRelease
Releases a reference to an Ambisonics rotation effect.
iplAmbisonicsRotationEffectReset
Resets the internal processing state of an Ambisonics rotation effect.
iplAmbisonicsRotationEffectRetain
Retains an additional reference to an Ambisonics rotation effect.
iplAudioBufferAllocate
Allocates an audio buffer.
iplAudioBufferConvertAmbisonics
Converts an Ambisonic audio buffer from one Ambisonic format to another.
iplAudioBufferDeinterleave
Writes interleaved samples from a user-provided array into an audio buffer.
iplAudioBufferDownmix
Downmixes a multi-channel audio buffer into a mono audio buffer.
iplAudioBufferFree
Frees an audio buffer.
iplAudioBufferInterleave
Reads samples from an audio buffer and interleaves them into a user-provided array.
iplAudioBufferMix
Mixes one audio buffer into another.
iplBinauralEffectApply
Applies a binaural effect to an audio buffer.
iplBinauralEffectCreate
Creates a binaural effect.
iplBinauralEffectGetTail
Retrieves a single frame of tail samples from a binaural effect’s internal buffers.
iplBinauralEffectGetTailSize
Returns the number of tail samples remaining in a binaural effect’s internal buffers.
iplBinauralEffectRelease
Releases a reference to a binaural effect.
iplBinauralEffectReset
Resets the internal processing state of a binaural effect.
iplBinauralEffectRetain
Retains an additional reference to a binaural effect.
iplCalculateRelativeDirection
Calculates the relative direction from the listener to a sound source. The returned direction vector is expressed in the listener’s coordinate system.
iplContextCreate
Creates a context object. A context must be created before creating any other API objects.
iplContextRelease
Releases a reference to a context. The context will not be destroyed until all references are released.
iplContextRetain
Retains an additional reference to a context. The context will not be destroyed until all references are released.
iplDirectEffectApply
Applies a direct effect to an audio buffer.
iplDirectEffectCreate
Creates a direct effect.
iplDirectEffectGetTail
Retrieves a single frame of tail samples from a direct effect’s internal buffers.
iplDirectEffectGetTailSize
Returns the number of tail samples remaining in a direct effect’s internal buffers.
iplDirectEffectRelease
Releases a reference to a direct effect.
iplDirectEffectReset
Resets the internal processing state of a direct effect.
iplDirectEffectRetain
Retains an additional reference to a direct effect.
iplDirectivityCalculate
Calculates the attenuation of a source due to its directivity pattern and orientation relative to a listener.
iplDistanceAttenuationCalculate
Calculates the distance attenuation between a source and a listener.
iplEmbreeDeviceCreate
Creates an Embree device.
iplEmbreeDeviceRelease
Releases a reference to an Embree device.
iplEmbreeDeviceRetain
Retains an additional reference to an Embree device.
iplHRTFCreate
Creates an HRTF.
iplHRTFRelease
Releases a reference to an HRTF object.
iplHRTFRetain
Retains an additional reference to an HRTF object.
iplInstancedMeshAdd
Adds an instanced mesh to a scene.
iplInstancedMeshCreate
Creates an instanced mesh.
iplInstancedMeshRelease
Releases a reference to a instanced mesh.
iplInstancedMeshRemove
Removes an instanced mesh from a scene.
iplInstancedMeshRetain
Retains an additional reference to a instanced mesh.
iplInstancedMeshUpdateTransform
Updates the local-to-world transform of an instanced mesh within its parent scene.
iplOpenCLDeviceCreate
Creates an OpenCL device. The device is specified as an index into an OpenCL device list.
iplOpenCLDeviceCreateFromExisting
Creates an OpenCL device from an existing OpenCL device created by your application. Steam Audio will use up to two command queues that you provide for enqueuing OpenCL computations.
iplOpenCLDeviceListCreate
Creates an OpenCL device list. This involves listing all available OpenCL devices on the user’s system.
iplOpenCLDeviceListGetDeviceDesc
Retrieves information about a specific device in an OpenCL device list.
iplOpenCLDeviceListGetNumDevices
\return The number of devices in an OpenCL device list.
iplOpenCLDeviceListRelease
Releases a reference to an OpenCL device list.
iplOpenCLDeviceListRetain
Retains an additional reference to an OpenCL device list.
iplOpenCLDeviceRelease
Releases a reference to an OpenCL device.
iplOpenCLDeviceRetain
Retains an additional reference to an OpenCL device.
iplPanningEffectApply
Applies a panning effect to an audio buffer.
iplPanningEffectCreate
Creates a panning effect.
iplPanningEffectGetTail
Retrieves a single frame of tail samples from a panning effect’s internal buffers.
iplPanningEffectGetTailSize
Returns the number of tail samples remaining in a panning effect’s internal buffers.
iplPanningEffectRelease
Releases a reference to a panning effect.
iplPanningEffectReset
Resets the internal processing state of a panning effect.
iplPanningEffectRetain
Retains an additional reference to a panning effect.
iplPathBakerBake
Bakes a single layer of pathing data in a probe batch.
iplPathBakerCancelBake
Cancels any running bakes of pathing data.
iplPathEffectApply
Applies a path effect to an audio buffer.
iplPathEffectCreate
Creates a path effect.
iplPathEffectGetTail
Retrieves a single frame of tail samples from a path effect’s internal buffers.
iplPathEffectGetTailSize
Returns the number of tail samples remaining in a path effect’s internal buffers.
iplPathEffectRelease
Releases a reference to a path effect.
iplPathEffectReset
Resets the internal processing state of a path effect.
iplPathEffectRetain
Retains an additional reference to a path effect.
iplProbeArrayCreate
Creates an empty probe array.
iplProbeArrayGenerateProbes
Generates probes and adds them to a probe array.
iplProbeArrayGetNumProbes
\return The number of probes in a probe array.
iplProbeArrayGetProbe
\return The probe at a given index in a probe array.
iplProbeArrayRelease
Releases a reference to a probe array.
iplProbeArrayRetain
Retains an additional reference to a probe array.
iplProbeBatchAddProbe
Adds a probe to a batch. The new probe will be added as the last probe in the batch.
iplProbeBatchAddProbeArray
Adds every probe in an array to a batch. The new probes will be added, in order, at the end of the batch.
iplProbeBatchCommit
Commits all changes made to a probe batch since this function was last called (or since the probe batch was first created, if this function was never called). This function must be called after adding, removing, or updating any probes in the batch, for the changes to take effect.
iplProbeBatchCreate
Creates an empty probe batch.
iplProbeBatchGetDataSize
\return The size (in bytes) of a specific baked data layer in a probe batch.
iplProbeBatchGetNumProbes
\return The number of probes in a probe batch.
iplProbeBatchLoad
Loads a probe batch from a serialized object. Typically, the serialized object will be created from a byte array loaded from disk or over the network.
iplProbeBatchRelease
Releases a reference to a probe batch.
iplProbeBatchRemoveData
Deletes a specific layer of data from a probe batch.
iplProbeBatchRemoveProbe
Removes a probe from a batch.
iplProbeBatchRetain
Retains an additional reference to a probe batch.
iplProbeBatchSave
Saves a probe batch to a serialized object. Typically, the serialized object will then be saved to disk.
iplRadeonRaysDeviceCreate
Creates a Radeon Rays device.
iplRadeonRaysDeviceRelease
Releases a reference to a Radeon Rays device.
iplRadeonRaysDeviceRetain
Retains an additional reference to a Radeon Rays device.
iplReflectionEffectApply
Applies a reflection effect to an audio buffer.
iplReflectionEffectCreate
Creates a reflection effect.
iplReflectionEffectGetTail
Retrieves a single frame of tail samples from a reflection effect’s internal buffers.
iplReflectionEffectGetTailSize
Returns the number of tail samples remaining in a reflection effect’s internal buffers.
iplReflectionEffectRelease
Releases a reference to a reflection effect.
iplReflectionEffectReset
Resets the internal processing state of a reflection effect.
iplReflectionEffectRetain
Retains an additional reference to a reflection effect.
iplReflectionMixerApply
Retrieves the contents of a reflection mixer and places it into an audio buffer.
iplReflectionMixerCreate
Creates a reflection effect mixer.
iplReflectionMixerRelease
Releases a reference to a reflection mixer.
iplReflectionMixerReset
Resets the internal processing state of a reflection mixer.
iplReflectionMixerRetain
Retains an additional reference to a reflection mixer.
iplReflectionsBakerBake
Bakes a single layer of reflections data in a probe batch.
iplReflectionsBakerCancelBake
Cancels any running bakes of reflections data.
iplSceneCommit
Commits any changes to the scene.
iplSceneCreate
Creates a scene.
iplSceneLoad
Loads a scene from a serialized object. Typically, the serialized object will be created from a byte array loaded from disk or over the network.
iplSceneRelease
Releases a reference to a scene.
iplSceneRetain
Retains an additional reference to a scene.
iplSceneSave
Saves a scene to a serialized object. Typically, the serialized object will then be saved to disk.
iplSceneSaveOBJ
Saves a scene to an OBJ file.
iplSerializedObjectCreate
Creates a serialized object.
iplSerializedObjectGetData
\return A pointer to a byte array of serialized data contained in a serialized object.
iplSerializedObjectGetSize
\return The size in bytes of the serialized data contained in a serialized object.
iplSerializedObjectRelease
Releases a reference to a serialized object.
iplSerializedObjectRetain
Retains an additional reference to a serialized object.
iplSimulatorAddProbeBatch
Adds a probe batch for use in subsequent simulations. Sources that require baked data can then use the data contained in the specified probe batch.
iplSimulatorCommit
Commits changes to the scene or probe batches used for simulation.
iplSimulatorCreate
Creates a simulator.
iplSimulatorRelease
Releases a reference to a simulator.
iplSimulatorRemoveProbeBatch
Removed a probe batch from use in subsequent simulations. Sources that require baked data will then stop using the data contained in the specified probe batch.
iplSimulatorRetain
Retains an additional reference to a simulator.
iplSimulatorRunDirect
Runs a direct simulation for all sources added to the simulator. This may include distance attenuation, air absorption, directivity, occlusion, and transmission.
iplSimulatorRunPathing
Runs a pathing simulation for all sources added to the simulator.
iplSimulatorRunReflections
Runs a reflections simulation for all sources added to the simulator.
iplSimulatorSetScene
Specifies the scene within which all subsequent simulations should be run.
iplSimulatorSetSharedInputs
Specifies simulation parameters that are not associated with any particular source.
iplSourceAdd
Adds a source to the set of sources processed by a simulator in subsequent simulations.
iplSourceCreate
Creates a simulation source.
iplSourceGetOutputs
Retrieves simulation results for a source.
iplSourceRelease
Releases a reference to a source.
iplSourceRemove
Removes a source from the set of sources processed by a simulator in subsequent simulations.
iplSourceRetain
Retains an additional reference to a source.
iplSourceSetInputs
Specifies simulation parameters for a source.
iplStaticMeshAdd
Adds a static mesh to a scene.
iplStaticMeshCreate
Creates a static mesh.
iplStaticMeshLoad
Loads a static mesh from a serialized object. Typically, the serialized object will be created from a byte array loaded from disk or over the network.
iplStaticMeshRelease
Releases a reference to a static mesh.
iplStaticMeshRemove
Removes a static mesh from a scene.
iplStaticMeshRetain
Retains an additional reference to a static mesh.
iplStaticMeshSave
Saves a static mesh to a serialized object. Typically, the serialized object will then be saved to disk.
iplTrueAudioNextDeviceCreate
Creates a TrueAudio Next device.
iplTrueAudioNextDeviceRelease
Releases a reference to a TrueAudio Next device.
iplTrueAudioNextDeviceRetain
Retains an additional reference to a TrueAudio Next device.
iplVirtualSurroundEffectApply
Applies a virtual surround effect to an audio buffer.
iplVirtualSurroundEffectCreate
Creates a virtual surround effect.
iplVirtualSurroundEffectGetTail
Retrieves a single frame of tail samples from a virtual surround effect’s internal buffers.
iplVirtualSurroundEffectGetTailSize
Returns the number of tail samples remaining in a virtual surround effect’s internal buffers.
iplVirtualSurroundEffectRelease
Releases a reference to a virtual surround effect.
iplVirtualSurroundEffectReset
Resets the internal processing state of a virtual surround effect.
iplVirtualSurroundEffectRetain
Retains an additional reference to a virtual surround effect.

Type Aliases§

IPLAirAbsorptionCallback
Callback for calculating how much air absorption should be applied to a sound based on its distance from the listener.
IPLAllocateFunction
Prototype of a callback that allocates memory. This is usually specified to let Steam Audio use a custom memory allocator. The default behavior is to use the OS-dependent aligned version of \c malloc.
IPLAmbisonicsBinauralEffect
Renders Ambisonic audio using HRTF-based binaural rendering. This results in more immersive spatialization of the Ambisonic audio as compared to using an Ambisonics panning effect, at the cost of slightly increased CPU usage.
IPLAmbisonicsDecodeEffect
Applies a rotation to an Ambisonics audio buffer, then decodes it using panning or binaural rendering. This is essentially an Ambisonics rotate effect followed by either an Ambisonics panning effect or an Ambisonics binaural effect.
IPLAmbisonicsEncodeEffect
Encodes a point source into Ambisonics. Given a point source with some direction relative to the listener, this effect generates an Ambisonic audio buffer that approximates a point source in the given direction. This allows multiple point sources and ambiences to mixed to a single Ambisonics buffer before being spatialized.
IPLAmbisonicsPanningEffect
Renders Ambisonic audio by panning it to a standard speaker layout. This involves calculating signals to emit from each speaker so as to approximate the Ambisonic sound field.
IPLAmbisonicsRotationEffect
Applies a rotation to an Ambisonics audio buffer. The input buffer is assumed to describe a sound field in “world space”. The output buffer is then the same sound field, but expressed relative to the listener’s orientation.
IPLAnyHitCallback
Callback for calculating whether a ray hits any geometry.
IPLBatchedAnyHitCallback
Callback for calculating for each ray in a batch of rays, whether the ray hits any geometry.
IPLBatchedClosestHitCallback
Callback for calculating the closest hit along a batch of rays.
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.
IPLClosestHitCallback
Callback for calculating the closest hit along a ray.
IPLContext
A context object, which controls low-level operations of Steam Audio. Typically, a context is specified once during the execution of the client program, before calling any other API functions.
IPLDirectEffect
Filters and attenuates an audio signal based on various properties of the direct path between a point source and the listener.
IPLDirectivityCallback
Callback for calculating how much to attenuate a sound based on its directivity pattern and orientation in world space.
IPLDistanceAttenuationCallback
Callback for calculating how much attenuation should be applied to a sound based on its distance from the listener.
IPLEmbreeDevice
Application-wide state for the Embree ray tracer. An Embree device must be created before using any of Steam Audio’s Embree ray tracing functionality. In terms of the Embree API, this object encapsulates an \c RTCDevice object.
IPLEmbreeDeviceSettings
IPLFreeFunction
Prototype of a callback that frees a block of memory. This is usually specified when using a custom memory allocator with Steam Audio. The default behavior is to use the OS-dependent aligned version of \c free.
IPLHRTF
A Head-Related Transfer Function (HRTF). HRTFs describe how sound from different directions is perceived by a each of a listener’s ears, and are a crucial component of spatial audio. Steam Audio includes a built-in HRTF, while also allowing developers and users to import their own custom HRTFs.
IPLInstancedMesh
A triangle mesh that can be moved (translated), rotated, or scaled, but cannot deform. Portions of a scene that undergo rigid-body motion can be represented as instanced meshes. An instanced mesh is essentially a scene (called the “sub-scene”) with a transform applied to it. Adding an instanced mesh to a scene places the sub-scene into the scene with the transform applied. For example, the sub-scene may be a prefab door, and the transform can be used to place it in a doorway and animate it as it opens or closes.
IPLLogFunction
Prototype of a callback that logs a message generated by Steam Audio. This may be implemented in any suitable way, such as appending to a log file, displaying a dialog box, etc. The default behavior is to print to \c stdout.
IPLOpenCLDevice
Application-wide state for OpenCL. An OpenCL device must be created before using any of Steam Audio’s Radeon Rays or TrueAudio Next functionality. In terms of the OpenCL API, this object encapsulates a \c cl_context object, along with up to 2 \c cl_command_queue objects.
IPLOpenCLDeviceList
Provides a list of OpenCL devices available on the user’s system. Use this to enumerate the available OpenCL devices, inspect their capabilities, and select the most suitable one for your application’s needs.
IPLPanningEffect
Pans a single-channel point source to a multi-channel speaker layout based on the 3D position of the source relative to the listener.
IPLPathEffect
Applies the result of simulating sound paths from the source to the listener. Multiple paths that sound can take as it propagates from the source to the listener are combined into an Ambisonic sound field.
IPLPathingVisualizationCallback
Callback for visualizing valid path segments during call to \c iplSimulatorRunPathing.
IPLProbeArray
An array of sound probes. Each probe has a position and a radius of influence.
IPLProbeBatch
A batch of sound probes, along with associated data. The associated data may include reverb, reflections from a static source position, pathing, and more. This data is loaded and unloaded as a unit, either from disk or over the network.
IPLProgressCallback
Callback for updating the application on the progress of a function.
IPLRadeonRaysDevice
Application-wide state for the Radeon Rays ray tracer. A Radeon Rays device must be created before using any of Steam Audio’s Radeon Rays ray tracing functionality. In terms of the Radeon Rays API, this object encapsulates a \c RadeonRays::IntersectionApi object.
IPLRadeonRaysDeviceSettings
IPLReflectionEffect
Applies the result of physics-based reflections simulation to an audio buffer. The result is encoded in Ambisonics, and can be decoded using an Ambisonics decode effect.
IPLReflectionEffectIR
A multi-channel impulse response for use with a reflection effect. Steam Audio creates and manages objects of this type internally, your application only needs to pass handles to these objects to the appropriate Steam Audio API functions.
IPLReflectionMixer
Mixes the outputs of multiple reflection effects, and generates a single sound field containing all the reflected sound reaching the listener. Using this is optional. Depending on the reflection effect algorithm used, a reflection mixer may provide a reduction in CPU usage.
IPLScene
A 3D scene, which can contain geometry objects that can interact with acoustic rays. The scene object itself doesn’t contain any geometry, but is a container for \c IPLStaticMesh and \c IPLInstancedMesh objects, which do contain geometry.
IPLSerializedObject
A serialized representation of an API object, like an \c IPLScene or \c IPLProbeBatch. Create an empty serialized object if you want to serialize an existing object to a byte array, or create a serialized object that wraps an existing byte array if you want to deserialize it.
IPLSimulator
Manages direct and indirect sound propagation simulation for multiple sources. Your application will typically create one simulator object and use it to run simulations with different source and listener parameters between consecutive simulation runs. The simulator can also be reused across scene changes.
IPLSource
A sound source, for the purposes of simulation. This object is used to specify various parameters for direct and indirect sound propagation simulation, and to retrieve the simulation results.
IPLStaticMesh
A triangle mesh that doesn’t move or deform in any way. The unchanging portions of a scene should typically be collected into a single static mesh object. In addition to the geometry, a static mesh also contains acoustic material information for each triangle.
IPLTrueAudioNextDevice
Application-wide state for the TrueAudio Next convolution engine. A TrueAudio Next device must be created before using any of Steam Audio’s TrueAudio Next convolution functionality. In terms of the TrueAudio Next API, this object encapsulates an \c amf::TANContext and amf::TANConvolution object.
IPLVirtualSurroundEffect
Spatializes multi-channel speaker-based audio (e.g., stereo, quadraphonic, 5.1, or 7.1) using HRTF-based binaural rendering. The audio signal for each speaker is spatialized from a point in space corresponding to the speaker’s location. This allows users to experience a surround sound mix over regular stereo headphones.
IPLbyte
IPLfloat32
IPLfloat64
IPLint8
\defgroup types Data Types Common data types used throughout the Steam Audio API. {
IPLint16
IPLint32
IPLint64
IPLsize
IPLstring
IPLuint8
IPLuint16
IPLuint32
IPLuint64
wchar_t