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):
Platform | Library Directory | Library To Link |
---|---|---|
Windows 32-bit | SDKROOT/lib/windows-x86 | phonon.dll |
Windows 64-bit | SDKROOT/lib/windows-x64 | phonon.dll |
Linux 32-bit | SDKROOT/lib/linux-x86 | libphonon.so |
Linux 64-bit | SDKROOT/lib/linux-x64 | libphonon.so |
macOS | SDKROOT/lib/osx | libphonon.dylib |
Android ARMv7 | SDKROOT/lib/android-armv7 | libphonon.so |
Android ARMv8/AArch64 | SDKROOT/lib/android-armv8 | libphonon.so |
Android x86 | SDKROOT/lib/android-x86 | libphonon.so |
Android x64 | SDKROOT/lib/android-x64 | libphonon.so |
iOS ARMv8/AArch64 | SDKROOT/lib/ios | libphonon.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§
- IPLAir
Absorption Model - An air absorption model that can be used for modeling frequency-dependent attenuation of sound over distance.
- IPLAmbisonics
Binaural Effect Params - Parameters for applying an Ambisonics binaural effect to an audio buffer.
- IPLAmbisonics
Binaural Effect Settings - Settings used to create an Ambisonics binaural effect.
- IPLAmbisonics
Decode Effect Params - Parameters for applying an Ambisonics decode effect to an audio buffer.
- IPLAmbisonics
Decode Effect Settings - Settings used to create an Ambisonics decode effect.
- IPLAmbisonics
Encode Effect Params - Parameters for applying an Ambisonics encode effect to an audio buffer.
- IPLAmbisonics
Encode Effect Settings - Settings used to create an Ambisonics encode effect.
- IPLAmbisonics
Panning Effect Params - Parameters for applying an Ambisonics panning effect to an audio buffer.
- IPLAmbisonics
Panning Effect Settings - Settings used to create an Ambisonics panning effect.
- IPLAmbisonics
Rotation Effect Params - Parameters for applying an Ambisonics rotation effect to an audio buffer.
- IPLAmbisonics
Rotation Effect Settings - Settings used to create an Ambisonics rotation effect.
- IPLAudio
Buffer - Describes an audio buffer. All audio buffers passed to Steam Audio must be deinterleaved.
- IPLAudio
Settings - Global settings for audio signal processing.
- IPLBaked
Data Identifier - 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.
- IPLBinaural
Effect Params - Parameters for applying a binaural effect to an audio buffer.
- IPLBinaural
Effect Settings - Settings used to create a binaural effect.
- IPLBox
- An axis-aligned box. Axis-aligned boxes are used to specify a volume of 3D space.
- IPLContext
Flags - Additional flags for modifying the behavior of a Steam Audio context.
- IPLContext
Settings - Settings used to create a context object.
- IPLCoordinate
Space3 - A 3D coordinate system, expressed relative to a canonical coordinate system.
- IPLDirect
Effect Flags - Flags indicating which direct path parameters to apply.
- IPLDirect
Effect Params - Parameters for applying a direct effect to an audio buffer.
- IPLDirect
Effect Settings - Settings used to create a direct effect.
- IPLDirect
Simulation Flags - 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.
- IPLDistance
Attenuation Model - 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.
- IPLHRTF
Settings - Settings used to create an HRTF object.
- IPLHit
- Information about a ray’s intersection with 3D geometry.
- IPLInstanced
Mesh Settings - Settings used to create an instanced mesh.
- IPLMaterial
- The acoustic properties of a surface.
- IPLMatrix4x4
- A 4x4 matrix used to represent an affine transform.
- IPLOpenCL
Device Desc - Describes the properties of an OpenCL device. This information can be used to select the most suitable device for your application.
- IPLOpenCL
Device Settings - Specifies requirements that an OpenCL device must meet in order to be considered when listing OpenCL devices.
- IPLPanning
Effect Params - Parameters for applying a panning effect to an audio buffer.
- IPLPanning
Effect Settings - Settings used to create a panning effect.
- IPLPath
Bake Params - Parameters used to control how pathing data is baked.
- IPLPath
Effect Params - Parameters for applying a path effect to an audio buffer.
- IPLPath
Effect Settings - Settings used to create a path effect.
- IPLProbe
Generation Params - Settings used to generate probes.
- IPLRay
- A ray in 3D space.
- IPLReflection
Effect Params - Parameters for applying a reflection effect to an audio buffer.
- IPLReflection
Effect Settings - Settings used to create a reflection effect.
- IPLReflections
Bake Flags - Flags for specifying what types of reflections data to bake.
- IPLReflections
Bake Params - Parameters used to control how reflections data is baked.
- IPLScene
Settings - Settings used to create a scene.
- IPLSerialized
Object Settings - Settings used to create a serialized object.
- IPLSimulation
Flags - Flags indicating which types of simulation should be enabled for a given \c IPLSource.
- IPLSimulation
Inputs - Simulation parameters for a source.
- IPLSimulation
Outputs - Simulation results for a source.
- IPLSimulation
Settings - Settings used to create a simulator.
- IPLSimulation
Shared Inputs - Simulation parameters that are not specific to any source.
- IPLSource
Settings - Settings used to create a source.
- IPLSpeaker
Layout - Describes a standard or custom speaker layout.
- IPLSphere
- A sphere. Spheres are used to define a region of influence around a point.
- IPLStatic
Mesh Settings - Settings used to create a static mesh.
- IPLTriangle
- A triangle in 3D space.
- IPLTrue
Audio Next Device Settings - 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.
- IPLVirtual
Surround Effect Params - Parameters for applying a virtual surround effect to an audio buffer.
- IPLVirtual
Surround Effect Settings - Settings used to create a virtual surround effect.
- _IPL
Ambisonics Binaural Effect_ t - _IPL
Ambisonics Decode Effect_ t - _IPL
Ambisonics Encode Effect_ t - _IPL
Ambisonics Panning Effect_ t - _IPL
Ambisonics Rotation Effect_ t - _IPL
Binaural Effect_ t - _IPL
Context_ t - _IPL
Direct Effect_ t - _IPL
Embree Device_ t - _IPLHRTF_
t - _IPL
Instanced Mesh_ t - _IPL
OpenCL Device List_ t - _IPL
OpenCL Device_ t - _IPL
Panning Effect_ t - _IPL
Path Effect_ t - _IPL
Probe Array_ t - _IPL
Probe Batch_ t - _IPL
Radeon Rays Device_ t - _IPL
Reflection EffectIR_ t - _IPL
Reflection Effect_ t - _IPL
Reflection Mixer_ t - _IPL
Scene_ t - _IPL
Serialized Object_ t - _IPL
Simulator_ t - _IPL
Source_ t - _IPL
Static Mesh_ t - _IPL
True Audio Next Device_ t - _IPL
Virtual Surround Effect_ t - max_
align_ t
Enums§
- IPLAir
Absorption Model Type - The types of air absorption that can be used.
- IPLAmbisonics
Type - Supported channel ordering and normalization schemes for Ambisonic audio.
- IPLAudio
Effect State - States that an audio effect can be left in after processing a frame of audio.
- IPLBaked
Data Type - The types of baked data that can be stored in a probe batch.
- IPLBaked
Data Variation - The different ways in which the source and listener positions used to generate baked data can vary as a function of probe position.
- IPLDistance
Attenuation Model Type - The types of distance attenuation that can be used.
- IPLHRTF
Interpolation - 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.
- IPLHRTF
Norm Type - Volume normalization types to use.
- IPLHRTF
Type - The type of HRTF to use.
- IPLLog
Level - Severity levels of log messages generated by Steam Audio.
- IPLOcclusion
Type - The different algorithms for simulating occlusion.
- IPLOpenCL
Device Type - The type of devices to include when listing OpenCL devices.
- IPLProbe
Generation Type - The different algorithms for generating probes.
- IPLReflection
Effect Type - Type of reflection effect algorithm to use.
- IPLSIMD
Level - SIMD instruction sets that Steam Audio can attempt to use.
- IPLScene
Type - The types of scenes that can be created. Each scene type corresponds to a different ray tracing implementation.
- IPLSpeaker
Layout Type - Supported speaker layouts.
- IPLTransmission
Type - Modes of applying transmission effects.
- IPLbool
- Boolean values.
- IPLerror
- Status codes returned by Steam Audio API functions.
Constants§
Functions§
- iplAir
Absorption ⚠Calculate - Calculates the air absorption coefficients between a source and a listener.
- iplAmbisonics
Binaural ⚠Effect Apply - Applies an Ambisonics binaural effect to an audio buffer.
- iplAmbisonics
Binaural ⚠Effect Create - Creates an Ambisonics binaural effect.
- iplAmbisonics
Binaural ⚠Effect GetTail - Retrieves a single frame of tail samples from an Ambisonics binaural effect’s internal buffers.
- iplAmbisonics
Binaural ⚠Effect GetTail Size - Returns the number of tail samples remaining in an Ambisonics binaural effect’s internal buffers.
- iplAmbisonics
Binaural ⚠Effect Release - Releases a reference to an Ambisonics binaural effect.
- iplAmbisonics
Binaural ⚠Effect Reset - Resets the internal processing state of an Ambisonics binaural effect.
- iplAmbisonics
Binaural ⚠Effect Retain - Retains an additional reference to an Ambisonics binaural effect.
- iplAmbisonics
Decode ⚠Effect Apply - Applies an Ambisonics decode effect to an audio buffer.
- iplAmbisonics
Decode ⚠Effect Create - Creates an Ambisonics rotation effect.
- iplAmbisonics
Decode ⚠Effect GetTail - Retrieves a single frame of tail samples from an Ambisonics decode effect’s internal buffers.
- iplAmbisonics
Decode ⚠Effect GetTail Size - Returns the number of tail samples remaining in an Ambisonics decode effect’s internal buffers.
- iplAmbisonics
Decode ⚠Effect Release - Releases a reference to an Ambisonics rotation effect.
- iplAmbisonics
Decode ⚠Effect Reset - Resets the internal processing state of an Ambisonics decode effect.
- iplAmbisonics
Decode ⚠Effect Retain - Retains an additional reference to an Ambisonics rotation effect.
- iplAmbisonics
Encode ⚠Effect Apply - Applies an Ambisonics encode effect to an audio buffer.
- iplAmbisonics
Encode ⚠Effect Create - Creates an Ambisonics encode effect.
- iplAmbisonics
Encode ⚠Effect GetTail - Retrieves a single frame of tail samples from an Ambisonics encode effect’s internal buffers.
- iplAmbisonics
Encode ⚠Effect GetTail Size - Returns the number of tail samples remaining in an Ambisonics encode effect’s internal buffers.
- iplAmbisonics
Encode ⚠Effect Release - Releases a reference to an Ambisonics encode effect.
- iplAmbisonics
Encode ⚠Effect Reset - Resets the internal processing state of an Ambisonics encode effect.
- iplAmbisonics
Encode ⚠Effect Retain - Retains an additional reference to an Ambisonics encode effect.
- iplAmbisonics
Panning ⚠Effect Apply - Applies an Ambisonics panning effect to an audio buffer.
- iplAmbisonics
Panning ⚠Effect Create - Creates an Ambisonics panning effect.
- iplAmbisonics
Panning ⚠Effect GetTail - Retrieves a single frame of tail samples from a Ambisonics panning effect’s internal buffers.
- iplAmbisonics
Panning ⚠Effect GetTail Size - Returns the number of tail samples remaining in an Ambisonics panning effect’s internal buffers.
- iplAmbisonics
Panning ⚠Effect Release - Releases a reference to an Ambisonics panning effect.
- iplAmbisonics
Panning ⚠Effect Reset - Resets the internal processing state of an Ambisonics panning effect.
- iplAmbisonics
Panning ⚠Effect Retain - Retains an additional reference to an Ambisonics panning effect.
- iplAmbisonics
Rotation ⚠Effect Apply - Applies an Ambisonics rotation effect to an audio buffer.
- iplAmbisonics
Rotation ⚠Effect Create - Creates an Ambisonics rotation effect.
- iplAmbisonics
Rotation ⚠Effect GetTail - Retrieves a single frame of tail samples from an Ambisonics rotation effect’s internal buffers.
- iplAmbisonics
Rotation ⚠Effect GetTail Size - Returns the number of tail samples remaining in an Ambisonics rotation effect’s internal buffers.
- iplAmbisonics
Rotation ⚠Effect Release - Releases a reference to an Ambisonics rotation effect.
- iplAmbisonics
Rotation ⚠Effect Reset - Resets the internal processing state of an Ambisonics rotation effect.
- iplAmbisonics
Rotation ⚠Effect Retain - Retains an additional reference to an Ambisonics rotation effect.
- iplAudio
Buffer ⚠Allocate - Allocates an audio buffer.
- iplAudio
Buffer ⚠Convert Ambisonics - Converts an Ambisonic audio buffer from one Ambisonic format to another.
- iplAudio
Buffer ⚠Deinterleave - Writes interleaved samples from a user-provided array into an audio buffer.
- iplAudio
Buffer ⚠Downmix - Downmixes a multi-channel audio buffer into a mono audio buffer.
- iplAudio
Buffer ⚠Free - Frees an audio buffer.
- iplAudio
Buffer ⚠Interleave - Reads samples from an audio buffer and interleaves them into a user-provided array.
- iplAudio
Buffer ⚠Mix - Mixes one audio buffer into another.
- iplBinaural
Effect ⚠Apply - Applies a binaural effect to an audio buffer.
- iplBinaural
Effect ⚠Create - Creates a binaural effect.
- iplBinaural
Effect ⚠GetTail - Retrieves a single frame of tail samples from a binaural effect’s internal buffers.
- iplBinaural
Effect ⚠GetTail Size - Returns the number of tail samples remaining in a binaural effect’s internal buffers.
- iplBinaural
Effect ⚠Release - Releases a reference to a binaural effect.
- iplBinaural
Effect ⚠Reset - Resets the internal processing state of a binaural effect.
- iplBinaural
Effect ⚠Retain - Retains an additional reference to a binaural effect.
- iplCalculate
Relative ⚠Direction - Calculates the relative direction from the listener to a sound source. The returned direction vector is expressed in the listener’s coordinate system.
- iplContext
Create ⚠ - Creates a context object. A context must be created before creating any other API objects.
- iplContext
Release ⚠ - Releases a reference to a context. The context will not be destroyed until all references are released.
- iplContext
Retain ⚠ - Retains an additional reference to a context. The context will not be destroyed until all references are released.
- iplDirect
Effect ⚠Apply - Applies a direct effect to an audio buffer.
- iplDirect
Effect ⚠Create - Creates a direct effect.
- iplDirect
Effect ⚠GetTail - Retrieves a single frame of tail samples from a direct effect’s internal buffers.
- iplDirect
Effect ⚠GetTail Size - Returns the number of tail samples remaining in a direct effect’s internal buffers.
- iplDirect
Effect ⚠Release - Releases a reference to a direct effect.
- iplDirect
Effect ⚠Reset - Resets the internal processing state of a direct effect.
- iplDirect
Effect ⚠Retain - Retains an additional reference to a direct effect.
- iplDirectivity
Calculate ⚠ - Calculates the attenuation of a source due to its directivity pattern and orientation relative to a listener.
- iplDistance
Attenuation ⚠Calculate - Calculates the distance attenuation between a source and a listener.
- iplEmbree
Device ⚠Create - Creates an Embree device.
- iplEmbree
Device ⚠Release - Releases a reference to an Embree device.
- iplEmbree
Device ⚠Retain - Retains an additional reference to an Embree device.
- iplHRTF
Create ⚠ - Creates an HRTF.
- iplHRTF
Release ⚠ - Releases a reference to an HRTF object.
- iplHRTF
Retain ⚠ - Retains an additional reference to an HRTF object.
- iplInstanced
Mesh ⚠Add - Adds an instanced mesh to a scene.
- iplInstanced
Mesh ⚠Create - Creates an instanced mesh.
- iplInstanced
Mesh ⚠Release - Releases a reference to a instanced mesh.
- iplInstanced
Mesh ⚠Remove - Removes an instanced mesh from a scene.
- iplInstanced
Mesh ⚠Retain - Retains an additional reference to a instanced mesh.
- iplInstanced
Mesh ⚠Update Transform - Updates the local-to-world transform of an instanced mesh within its parent scene.
- iplOpenCL
Device ⚠Create - Creates an OpenCL device. The device is specified as an index into an OpenCL device list.
- iplOpenCL
Device ⚠Create From Existing - 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.
- iplOpenCL
Device ⚠List Create - Creates an OpenCL device list. This involves listing all available OpenCL devices on the user’s system.
- iplOpenCL
Device ⚠List GetDevice Desc - Retrieves information about a specific device in an OpenCL device list.
- iplOpenCL
Device ⚠List GetNum Devices - \return The number of devices in an OpenCL device list.
- iplOpenCL
Device ⚠List Release - Releases a reference to an OpenCL device list.
- iplOpenCL
Device ⚠List Retain - Retains an additional reference to an OpenCL device list.
- iplOpenCL
Device ⚠Release - Releases a reference to an OpenCL device.
- iplOpenCL
Device ⚠Retain - Retains an additional reference to an OpenCL device.
- iplPanning
Effect ⚠Apply - Applies a panning effect to an audio buffer.
- iplPanning
Effect ⚠Create - Creates a panning effect.
- iplPanning
Effect ⚠GetTail - Retrieves a single frame of tail samples from a panning effect’s internal buffers.
- iplPanning
Effect ⚠GetTail Size - Returns the number of tail samples remaining in a panning effect’s internal buffers.
- iplPanning
Effect ⚠Release - Releases a reference to a panning effect.
- iplPanning
Effect ⚠Reset - Resets the internal processing state of a panning effect.
- iplPanning
Effect ⚠Retain - Retains an additional reference to a panning effect.
- iplPath
Baker ⚠Bake - Bakes a single layer of pathing data in a probe batch.
- iplPath
Baker ⚠Cancel Bake - Cancels any running bakes of pathing data.
- iplPath
Effect ⚠Apply - Applies a path effect to an audio buffer.
- iplPath
Effect ⚠Create - Creates a path effect.
- iplPath
Effect ⚠GetTail - Retrieves a single frame of tail samples from a path effect’s internal buffers.
- iplPath
Effect ⚠GetTail Size - Returns the number of tail samples remaining in a path effect’s internal buffers.
- iplPath
Effect ⚠Release - Releases a reference to a path effect.
- iplPath
Effect ⚠Reset - Resets the internal processing state of a path effect.
- iplPath
Effect ⚠Retain - Retains an additional reference to a path effect.
- iplProbe
Array ⚠Create - Creates an empty probe array.
- iplProbe
Array ⚠Generate Probes - Generates probes and adds them to a probe array.
- iplProbe
Array ⚠GetNum Probes - \return The number of probes in a probe array.
- iplProbe
Array ⚠GetProbe - \return The probe at a given index in a probe array.
- iplProbe
Array ⚠Release - Releases a reference to a probe array.
- iplProbe
Array ⚠Retain - Retains an additional reference to a probe array.
- iplProbe
Batch ⚠AddProbe - Adds a probe to a batch. The new probe will be added as the last probe in the batch.
- iplProbe
Batch ⚠AddProbe Array - Adds every probe in an array to a batch. The new probes will be added, in order, at the end of the batch.
- iplProbe
Batch ⚠Commit - 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.
- iplProbe
Batch ⚠Create - Creates an empty probe batch.
- iplProbe
Batch ⚠GetData Size - \return The size (in bytes) of a specific baked data layer in a probe batch.
- iplProbe
Batch ⚠GetNum Probes - \return The number of probes in a probe batch.
- iplProbe
Batch ⚠Load - 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.
- iplProbe
Batch ⚠Release - Releases a reference to a probe batch.
- iplProbe
Batch ⚠Remove Data - Deletes a specific layer of data from a probe batch.
- iplProbe
Batch ⚠Remove Probe - Removes a probe from a batch.
- iplProbe
Batch ⚠Retain - Retains an additional reference to a probe batch.
- iplProbe
Batch ⚠Save - Saves a probe batch to a serialized object. Typically, the serialized object will then be saved to disk.
- iplRadeon
Rays ⚠Device Create - Creates a Radeon Rays device.
- iplRadeon
Rays ⚠Device Release - Releases a reference to a Radeon Rays device.
- iplRadeon
Rays ⚠Device Retain - Retains an additional reference to a Radeon Rays device.
- iplReflection
Effect ⚠Apply - Applies a reflection effect to an audio buffer.
- iplReflection
Effect ⚠Create - Creates a reflection effect.
- iplReflection
Effect ⚠GetTail - Retrieves a single frame of tail samples from a reflection effect’s internal buffers.
- iplReflection
Effect ⚠GetTail Size - Returns the number of tail samples remaining in a reflection effect’s internal buffers.
- iplReflection
Effect ⚠Release - Releases a reference to a reflection effect.
- iplReflection
Effect ⚠Reset - Resets the internal processing state of a reflection effect.
- iplReflection
Effect ⚠Retain - Retains an additional reference to a reflection effect.
- iplReflection
Mixer ⚠Apply - Retrieves the contents of a reflection mixer and places it into an audio buffer.
- iplReflection
Mixer ⚠Create - Creates a reflection effect mixer.
- iplReflection
Mixer ⚠Release - Releases a reference to a reflection mixer.
- iplReflection
Mixer ⚠Reset - Resets the internal processing state of a reflection mixer.
- iplReflection
Mixer ⚠Retain - Retains an additional reference to a reflection mixer.
- iplReflections
Baker ⚠Bake - Bakes a single layer of reflections data in a probe batch.
- iplReflections
Baker ⚠Cancel Bake - Cancels any running bakes of reflections data.
- iplScene
Commit ⚠ - Commits any changes to the scene.
- iplScene
Create ⚠ - Creates a scene.
- iplScene
Load ⚠ - 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.
- iplScene
Release ⚠ - Releases a reference to a scene.
- iplScene
Retain ⚠ - Retains an additional reference to a scene.
- iplScene
Save ⚠ - Saves a scene to a serialized object. Typically, the serialized object will then be saved to disk.
- iplScene
SaveOBJ ⚠ - Saves a scene to an OBJ file.
- iplSerialized
Object ⚠Create - Creates a serialized object.
- iplSerialized
Object ⚠GetData - \return A pointer to a byte array of serialized data contained in a serialized object.
- iplSerialized
Object ⚠GetSize - \return The size in bytes of the serialized data contained in a serialized object.
- iplSerialized
Object ⚠Release - Releases a reference to a serialized object.
- iplSerialized
Object ⚠Retain - Retains an additional reference to a serialized object.
- iplSimulator
AddProbe ⚠Batch - 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.
- iplSimulator
Commit ⚠ - Commits changes to the scene or probe batches used for simulation.
- iplSimulator
Create ⚠ - Creates a simulator.
- iplSimulator
Release ⚠ - Releases a reference to a simulator.
- iplSimulator
Remove ⚠Probe Batch - 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.
- iplSimulator
Retain ⚠ - Retains an additional reference to a simulator.
- iplSimulator
RunDirect ⚠ - Runs a direct simulation for all sources added to the simulator. This may include distance attenuation, air absorption, directivity, occlusion, and transmission.
- iplSimulator
RunPathing ⚠ - Runs a pathing simulation for all sources added to the simulator.
- iplSimulator
RunReflections ⚠ - Runs a reflections simulation for all sources added to the simulator.
- iplSimulator
SetScene ⚠ - Specifies the scene within which all subsequent simulations should be run.
- iplSimulator
SetShared ⚠Inputs - Specifies simulation parameters that are not associated with any particular source.
- iplSource
Add ⚠ - Adds a source to the set of sources processed by a simulator in subsequent simulations.
- iplSource
Create ⚠ - Creates a simulation source.
- iplSource
GetOutputs ⚠ - Retrieves simulation results for a source.
- iplSource
Release ⚠ - Releases a reference to a source.
- iplSource
Remove ⚠ - Removes a source from the set of sources processed by a simulator in subsequent simulations.
- iplSource
Retain ⚠ - Retains an additional reference to a source.
- iplSource
SetInputs ⚠ - Specifies simulation parameters for a source.
- iplStatic
Mesh ⚠Add - Adds a static mesh to a scene.
- iplStatic
Mesh ⚠Create - Creates a static mesh.
- iplStatic
Mesh ⚠Load - 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.
- iplStatic
Mesh ⚠Release - Releases a reference to a static mesh.
- iplStatic
Mesh ⚠Remove - Removes a static mesh from a scene.
- iplStatic
Mesh ⚠Retain - Retains an additional reference to a static mesh.
- iplStatic
Mesh ⚠Save - Saves a static mesh to a serialized object. Typically, the serialized object will then be saved to disk.
- iplTrue
Audio ⚠Next Device Create - Creates a TrueAudio Next device.
- iplTrue
Audio ⚠Next Device Release - Releases a reference to a TrueAudio Next device.
- iplTrue
Audio ⚠Next Device Retain - Retains an additional reference to a TrueAudio Next device.
- iplVirtual
Surround ⚠Effect Apply - Applies a virtual surround effect to an audio buffer.
- iplVirtual
Surround ⚠Effect Create - Creates a virtual surround effect.
- iplVirtual
Surround ⚠Effect GetTail - Retrieves a single frame of tail samples from a virtual surround effect’s internal buffers.
- iplVirtual
Surround ⚠Effect GetTail Size - Returns the number of tail samples remaining in a virtual surround effect’s internal buffers.
- iplVirtual
Surround ⚠Effect Release - Releases a reference to a virtual surround effect.
- iplVirtual
Surround ⚠Effect Reset - Resets the internal processing state of a virtual surround effect.
- iplVirtual
Surround ⚠Effect Retain - Retains an additional reference to a virtual surround effect.
Type Aliases§
- IPLAir
Absorption Callback - Callback for calculating how much air absorption should be applied to a sound based on its distance from the listener.
- IPLAllocate
Function - 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.
- IPLAmbisonics
Binaural Effect - 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.
- IPLAmbisonics
Decode Effect - 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.
- IPLAmbisonics
Encode Effect - 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.
- IPLAmbisonics
Panning Effect - 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.
- IPLAmbisonics
Rotation Effect - 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.
- IPLAny
HitCallback - Callback for calculating whether a ray hits any geometry.
- IPLBatched
AnyHit Callback - Callback for calculating for each ray in a batch of rays, whether the ray hits any geometry.
- IPLBatched
Closest HitCallback - Callback for calculating the closest hit along a batch of rays.
- IPLBinaural
Effect - 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.
- IPLClosest
HitCallback - 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.
- IPLDirect
Effect - Filters and attenuates an audio signal based on various properties of the direct path between a point source and the listener.
- IPLDirectivity
Callback - Callback for calculating how much to attenuate a sound based on its directivity pattern and orientation in world space.
- IPLDistance
Attenuation Callback - Callback for calculating how much attenuation should be applied to a sound based on its distance from the listener.
- IPLEmbree
Device - 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.
- IPLEmbree
Device Settings - IPLFree
Function - 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.
- IPLInstanced
Mesh - 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.
- IPLLog
Function - 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.
- IPLOpenCL
Device - 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.
- IPLOpenCL
Device List - 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.
- IPLPanning
Effect - Pans a single-channel point source to a multi-channel speaker layout based on the 3D position of the source relative to the listener.
- IPLPath
Effect - 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.
- IPLPathing
Visualization Callback - Callback for visualizing valid path segments during call to \c iplSimulatorRunPathing.
- IPLProbe
Array - An array of sound probes. Each probe has a position and a radius of influence.
- IPLProbe
Batch - 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.
- IPLProgress
Callback - Callback for updating the application on the progress of a function.
- IPLRadeon
Rays Device - 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.
- IPLRadeon
Rays Device Settings - IPLReflection
Effect - 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.
- IPLReflection
EffectIR - 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.
- IPLReflection
Mixer - 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.
- IPLSerialized
Object - 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.
- IPLStatic
Mesh - 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.
- IPLTrue
Audio Next Device - 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.
- IPLVirtual
Surround Effect - 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