Bindings for [[ Windows XAudio2 ; https://learn.microsoft.com/en-us/windows/win32/xaudio2/xaudio2-introduction ]]. Compiling for Windows 10 RS5 (1809) and later

Collection Info

View Source
Collection
vendor
Path
windows/XAudio2
Entries
304

Source Files

Constants

166

COMMIT_NOW #

Source
COMMIT_NOW :: 0

Numeric values with special meanings

DEFAULT_CHANNELS #

Source
DEFAULT_CHANNELS :: 0

Used in CreateMasteringVoice

DEFAULT_FILTER_FREQUENCY #

Source
DEFAULT_FILTER_FREQUENCY :: MAX_FILTER_FREQUENCY

DEFAULT_FILTER_TYPE #

Source
DEFAULT_FILTER_TYPE :: FILTER_TYPE.LowPassFilter

Default parameters for the built-in filter

DEFAULT_FREQ_RATIO #

Source
DEFAULT_FREQ_RATIO :: 2.0

Default MaxFrequencyRatio argument

DEFAULT_SAMPLERATE #

Source
DEFAULT_SAMPLERATE :: 0

Used in CreateMasteringVoice

DEVICE_INVALIDATED #

Source
DEVICE_INVALIDATED :: HRESULT(-2003435516)

0x88960004 An audio device became unusable (unplugged, etc)

FXECHO_MIN_WETDRYMIX #

Source
FXECHO_MIN_WETDRYMIX :: 0.0

Echo initialization data/parameter bounds (inclusive), used with FXEcho:

FXEcho_UUID_STRING #

Source
FXEcho_UUID_STRING :: "5039D740-F736-449A-84D3-A56202557B87"

FXEQ_DEFAULT_BANDWIDTH #

Source
FXEQ_DEFAULT_BANDWIDTH :: 1.0

all bands

FXEQ_DEFAULT_FREQUENCY_CENTER_0 #

Source
FXEQ_DEFAULT_FREQUENCY_CENTER_0 :: 100.0

band 0

FXEQ_DEFAULT_FREQUENCY_CENTER_1 #

Source
FXEQ_DEFAULT_FREQUENCY_CENTER_1 :: 800.0

band 1

FXEQ_DEFAULT_FREQUENCY_CENTER_2 #

Source
FXEQ_DEFAULT_FREQUENCY_CENTER_2 :: 2000.0

band 2

FXEQ_DEFAULT_FREQUENCY_CENTER_3 #

Source
FXEQ_DEFAULT_FREQUENCY_CENTER_3 :: 10000.0

band 3

FXEQ_DEFAULT_GAIN #

Source
FXEQ_DEFAULT_GAIN :: 1.0

0dB change, all bands

FXEQ_MAX_FREQUENCY_CENTER #

Source
FXEQ_MAX_FREQUENCY_CENTER :: 20000.0

FXEQ_MIN_FRAMERATE #

Source
FXEQ_MIN_FRAMERATE :: 22000

EQ parameter bounds (inclusive), used with FXEQ:

FXEQ_UUID_STRING #

Source
FXEQ_UUID_STRING :: "F5E01117-D6C4-485A-A3F5-695196F3DBFA"

FXLOUDNESS_DEFAULT_MOMENTARY_MS #

Source
FXLOUDNESS_DEFAULT_MOMENTARY_MS :: 400

Loudness defaults used with FXLoudness:

FXLOUDNESS_DEFAULT_SHORTTERM_MS #

Source
FXLOUDNESS_DEFAULT_SHORTTERM_MS :: 3000

FXMASTERINGLIMITER_DEFAULT_LOUDNESS #

Source
FXMASTERINGLIMITER_DEFAULT_LOUDNESS :: 1000

FXMASTERINGLIMITER_DEFAULT_RELEASE #

Source
FXMASTERINGLIMITER_DEFAULT_RELEASE :: 6

FXMASTERINGLIMITER_MAX_LOUDNESS #

Source
FXMASTERINGLIMITER_MAX_LOUDNESS :: 1800

FXMASTERINGLIMITER_MAX_RELEASE #

Source
FXMASTERINGLIMITER_MAX_RELEASE :: 20

FXMASTERINGLIMITER_MIN_LOUDNESS #

Source
FXMASTERINGLIMITER_MIN_LOUDNESS :: 1

FXMASTERINGLIMITER_MIN_RELEASE #

Source
FXMASTERINGLIMITER_MIN_RELEASE :: 1

Mastering limiter parameter bounds (inclusive), used with FXMasteringLimiter:

FXMasteringLimiter_UUID_STRING #

Source
FXMasteringLimiter_UUID_STRING :: "C4137916-2BE1-46FD-8599-441536F49856"

FXREVERB_DEFAULT_DIFFUSION #

Source
FXREVERB_DEFAULT_DIFFUSION :: 0.9

FXREVERB_MIN_DIFFUSION #

Source
FXREVERB_MIN_DIFFUSION :: 0.0

Reverb parameter bounds (inclusive), used with FXReverb:

FXReverb_UUID_STRING #

Source
FXReverb_UUID_STRING :: "7D9ACA56-CB68-4807-B632-B137352E8596"

HANDLE_BYTESIZE #

Source
HANDLE_BYTESIZE :: 20

size of instance handle in bytes

HRTF_DEFAULT_CUTOFF_DISTANCE #

Source
HRTF_DEFAULT_CUTOFF_DISTANCE :: 3.402823466e+38

HRTF_DEFAULT_UNITY_GAIN_DISTANCE #

Source
HRTF_DEFAULT_UNITY_GAIN_DISTANCE :: 1.0

HRTF_MIN_UNITY_GAIN_DISTANCE #

Source
HRTF_MIN_UNITY_GAIN_DISTANCE :: 0.05

INVALID_CALL #

Source
INVALID_CALL :: HRESULT(-2003435519)

XAudio2 error codes

INVALID_OPSET #

Source
INVALID_OPSET :: 0xffffffff

Not allowed for OperationSet arguments

IXAPO_UUID_STRING #

Source
IXAPO_UUID_STRING :: "A410B984-9839-4819-A0BE-2856AE6B3ADB"

IXAPOHrtfParameters_UUID_STRING #

Source
IXAPOHrtfParameters_UUID_STRING :: "15B3CD66-E9DE-4464-B6E6-2BC3CF63D455"

! The interface used to set parameters that control how HRTF is applied to a sound.

IXAPOParameters_UUID_STRING #

Source
IXAPOParameters_UUID_STRING :: "26D95C66-80F2-499A-AD54-5AE7F01C6D98"

IXAPOParameters: Optional XAPO COM interface that allows an XAPO to use effect-specific parameters.

IXAudio2_UUID_STRING #

Source
IXAudio2_UUID_STRING :: "2B02E3CF-2E0B-4ec3-BE45-1B2A3FE7210D"

IXAudio2Extension_UUID_STRING #

Source
IXAudio2Extension_UUID_STRING :: "84ac29bb-d619-44d2-b197-e4acf7df3ed6"

This interface extends IXAudio2 with additional functionality. Use IXAudio2.QueryInterface to obtain a pointer to this interface.

MAX_AUDIO_CHANNELS #

Source
MAX_AUDIO_CHANNELS :: 64

Maximum channels in an audio stream

MAX_BUFFER_BYTES #

Source
MAX_BUFFER_BYTES :: 0x80000000

Numeric boundary values

MAX_BUFFERS_SYSTEM #

Source
MAX_BUFFERS_SYSTEM :: 2

Maximum buffers allowed for system threads (Xbox 360 only)

MAX_FILTER_FREQUENCY #

Source
MAX_FILTER_FREQUENCY :: 1.0

Maximum FILTER_PARAMETERS.Frequency

MAX_FILTER_ONEOVERQ #

Source
MAX_FILTER_ONEOVERQ :: 1.5

Maximum FILTER_PARAMETERS.OneOverQ

MAX_FREQ_RATIO #

Source
MAX_FREQ_RATIO :: 1024.0

Maximum MaxFrequencyRatio argument

MAX_INSTANCES #

Source
MAX_INSTANCES :: 8

Maximum simultaneous XAudio2 objects on Xbox 360

MAX_LOOP_COUNT #

Source
MAX_LOOP_COUNT :: 254

Maximum non-infinite BUFFER.LoopCount

MAX_QUEUED_BUFFERS #

Source
MAX_QUEUED_BUFFERS :: 64

Maximum buffers allowed in a voice queue

MAX_RATIO_TIMES_RATE_XMA_MONO #

Source
MAX_RATIO_TIMES_RATE_XMA_MONO :: 600000

For XMA voices on Xbox 360 there is an additional restriction on the MaxFrequencyRatio argument and the voice's sample rate: the product of these numbers cannot exceed 600000 for one-channel voices or 300000 for voices with more than one channel.

MAX_RATIO_TIMES_RATE_XMA_MULTICHANNEL #

Source
MAX_RATIO_TIMES_RATE_XMA_MULTICHANNEL :: 300000

MAX_SAMPLE_RATE #

Source
MAX_SAMPLE_RATE :: 200000

Maximum audio sample rate supported

MAX_VOLUME_LEVEL #

Source
MAX_VOLUME_LEVEL :: 16777216.0

Maximum acceptable volume level (2^24)

MIN_FREQ_RATIO #

Source
MIN_FREQ_RATIO :: 1.0 / 1024.0

Minimum SetFrequencyRatio argument

MIN_SAMPLE_RATE #

Source
MIN_SAMPLE_RATE :: 1000

Minimum audio sample rate supported

QUANTUM_DENOMINATOR #

Source
QUANTUM_DENOMINATOR :: 100

in 10ms chunks (= 1/100 seconds)

QUANTUM_MS #

Source
QUANTUM_MS :: 1000.0 * QUANTUM_NUMERATOR / QUANTUM_DENOMINATOR

QUANTUM_NUMERATOR #

Source
QUANTUM_NUMERATOR :: 1

Internal XAudio2 constants The audio frame quantum can be calculated by reducing the fraction: SamplesPerAudioFrame / SamplesPerSecond

REVERB_DEFAULT_7POINT1_REAR_DELAY #

Source
REVERB_DEFAULT_7POINT1_REAR_DELAY :: 20

REVERB_DEFAULT_7POINT1_SIDE_DELAY #

Source
REVERB_DEFAULT_7POINT1_SIDE_DELAY :: 5

REVERB_DEFAULT_DISABLE_LATE_FIELD #

Source
REVERB_DEFAULT_DISABLE_LATE_FIELD :: false

REVERB_DEFAULT_EARLY_DIFFUSION #

Source
REVERB_DEFAULT_EARLY_DIFFUSION :: 8

REVERB_DEFAULT_HIGH_EQ_CUTOFF #

Source
REVERB_DEFAULT_HIGH_EQ_CUTOFF :: 4

REVERB_DEFAULT_HIGH_EQ_GAIN #

Source
REVERB_DEFAULT_HIGH_EQ_GAIN :: 8

REVERB_DEFAULT_LATE_DIFFUSION #

Source
REVERB_DEFAULT_LATE_DIFFUSION :: 8

REVERB_DEFAULT_LOW_EQ_CUTOFF #

Source
REVERB_DEFAULT_LOW_EQ_CUTOFF :: 4

REVERB_DEFAULT_POSITION_MATRIX #

Source
REVERB_DEFAULT_POSITION_MATRIX :: 27

REVERB_DEFAULT_REFLECTIONS_DELAY #

Source
REVERB_DEFAULT_REFLECTIONS_DELAY :: 5

REVERB_DEFAULT_REFLECTIONS_GAIN #

Source
REVERB_DEFAULT_REFLECTIONS_GAIN :: 0.0

REVERB_DEFAULT_REVERB_DELAY #

Source
REVERB_DEFAULT_REVERB_DELAY :: 5

REVERB_DEFAULT_REVERB_GAIN #

Source
REVERB_DEFAULT_REVERB_GAIN :: 0.0

REVERB_DEFAULT_ROOM_FILTER_FREQ #

Source
REVERB_DEFAULT_ROOM_FILTER_FREQ :: 5000.0

REVERB_DEFAULT_ROOM_FILTER_HF #

Source
REVERB_DEFAULT_ROOM_FILTER_HF :: 0.0

REVERB_DEFAULT_ROOM_FILTER_MAIN #

Source
REVERB_DEFAULT_ROOM_FILTER_MAIN :: 0.0

REVERB_DEFAULT_WET_DRY_MIX #

Source
REVERB_DEFAULT_WET_DRY_MIX :: 100.0

REVERB_MAX_7POINT1_REAR_DELAY #

Source
REVERB_MAX_7POINT1_REAR_DELAY :: 20

REVERB_MAX_7POINT1_SIDE_DELAY #

Source
REVERB_MAX_7POINT1_SIDE_DELAY :: 5

REVERB_MAX_REFLECTIONS_DELAY #

Source
REVERB_MAX_REFLECTIONS_DELAY :: 300

REVERB_MAX_REFLECTIONS_GAIN #

Source
REVERB_MAX_REFLECTIONS_GAIN :: 20.0

REVERB_MAX_ROOM_FILTER_FREQ #

Source
REVERB_MAX_ROOM_FILTER_FREQ :: 20000.0

REVERB_MAX_ROOM_FILTER_MAIN #

Source
REVERB_MAX_ROOM_FILTER_MAIN :: 0.0

REVERB_MIN_7POINT1_REAR_DELAY #

Source
REVERB_MIN_7POINT1_REAR_DELAY :: 0

REVERB_MIN_7POINT1_SIDE_DELAY #

Source
REVERB_MIN_7POINT1_SIDE_DELAY :: 0

REVERB_MIN_REFLECTIONS_DELAY #

Source
REVERB_MIN_REFLECTIONS_DELAY :: 0

REVERB_MIN_REFLECTIONS_GAIN #

Source
REVERB_MIN_REFLECTIONS_GAIN :: -100.0

REVERB_MIN_ROOM_FILTER_FREQ #

Source
REVERB_MIN_ROOM_FILTER_FREQ :: 20.0

REVERB_MIN_ROOM_FILTER_HF #

Source
REVERB_MIN_ROOM_FILTER_HF :: -100.0

REVERB_MIN_ROOM_FILTER_MAIN #

Source
REVERB_MIN_ROOM_FILTER_MAIN :: -100.0

REVERB_MIN_WET_DRY_MIX #

Source
REVERB_MIN_WET_DRY_MIX :: 0.0

Maximum, minimum and default values for the parameters above

SPEAKER_2POINT1 #

Source
SPEAKER_2POINT1 :: SPEAKER_FLAGS{.FRONT_LEFT, .FRONT_RIGHT, .LOW_FREQUENCY}

SPEAKER_4POINT1 #

Source
SPEAKER_4POINT1 :: SPEAKER_FLAGS{.FRONT_LEFT, .FRONT_RIGHT, .LOW_FREQUENCY, .BACK_LEFT, .BACK_RIGHT}

SPEAKER_5POINT1 #

Source
SPEAKER_5POINT1 :: SPEAKER_FLAGS{.FRONT_LEFT, .FRONT_RIGHT, .FRONT_CENTER, .LOW_FREQUENCY, .BACK_LEFT, .BACK_RIGHT}

SPEAKER_5POINT1_SURROUND #

Source
SPEAKER_5POINT1_SURROUND :: SPEAKER_FLAGS{.FRONT_LEFT, .FRONT_RIGHT, .FRONT_CENTER, .LOW_FREQUENCY, .SIDE_LEFT, .SIDE_RIGHT}

SPEAKER_7POINT1 #

Source
SPEAKER_7POINT1 :: SPEAKER_FLAGS{.FRONT_LEFT, .FRONT_RIGHT, .FRONT_CENTER, .LOW_FREQUENCY, .BACK_LEFT, .BACK_RIGHT, .FRONT_LEFT_OF_CENTER, .FRONT_RIGHT_OF_CENTER}

SPEAKER_7POINT1_SURROUND #

Source
SPEAKER_7POINT1_SURROUND :: SPEAKER_FLAGS{.FRONT_LEFT, .FRONT_RIGHT, .FRONT_CENTER, .LOW_FREQUENCY, .BACK_LEFT, .BACK_RIGHT, .SIDE_LEFT, .SIDE_RIGHT}

SPEAKER_MONO #

Source
SPEAKER_MONO :: SPEAKER_FLAGS{.FRONT_CENTER}

standard speaker geometry configurations, used with Initialize

SPEAKER_QUAD #

Source
SPEAKER_QUAD :: SPEAKER_FLAGS{.FRONT_LEFT, .FRONT_RIGHT, .BACK_LEFT, .BACK_RIGHT}

SPEAKER_STEREO #

Source
SPEAKER_STEREO :: SPEAKER_FLAGS{.FRONT_LEFT, .FRONT_RIGHT}

SPEAKER_SURROUND #

Source
SPEAKER_SURROUND :: SPEAKER_FLAGS{.FRONT_LEFT, .FRONT_RIGHT, .FRONT_CENTER, .BACK_CENTER}

SPEED_OF_SOUND #

Source
SPEED_OF_SOUND :: 343.5

speed of sound in meters per second for dry air at approximately 20C, used with Initialize

USE_DEFAULT_PROCESSOR #

Source
USE_DEFAULT_PROCESSOR :: PROCESSOR_FLAGS{}

ANY_PROCESSOR :: 0xffffffff

XAPO_CREATION_FAILED #

Source
XAPO_CREATION_FAILED :: HRESULT(-2003435517)

0x88960003 XAudio2 failed to initialize an XAPO effect

XAPO_MIN_CHANNELS #

Source
XAPO_MIN_CHANNELS :: 1

supported number of channels (samples per frame) range

XAPO_MIN_FRAMERATE #

Source
XAPO_MIN_FRAMERATE :: 1000

supported framerate range

XAPO_REGISTRATION_STRING_LENGTH #

Source
XAPO_REGISTRATION_STRING_LENGTH :: 256

unicode string length, including terminator, used with XAPO_REGISTRATION_PROPERTIES

XMA_DECODER_ERROR #

Source
XMA_DECODER_ERROR :: HRESULT(-2003435518)

0x88960002 The XMA hardware suffered an unrecoverable error

Types

80

AUDIO_STREAM_CATEGORY #

Source
AUDIO_STREAM_CATEGORY :: AUDIO_STREAM_CATEGORY

------------------------------------------------------------------------- Description: Audio stream categories Other - All other streams (default) ForegroundOnlyMedia - (deprecated for Win10) Music, Streaming audio BackgroundCapableMedia - (deprecated for Win10) Video with audio Communications - VOIP, chat, phone call Alerts - Alarm, Ring tones SoundEffects - Sound effects, clicks, dings GameEffects - Game sound effects GameMedia - Background audio for games GameChat - In game player chat Speech - Speech recognition Media - Music, Streaming audio Movie - Video with audio FarFieldSpeech - Capture of far field speech UniformSpeech - Uniform, device agnostic speech processing VoiceTyping - Dictation, typing by voice

BUFFER_WMA #

Source
BUFFER_WMA :: BUFFER_WMA

Used in IXAudio2SourceVoice.SubmitSourceBuffer when submitting XWMA data. NOTE: If an XWMA sound is submitted in more than one buffer, each buffer's pDecodedPacketCumulativeBytes[PacketCount-1] value must be subtracted from all the entries in the next buffer's pDecodedPacketCumulativeBytes array. And whether a sound is submitted in more than one buffer or not, the final buffer of the sound should use the END_OF_STREAM flag, or else the client must call IXAudio2SourceVoice.Discontinuity after submitting it.

CONE #

Source
CONE :: CONE

Cone: Specifies directionality for a listener or single-channel emitter by modifying DSP behaviour with respect to its front orientation. This is modeled using two sound cones: an inner cone and an outer cone. On/within the inner cone, DSP settings are scaled by the inner values. On/beyond the outer cone, DSP settings are scaled by the outer values. If on both the cones, DSP settings are scaled by the inner values only. Between the two cones, the scaler is linearly interpolated between the inner and outer values. Set both cone angles to 0 or TAU for omnidirectionality using only the outer or inner values respectively.

DEBUG_CONFIG_FLAGS #

Source
DEBUG_CONFIG_FLAGS :: distinct DEBUG_CONFIG_FLAGS

Values for the TraceMask and BreakMask bitmaps. Only ERRORS and WARNINGS are valid in BreakMask. WARNINGS implies ERRORS, DETAIL implies INFO, and FUNC_CALLS implies API_CALLS. By default, TraceMask is ERRORS and WARNINGS and all the other settings are zero.

DISTANCE_CURVE #

Source
DISTANCE_CURVE :: DISTANCE_CURVE

Distance curve: A piecewise curve made up of linear segments used to define DSP behaviour with respect to normalized distance. Note that curve point distances are normalized within [0.0, 1.0]. EMITTER.CurveDistanceScaler must be used to scale the normalized distances to user-defined world units. For distances beyond CurveDistanceScaler * 1.0, pPoints[PointCount-1].DSPSetting is used as the DSP setting. All distance curve spans must be such that: pPoints[k-1].DSPSetting + ((pPoints[k].DSPSetting-pPoints[k-1].DSPSetting) / (pPoints[k].Distance-pPoints[k-1].Distance)) * (pPoints[k].Distance-pPoints[k-1].Distance) != NAN or infinite values For all points in the distance curve where 1 <= k < PointCount.

DSP_SETTINGS #

Source
DSP_SETTINGS :: DSP_SETTINGS

DSP settings: Receives results from a call to Calculate to be sent to the low-level audio rendering API for 3D signal processing. The user is responsible for allocating the matrix coefficient table, delay time array, and initializing the channel counts when used.

EMITTER #

Source
EMITTER :: EMITTER

Emitter: Defines a 3D audio source, divided into two classifications: Single-point -- For use with single-channel sounds. Positioned at the emitter base, i.e. the channel radius and azimuth are ignored if the number of channels == 1. May be omnidirectional or directional using a cone. The cone originates from the emitter base position, and is directed by the emitter's front orientation. Multi-point -- For use with multi-channel sounds. Each non-LFE channel is positioned using an azimuth along the channel radius with respect to the front orientation vector in the plane orthogonal to the top orientation vector. An azimuth of TAU specifies a channel is an LFE. Such channels are positioned at the emitter base and are calculated with respect to pLFECurve only, never pVolumeCurve. Multi-point emitters are always omnidirectional, i.e. the cone is ignored if the number of channels > 1. Note that many properties are shared among all channel points, locking certain behaviour with respect to the emitter base position. For example, doppler shift is always calculated with respect to the emitter base position and so is constant for all its channel points. Distance curve calculations are also with respect to the emitter base position, with the curves being calculated independently of each other. For instance, volume and LFE calculations do not affect one another.

FXECHO_INITDATA #

Source
FXECHO_INITDATA :: FXECHO_INITDATA

Echo initialization data, used with CreateFX: Use of this structure is optional, the default MaxDelay is FXECHO_DEFAULT_DELAY.

FXECHO_PARAMETERS #

Source
FXECHO_PARAMETERS :: FXECHO_PARAMETERS

Echo parameters, used with IXAPOParameters.SetParameters: The echo supports only f32 audio formats.

FXEQ_PARAMETERS #

Source
FXEQ_PARAMETERS :: FXEQ_PARAMETERS

EQ parameters (4 bands), used with IXAPOParameters.SetParameters: The EQ supports only f32 audio foramts. The framerate must be within [22000, 48000] Hz.

FXMASTERINGLIMITER_PARAMETERS #

Source
FXMASTERINGLIMITER_PARAMETERS :: FXMASTERINGLIMITER_PARAMETERS

Mastering limiter parameters, used with IXAPOParameters.SetParameters: The mastering limiter supports only f32 audio formats.

FXREVERB_PARAMETERS #

Source
FXREVERB_PARAMETERS :: FXREVERB_PARAMETERS

Reverb parameters, used with IXAPOParameters.SetParameters: The reverb supports only f32 audio formats with the following channel configurations: Input: Mono Output: Mono Input: Stereo Output: Stereo

HrtfApoInit #

Source
HrtfApoInit :: HrtfApoInit

! Specifies parameters used to initialize HRTF. ! Instances of the XAPO interface are created by using the CreateHrtfApo() API: ! ```CreateHrtfApo :: proc(pInit: HrtfApoInit, ppXapo: ^^IXAPO) -> HRESULT```

HrtfDirectivity #

Source
HrtfDirectivity :: HrtfDirectivity

! Base directivity pattern descriptor. Describes the type of directivity applied to a sound. ! The scaling parameter is used to interpolate between directivity behavior and omnidirectional, it determines how much attenuation is applied to the source outside of the directivity pattern and controls how directional the source is.

HrtfDirectivityCone #

Source
HrtfDirectivityCone :: HrtfDirectivityCone

! Describes a cone directivity. ! Attenuation is 0 inside the inner cone. ! Attenuation is linearly interpolated between the inner cone, which is defined by innerAngle, and the outer cone, which is defined by outerAngle.

HrtfOrientation #

Source
HrtfOrientation :: HrtfOrientation

! Indicates the orientation of an HRTF directivity object. This is a row-major 3x3 rotation matrix.

LISTENER #

Source
LISTENER :: LISTENER

Listener: Defines a point of 3D audio reception. The cone is directed by the listener's front orientation.

VECTOR #

Source
VECTOR :: distinct VECTOR

--------------<D-A-T-A---T-Y-P-E-S>---------------------------------------//

VOLUMEMETER_LEVELS #

Source
VOLUMEMETER_LEVELS :: VOLUMEMETER_LEVELS

VOLUMEMETER_LEVELS: Receives results from GetEffectParameters(). The user is responsible for allocating pPeakLevels, pRMSLevels, and initializing ChannelCount accordingly. The volume meter does not support SetEffectParameters().

XAPO_BUFFER_FLAGS #

Source
XAPO_BUFFER_FLAGS :: XAPO_BUFFER_FLAGS

Buffer flags: Describes assumed content of the respective buffer. Used with XAPO_PROCESS_BUFFER_PARAMETERS.BufferFlags. This meta-data can be used by an XAPO to implement optimizations that require knowledge of a buffer's content. For example, XAPOs that always produce silent output from silent input can check the flag on the input buffer to determine if any signal processing is necessary. If silent, the XAPO may simply set the flag on the output buffer to silent and return, optimizing out the work of processing silent data: XAPOs that generate silence for any reason may set the buffer's flag accordingly rather than writing out silent frames to the buffer itself. The flags represent what should be assumed is in the respective buffer. The flags may not reflect what is actually stored in memory.

XAPO_FLAGS #

Source
XAPO_FLAGS :: distinct XAPO_FLAGS

XAPO property flags, used with XAPO_REGISTRATION_PROPERTIES.Flags:

XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS #

Source
XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS :: XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS

LockForProcess buffer parameters: Defines buffer parameters that remain constant while an XAPO is locked. Used with IXAPO.LockForProcess. For CBR XAPOs, MaxFrameCount is the only number of frames IXAPO.Process would have to handle for the respective buffer.

XAPO_PROCESS_BUFFER_PARAMETERS #

Source
XAPO_PROCESS_BUFFER_PARAMETERS :: XAPO_PROCESS_BUFFER_PARAMETERS

Process buffer parameters: Defines buffer parameters that may change from one processing pass to the next. Used with IXAPO.Process. Note the byte size of the respective buffer must be at least: XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS.MaxFrameCount * XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS.pFormat.nBlockAlign Although the audio format and maximum size of the respective buffer is locked (defined by XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS), the actual memory address of the buffer given is permitted to change from one processing pass to the next. For CBR XAPOs, ValidFrameCount is constant while locked and equals the respective XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS.MaxFrameCount.

XAPO_REGISTRATION_PROPERTIES #

Source
XAPO_REGISTRATION_PROPERTIES :: XAPO_REGISTRATION_PROPERTIES

XAPO registration properties, describes general XAPO characteristics, used with IXAPO.GetRegistrationProperties

Procedures

15

AmplitudeRatioToDecibels #

Source
AmplitudeRatioToDecibels :: proc "contextless" (Volume: f32) -> f32 {…}

Recover a volume in decibels from an amplitude factor

CreateFX #

Source
CreateFX :: proc "c" (clsid: ^GUID, pEffect: ^^IUnknown, pInitDat: rawptr = nil, InitDataByteSize: u32 = 0) -> HRESULT ---

creates instance of requested XAPO, use Release to free instance pInitData - [in] effect-specific initialization parameters, may be nil if InitDataByteSize == 0 InitDataByteSize - [in] size of pInitData in bytes, may be 0 if pInitData is nil

CutoffFrequencyToOnePoleCoefficient #

Source
CutoffFrequencyToOnePoleCoefficient :: proc "contextless" (CutoffFrequency: f32, SampleRate: u32) -> f32 {…}

Convert from filter cutoff frequencies expressed in Hertz to the filter coefficients used with FILTER_PARAMETERS.Frequency, LowPassOnePoleFilter and HighPassOnePoleFilter filter types only. Use CutoffFrequencyToRadians() for state-variable filter types.

CutoffFrequencyToRadians #

Source
CutoffFrequencyToRadians :: proc "contextless" (CutoffFrequency: f32, SampleRate: u32) -> f32 {…}

Convert from filter cutoff frequencies expressed in Hertz to the radian frequency values used in FILTER_PARAMETERS.Frequency, state-variable filter types only. Use CutoffFrequencyToOnePoleCoefficient() for one-pole filter types. Note that the highest CutoffFrequency supported is SampleRate/6. Higher values of CutoffFrequency will return MAX_FILTER_FREQUENCY.

DecibelsToAmplitudeRatio #

Source
DecibelsToAmplitudeRatio :: proc "contextless" (Decibels: f32) -> f32 {…}

Calculate the argument to SetVolume from a decibel value

FrequencyRatioToSemitones #

Source
FrequencyRatioToSemitones :: proc "contextless" (FrequencyRatio: f32) -> f32 {…}

Recover a pitch in semitones from a frequency ratio

RadiansToCutoffFrequency #

Source
RadiansToCutoffFrequency :: proc "contextless" (Radians: f32, SampleRate: f32) -> f32 {…}

Convert from radian frequencies back to absolute frequencies in Hertz

SemitonesToFrequencyRatio #

Source
SemitonesToFrequencyRatio :: proc "contextless" (Semitones: f32) -> f32 {…}

Calculate the argument to SetFrequencyRatio from a semitone value

Variables

43

Default_DirectionalCone #

Source
Default_DirectionalCone: CONE = CONE{math.PI / 2, math.PI, 1.0, 0.708, 0.0, 0.25, 0.708, 1.0}

FORMAT_UNSUPPORTED #

Source
FORMAT_UNSUPPORTED: HRESULT = win.MAKE_HRESULT(win.SEVERITY.ERROR, win.FACILITY.XAPO, 0x01)

requested audio format unsupported

FXEcho_UUID #

Source
FXEcho_UUID: ^GUID = &win.CLSID{0x5039D740, 0xF736, 0x449A, {0x84, 0xD3, 0xA5, 0x62, 0x02, 0x55, 0x7B, 0x87}}

FXEQ_UUID #

Source
FXEQ_UUID: ^GUID = &win.CLSID{0xF5E01117, 0xD6C4, 0x485A, {0xA3, 0xF5, 0x69, 0x51, 0x96, 0xF3, 0xDB, 0xFA}}

FXMasteringLimiter_UUID #

Source
FXMasteringLimiter_UUID: ^GUID = &win.CLSID{0xC4137916, 0x2BE1, 0x46FD, {0x85, 0x99, 0x44, 0x15, 0x36, 0xF4, 0x98, 0x56}}

FXReverb_UUID #

Source
FXReverb_UUID: ^GUID = &win.CLSID{0x7D9ACA56, 0xCB68, 0x4807, {0xB6, 0x32, 0xB1, 0x37, 0x35, 0x2E, 0x85, 0x96}}

I3DL2_PRESET_AUDITORIUM #

Source
I3DL2_PRESET_AUDITORIUM: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -476, 0.0, 4.32, 0.59, -789, 0.020, -289, 0.030, 100.0, 100.0, 5000.0}

I3DL2_PRESET_BATHROOM #

Source
I3DL2_PRESET_BATHROOM: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -1200, 0.0, 1.49, 0.54, -370, 0.007, 1030, 0.011, 100.0, 60.0, 5000.0}

I3DL2_PRESET_CARPETEDHALLWAY #

Source
I3DL2_PRESET_CARPETEDHALLWAY: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -4000, 0.0, 0.30, 0.10, -1831, 0.002, -1630, 0.030, 100.0, 100.0, 5000.0}

I3DL2_PRESET_CONCERTHALL #

Source
I3DL2_PRESET_CONCERTHALL: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -500, 0.0, 3.92, 0.70, -1230, 0.020, -2, 0.029, 100.0, 100.0, 5000.0}

I3DL2_PRESET_DEFAULT #

Source
I3DL2_PRESET_DEFAULT: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -10000, 0, 0.0, 1.00, 0.50, -10000, 0.020, -10000, 0.040, 100.0, 100.0, 5000.0}

I3DL2_PRESET_FOREST #

Source
I3DL2_PRESET_FOREST: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -3300, 0.0, 1.49, 0.54, -2560, 0.162, -613, 0.088, 79.0, 100.0, 5000.0}

I3DL2_PRESET_GENERIC #

Source
I3DL2_PRESET_GENERIC: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -100, 0.0, 1.49, 0.83, -2602, 0.007, 200, 0.011, 100.0, 100.0, 5000.0}

I3DL2_PRESET_HALLWAY #

Source
I3DL2_PRESET_HALLWAY: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -300, 0.0, 1.49, 0.59, -1219, 0.007, 441, 0.011, 100.0, 100.0, 5000.0}

I3DL2_PRESET_HANGAR #

Source
I3DL2_PRESET_HANGAR: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -1000, 0.0, 10.05, 0.23, -602, 0.020, 198, 0.030, 100.0, 100.0, 5000.0}

I3DL2_PRESET_LARGEHALL #

Source
I3DL2_PRESET_LARGEHALL: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -600, 0.0, 1.80, 0.70, -2000, 0.030, -1400, 0.060, 100.0, 100.0, 5000.0}

I3DL2_PRESET_LARGEROOM #

Source
I3DL2_PRESET_LARGEROOM: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -600, 0.0, 1.50, 0.83, -1600, 0.020, -1000, 0.040, 100.0, 100.0, 5000.0}

I3DL2_PRESET_LIVINGROOM #

Source
I3DL2_PRESET_LIVINGROOM: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -6000, 0.0, 0.50, 0.10, -1376, 0.003, -1104, 0.004, 100.0, 100.0, 5000.0}

I3DL2_PRESET_MEDIUMHALL #

Source
I3DL2_PRESET_MEDIUMHALL: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -600, 0.0, 1.80, 0.70, -1300, 0.015, -800, 0.030, 100.0, 100.0, 5000.0}

I3DL2_PRESET_MEDIUMROOM #

Source
I3DL2_PRESET_MEDIUMROOM: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -600, 0.0, 1.30, 0.83, -1000, 0.010, -200, 0.020, 100.0, 100.0, 5000.0}

I3DL2_PRESET_MOUNTAINS #

Source
I3DL2_PRESET_MOUNTAINS: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -2500, 0.0, 1.49, 0.21, -2780, 0.300, -2014, 0.100, 27.0, 100.0, 5000.0}

I3DL2_PRESET_PADDEDCELL #

Source
I3DL2_PRESET_PADDEDCELL: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -6000, 0.0, 0.17, 0.10, -1204, 0.001, 207, 0.002, 100.0, 100.0, 5000.0}

I3DL2_PRESET_PARKINGLOT #

Source
I3DL2_PRESET_PARKINGLOT: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, 0, 0.0, 1.65, 1.50, -1363, 0.008, -1153, 0.012, 100.0, 100.0, 5000.0}

I3DL2_PRESET_PLAIN #

Source
I3DL2_PRESET_PLAIN: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -2000, 0.0, 1.49, 0.50, -2466, 0.179, -2514, 0.100, 21.0, 100.0, 5000.0}

I3DL2_PRESET_QUARRY #

Source
I3DL2_PRESET_QUARRY: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -1000, 0.0, 1.49, 0.83, -10000, 0.061, 500, 0.025, 100.0, 100.0, 5000.0}

I3DL2_PRESET_SEWERPIPE #

Source
I3DL2_PRESET_SEWERPIPE: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -1000, 0.0, 2.81, 0.14, 429, 0.014, 648, 0.021, 80.0, 60.0, 5000.0}

I3DL2_PRESET_SMALLROOM #

Source
I3DL2_PRESET_SMALLROOM: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -600, 0.0, 1.10, 0.83, -400, 0.005, 500, 0.010, 100.0, 100.0, 5000.0}

I3DL2_PRESET_STONECORRIDOR #

Source
I3DL2_PRESET_STONECORRIDOR: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -237, 0.0, 2.70, 0.79, -1214, 0.013, 395, 0.020, 100.0, 100.0, 5000.0}

I3DL2_PRESET_STONEROOM #

Source
I3DL2_PRESET_STONEROOM: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -300, 0.0, 2.31, 0.64, -711, 0.012, 83, 0.017, 100.0, 100.0, 5000.0}

I3DL2_PRESET_UNDERWATER #

Source
I3DL2_PRESET_UNDERWATER: REVERB_I3DL2_PARAMETERS = REVERB_I3DL2_PARAMETERS{100.0, -1000, -4000, 0.0, 1.49, 0.10, -449, 0.007, 1700, 0.011, 100.0, 100.0, 5000.0}

IXAPO_UUID #

Source
IXAPO_UUID: ^GUID = &win.IID{0xA410B984, 0x9839, 0x4819, {0xA0, 0xBE, 0x28, 0x56, 0xAE, 0x6B, 0x3A, 0xDB}}

IXAPOHrtfParameters_UUID #

Source
IXAPOHrtfParameters_UUID: ^GUID = &win.IID{0x15B3CD66, 0xE9DE, 0x4464, {0xB6, 0xE6, 0x2B, 0xC3, 0xCF, 0x63, 0xD4, 0x55}}

IXAPOParameters_UUID #

Source
IXAPOParameters_UUID: ^GUID = &win.IID{0x26D95C66, 0x80F2, 0x499A, {0xAD, 0x54, 0x5A, 0xE7, 0xF0, 0x1C, 0x6D, 0x98}}

IXAudio2_UUID #

Source
IXAudio2_UUID: ^GUID = &win.IID{0x2B02E3CF, 0x2E0B, 0x4ec3, {0xBE, 0x45, 0x1B, 0x2A, 0x3F, 0xE7, 0x21, 0x0D}}

IXAudio2Extension_UUID #

Source
IXAudio2Extension_UUID: ^GUID = &win.IID{0x84ac29bb, 0xd619, 0x44d2, {0xb1, 0x97, 0xe4, 0xac, 0xf7, 0xdf, 0x3e, 0xd6}}