Soloud

soloud.Soloud (extern class)

Soloud core class.

Static Members

LINC: Int

create(): Soloud
Returns
Soloud

createFilterFunction(id: Int, createFunc: cpp.Callable<Function>, destroyFunc: cpp.Callable<Function>, filterFunc: cpp.Callable<Function>): Filter
Name Type
id Int
createFunc cpp.Callable
destroyFunc cpp.Callable
filterFunc cpp.Callable
Returns
Filter

destroyFilterFunction(id: Int): Void
Name Type
id Int

Instance Members

destroy(): Void

init(?flags: SoloudFlags = 0, ?backend: SoloudBackends = AUTO, ?samplerate: cpp.UInt32 = 0, ?bufferSize: cpp.UInt32 = 0, ?channels: cpp.UInt32 = 2): Result

Initialize SoLoud. Must be called before SoLoud can be used.

Name Type Default
flags SoloudFlags 0
backend SoloudBackends AUTO
samplerate cpp.UInt32 0
bufferSize cpp.UInt32 0
channels cpp.UInt32 2
Returns
Result

deinit(): Void

Deinitialize SoLoud. Must be called before shutting down.


getVersion(): cpp.UInt32

Query SoLoud version number (should equal to SOLOUD_VERSION macro)

Returns
cpp.UInt32

getErrorString(aErrorCode: SoloudErrors): cpp.ConstCharStar

Translate error number to an asciiz string

Name Type
aErrorCode SoloudErrors
Returns
cpp.ConstCharStar

getBackendId(): SoloudBackends

Returns current backend ID (BACKENDS enum)

Returns
SoloudBackends

getBackendString(): cpp.ConstCharStar

Returns current backend string. May be NULL.

Returns
cpp.ConstCharStar

getBackendChannels(): cpp.UInt32

Returns current backend channel count (1 mono, 2 stereo, etc)

Returns
cpp.UInt32

getBackendSamplerate(): cpp.UInt32

Returns current backend sample rate

Returns
cpp.UInt32

getBackendBufferSize(): cpp.UInt32

Returns current backend buffer size

Returns
cpp.UInt32

setSpeakerPosition(aChannel: cpp.UInt32, aX: cpp.Float32, aY: cpp.Float32, aZ: cpp.Float32): Result

Set speaker position in 3d space

Name Type
aChannel cpp.UInt32
aX cpp.Float32
aY cpp.Float32
aZ cpp.Float32
Returns
Result

getSpeakerPosition(aChannel: cpp.UInt32, aX: cpp.Reference, aY: cpp.Reference, aZ: cpp.Reference): Result

Get speaker position in 3d space

Name Type
aChannel cpp.UInt32
aX cpp.Reference
aY cpp.Reference
aZ cpp.Reference
Returns
Result

play(aSound: AudioSource, ?aVolume: cpp.Float32 = -1.0, ?aPan: cpp.Float32 = 0.0, ?aPaused: Bool = false, ?aBus: cpp.UInt32 = 0): Handle

Start playing a sound. Returns voice handle, which can be ignored or used to alter the playing sound's parameters. Negative volume means to use default.

Name Type Default
aSound AudioSource
aVolume cpp.Float32 -1.0
aPan cpp.Float32 0.0
aPaused Bool false
aBus cpp.UInt32 0
Returns
Handle

playClocked(aSoundTime: Time, aSound: AudioSource, ?aVolume: cpp.Float32 = -1.0, ?aPan: cpp.Float32 = 0.0, ?aBus: cpp.UInt32 = 0): Handle

Start playing a sound delayed in relation to other sounds called via this function. Negative volume means to use default.

Name Type Default
aSoundTime Time
aSound AudioSource
aVolume cpp.Float32 -1.0
aPan cpp.Float32 0.0
aBus cpp.UInt32 0
Returns
Handle

play3d(aSound: AudioSource, aPosX: cpp.Float32, aPosY: cpp.Float32, aPosZ: cpp.Float32, ?aVelX: cpp.Float32 = 0.0, ?aVelY: cpp.Float32 = 0.0, ?aVelZ: cpp.Float32 = 0.0, ?aVolume: cpp.Float32 = 1.0, ?aPaused: Bool = false, ?aBus: cpp.UInt32 = 0): Handle

Start playing a 3d audio source

Name Type Default
aSound AudioSource
aPosX cpp.Float32
aPosY cpp.Float32
aPosZ cpp.Float32
aVelX cpp.Float32 0.0
aVelY cpp.Float32 0.0
aVelZ cpp.Float32 0.0
aVolume cpp.Float32 1.0
aPaused Bool false
aBus cpp.UInt32 0
Returns
Handle

play3dClocked(aSoundTime: Time, aSound: AudioSource, aPosX: cpp.Float32, aPosY: cpp.Float32, aPosZ: cpp.Float32, ?aVelX: cpp.Float32 = 0.0, ?aVelY: cpp.Float32 = 0.0, ?aVelZ: cpp.Float32 = 0.0, ?aVolume: cpp.Float32 = 1.0, ?aBus: cpp.UInt32 = 0): Handle

Start playing a 3d audio source, delayed in relation to other sounds called via this function.

Name Type Default
aSoundTime Time
aSound AudioSource
aPosX cpp.Float32
aPosY cpp.Float32
aPosZ cpp.Float32
aVelX cpp.Float32 0.0
aVelY cpp.Float32 0.0
aVelZ cpp.Float32 0.0
aVolume cpp.Float32 1.0
aBus cpp.UInt32 0
Returns
Handle

playBackground(aSound: AudioSource, ?aVolume: cpp.Float32 = -1.0, ?aPaused: Bool = false, ?aBus: cpp.UInt32 = 0): Handle

Start playing a sound without any panning. It will be played at full volume.

Name Type Default
aSound AudioSource
aVolume cpp.Float32 -1.0
aPaused Bool false
aBus cpp.UInt32 0
Returns
Handle

seek(aVoiceHandle: Handle, aSeconds: Time): Result

Seek the audio stream to certain point in time. Some streams can't seek backwards. Relative play speed affects time.

Name Type
aVoiceHandle Handle
aSeconds Time
Returns
Result

stop(aVoiceHandle: Handle): Void

Stop the sound.

Name Type
aVoiceHandle Handle

stopAll(): Void

Stop all voices.


stopAudioSource(aSound: AudioSource): Void

Stop all voices that play this sound source

Name Type
aSound AudioSource

countAudioSource(aSound: AudioSource): cpp.Int32

Count voices that play this audio source

Name Type
aSound AudioSource
Returns
cpp.Int32

setFilterParameter(aVoiceHandle: Handle, aFilterId: cpp.UInt32, aAttributeId: cpp.UInt32, aValue: cpp.Float32): Void

Set a live filter parameter. Use 0 for the global filters.

Name Type
aVoiceHandle Handle
aFilterId cpp.UInt32
aAttributeId cpp.UInt32
aValue cpp.Float32

getFilterParameter(aVoiceHandle: Handle, aFilterId: cpp.UInt32, aAttributeId: cpp.UInt32): cpp.Float32

Get a live filter parameter. Use 0 for the global filters.

Name Type
aVoiceHandle Handle
aFilterId cpp.UInt32
aAttributeId cpp.UInt32
Returns
cpp.Float32

fadeFilterParameter(aVoiceHandle: Handle, aFilterId: cpp.UInt32, aAttributeId: cpp.UInt32, aTo: cpp.Float32, aTime: Time): Void

Fade a live filter parameter. Use 0 for the global filters.

Name Type
aVoiceHandle Handle
aFilterId cpp.UInt32
aAttributeId cpp.UInt32
aTo cpp.Float32
aTime Time

oscillateFilterParameter(aVoiceHandle: Handle, aFilterId: cpp.UInt32, aAttributeId: cpp.UInt32, aFrom: cpp.Float32, aTo: cpp.Float32, aTime: Time): Void

Oscillate a live filter parameter. Use 0 for the global filters.

Name Type
aVoiceHandle Handle
aFilterId cpp.UInt32
aAttributeId cpp.UInt32
aFrom cpp.Float32
aTo cpp.Float32
aTime Time

getStreamTime(aVoiceHandle: Handle): Time

Get current play time, in seconds.

Name Type
aVoiceHandle Handle
Returns
Time

getStreamPosition(aVoiceHandle: Handle): Time

Get current sample position, in seconds.

Name Type
aVoiceHandle Handle
Returns
Time

getPause(aVoiceHandle: Handle): Bool

Get current pause state.

Name Type
aVoiceHandle Handle
Returns
Bool

getVolume(aVoiceHandle: Handle): cpp.Float32

Get current volume.

Name Type
aVoiceHandle Handle
Returns
cpp.Float32

getOverallVolume(aVoiceHandle: Handle): cpp.Float32

Get current overall volume (set volume * 3d volume)

Name Type
aVoiceHandle Handle
Returns
cpp.Float32

getPan(aVoiceHandle: Handle): cpp.Float32

Get current pan.

Name Type
aVoiceHandle Handle
Returns
cpp.Float32

getSamplerate(aVoiceHandle: Handle): cpp.Float32

Get current sample rate.

Name Type
aVoiceHandle Handle
Returns
cpp.Float32

getProtectVoice(aVoiceHandle: Handle): Bool

Get current voice protection state.

Name Type
aVoiceHandle Handle
Returns
Bool

getActiveVoiceCount(): cpp.UInt32

Get the current number of busy voices.

Returns
cpp.UInt32

getVoiceCount(): cpp.UInt32

Get the current number of voices in SoLoud

Returns
cpp.UInt32

isValidVoiceHandle(aVoiceHandle: Handle): Bool

Check if the handle is still valid, or if the sound has stopped.

Name Type
aVoiceHandle Handle
Returns
Bool

getRelativePlaySpeed(aVoiceHandle: Handle): cpp.Float32

Get current relative play speed.

Name Type
aVoiceHandle Handle
Returns
cpp.Float32

getPostClipScaler(): cpp.Float32

Get current post-clip scaler value.

Returns
cpp.Float32

getGlobalVolume(): cpp.Float32

Get current global volume

Returns
cpp.Float32

getMaxActiveVoiceCount(): cpp.UInt32

Get current maximum active voice setting

Returns
cpp.UInt32

getLooping(aVoiceHandle: Handle): Bool

Query whether a voice is set to loop.

Name Type
aVoiceHandle Handle
Returns
Bool

getLoopPoint(aVoiceHandle: Handle): Time

Get voice loop point value

Name Type
aVoiceHandle Handle
Returns
Time

setLoopPoint(aVoiceHandle: Handle, aLoopPoint: Time): Void

Set voice loop point value

Name Type
aVoiceHandle Handle
aLoopPoint Time

setLooping(aVoiceHandle: Handle, aLooping: Bool): Void

Set voice's loop state

Name Type
aVoiceHandle Handle
aLooping Bool

setMaxActiveVoiceCount(aVoiceCount: cpp.UInt32): Result

Set current maximum active voice setting

Name Type
aVoiceCount cpp.UInt32
Returns
Result

setInaudibleBehavior(aVoiceHandle: Handle, aMustTick: Bool, aKill: Bool): Void

Set behavior for inaudible sounds

Name Type
aVoiceHandle Handle
aMustTick Bool
aKill Bool

setGlobalVolume(aVolume: cpp.Float32): Void

Set the global volume

Name Type
aVolume cpp.Float32

setPostClipScaler(aScaler: cpp.Float32): Void

Set the post clip scaler value

Name Type
aScaler cpp.Float32

setPause(aVoiceHandle: Handle, aPause: Bool): Void

Set the pause state

Name Type
aVoiceHandle Handle
aPause Bool

setPauseAll(aPause: Bool): Void

Pause all voices

Name Type
aPause Bool

setRelativePlaySpeed(aVoiceHandle: Handle, aSpeed: cpp.Float32): Result

Set the relative play speed

Name Type
aVoiceHandle Handle
aSpeed cpp.Float32
Returns
Result

setProtectVoice(aVoiceHandle: Handle, aProtect: Bool): Void

Set the voice protection state

Name Type
aVoiceHandle Handle
aProtect Bool

setSamplerate(aVoiceHandle: Handle, aSamplerate: cpp.Float32): Void

Set the sample rate

Name Type
aVoiceHandle Handle
aSamplerate cpp.Float32

setPan(aVoiceHandle: Handle, aPan: cpp.Float32): Void

Set panning value; -1 is left, 0 is center, 1 is right

Name Type
aVoiceHandle Handle
aPan cpp.Float32

setPanAbsolute(aVoiceHandle: Handle, aLVolume: cpp.Float32, aRVolume: cpp.Float32, ?aLBVolume: cpp.Float32 = 0, ?aRBVolume: cpp.Float32 = 0, ?aCVolume: cpp.Float32 = 0, ?aSVolume: cpp.Float32 = 0): Void

Set absolute left/right volumes

Name Type Default
aVoiceHandle Handle
aLVolume cpp.Float32
aRVolume cpp.Float32
aLBVolume cpp.Float32 0
aRBVolume cpp.Float32 0
aCVolume cpp.Float32 0
aSVolume cpp.Float32 0

setVolume(aVoiceHandle: Handle, aVolume: cpp.Float32): Void

Set overall volume

Name Type
aVoiceHandle Handle
aVolume cpp.Float32

setDelaySamples(aVoiceHandle: Handle, aSamples: cpp.UInt32): Void

Set delay, in samples, before starting to play samples. Calling this on a live sound will cause glitches.

Name Type
aVoiceHandle Handle
aSamples cpp.UInt32

fadeVolume(aVoiceHandle: Handle, aTo: cpp.Float32, aTime: Time): Void

Set up volume fader

Name Type
aVoiceHandle Handle
aTo cpp.Float32
aTime Time

fadePan(aVoiceHandle: Handle, aTo: cpp.Float32, aTime: Time): Void

Set up panning fader

Name Type
aVoiceHandle Handle
aTo cpp.Float32
aTime Time

fadeRelativePlaySpeed(aVoiceHandle: Handle, aTo: cpp.Float32, aTime: Time): Void

Set up relative play speed fader

Name Type
aVoiceHandle Handle
aTo cpp.Float32
aTime Time

fadeGlobalVolume(aTo: cpp.Float32, aTime: Time): Void

Set up global volume fader

Name Type
aTo cpp.Float32
aTime Time

schedulePause(aVoiceHandle: Handle, aTime: Time): Void

Schedule a stream to pause

Name Type
aVoiceHandle Handle
aTime Time

scheduleStop(aVoiceHandle: Handle, aTime: Time): Void

Schedule a stream to stop

Name Type
aVoiceHandle Handle
aTime Time

oscillateVolume(aVoiceHandle: Handle, aFrom: cpp.Float32, aTo: cpp.Float32, aTime: Time): Void

Set up volume oscillator

Name Type
aVoiceHandle Handle
aFrom cpp.Float32
aTo cpp.Float32
aTime Time

oscillatePan(aVoiceHandle: Handle, aFrom: cpp.Float32, aTo: cpp.Float32, aTime: Time): Void

Set up panning oscillator

Name Type
aVoiceHandle Handle
aFrom cpp.Float32
aTo cpp.Float32
aTime Time

oscillateRelativePlaySpeed(aVoiceHandle: Handle, aFrom: cpp.Float32, aTo: cpp.Float32, aTime: Time): Void

Set up relative play speed oscillator

Name Type
aVoiceHandle Handle
aFrom cpp.Float32
aTo cpp.Float32
aTime Time

oscillateGlobalVolume(aFrom: cpp.Float32, aTo: cpp.Float32, aTime: Time): Void

Set up global volume oscillator

Name Type
aFrom cpp.Float32
aTo cpp.Float32
aTime Time

setGlobalFilter(aFilterId: cpp.UInt32, aFilter: Filter): Void

Set global filters. Set to NULL to clear the filter.

Name Type
aFilterId cpp.UInt32
aFilter Filter

setVisualizationEnable(aEnable: Bool): Void

Enable or disable visualization data gathering

Name Type
aEnable Bool

Calculate and get 256 floats of FFT data for visualization. Visualization has to be enabled before use.

Returns
cpp.Pointer<cpp.Float32>

Get 256 floats of wave data for visualization. Visualization has to be enabled before use.

Returns
cpp.Pointer<cpp.Float32>

getApproximateVolume(aChannel: cpp.UInt32): cpp.Float32

Get approximate output volume for a channel for visualization. Visualization has to be enabled before use.

Name Type
aChannel cpp.UInt32
Returns
cpp.Float32

getLoopCount(aVoiceHandle: Handle): cpp.UInt32

Get current loop count. Returns 0 if is:Handle not valid. (All audio sources may not update loop count)

Name Type
aVoiceHandle Handle
Returns
cpp.UInt32

getInfo(aVoiceHandle: Handle, aInfoKey: cpp.UInt32): cpp.Float32

Get audiosource-specific information from a voice.

Name Type
aVoiceHandle Handle
aInfoKey cpp.UInt32
Returns
cpp.Float32

createVoiceGroup(): Handle

Create a voice group. Returns 0 if unable (out of voice groups / out of memory)

Returns
Handle

destroyVoiceGroup(aVoiceGroupHandle: Handle): Result

Destroy a voice group.

Name Type
aVoiceGroupHandle Handle
Returns
Result

addVoiceToGroup(aVoiceGroupHandle: Handle, aVoiceHandle: Handle): Result

Add a voice to:Handle a voice group

Name Type
aVoiceGroupHandle Handle
aVoiceHandle Handle
Returns
Result

isVoiceGroup(aVoiceGroupHandle: Handle): Bool

Is this a:Handle valid voice group?

Name Type
aVoiceGroupHandle Handle
Returns
Bool

isVoiceGroupEmpty(aVoiceGroupHandle: Handle): Bool

Is this voice group empty?

Name Type
aVoiceGroupHandle Handle
Returns
Bool

update3dAudio(): Void

Perform 3d audio parameter update


set3dSoundSpeed(aSpeed: cpp.Float32): Result

Set the speed of sound constant for doppler

Name Type
aSpeed cpp.Float32
Returns
Result

get3dSoundSpeed(): cpp.Float32

Get the current speed of sound constant for doppler

Returns
cpp.Float32

set3dListenerParameters(aPosX: cpp.Float32, aPosY: cpp.Float32, aPosZ: cpp.Float32, aAtX: cpp.Float32, aAtY: cpp.Float32, aAtZ: cpp.Float32, aUpX: cpp.Float32, aUpY: cpp.Float32, aUpZ: cpp.Float32, ?aVelocityX: cpp.Float32 = 0.0, ?aVelocityY: cpp.Float32 = 0.0, ?aVelocityZ: cpp.Float32 = 0.0): Void

Set 3d listener parameters

Name Type Default
aPosX cpp.Float32
aPosY cpp.Float32
aPosZ cpp.Float32
aAtX cpp.Float32
aAtY cpp.Float32
aAtZ cpp.Float32
aUpX cpp.Float32
aUpY cpp.Float32
aUpZ cpp.Float32
aVelocityX cpp.Float32 0.0
aVelocityY cpp.Float32 0.0
aVelocityZ cpp.Float32 0.0

set3dListenerPosition(aPosX: cpp.Float32, aPosY: cpp.Float32, aPosZ: cpp.Float32): Void

Set 3d listener position

Name Type
aPosX cpp.Float32
aPosY cpp.Float32
aPosZ cpp.Float32

set3dListenerAt(aAtX: cpp.Float32, aAtY: cpp.Float32, aAtZ: cpp.Float32): Void

Set 3d listener "at" vector

Name Type
aAtX cpp.Float32
aAtY cpp.Float32
aAtZ cpp.Float32

set3dListenerUp(aUpX: cpp.Float32, aUpY: cpp.Float32, aUpZ: cpp.Float32): Void

set 3d listener "up" vector

Name Type
aUpX cpp.Float32
aUpY cpp.Float32
aUpZ cpp.Float32

set3dListenerVelocity(aVelocityX: cpp.Float32, aVelocityY: cpp.Float32, aVelocityZ: cpp.Float32): Void

Set 3d listener velocity

Name Type
aVelocityX cpp.Float32
aVelocityY cpp.Float32
aVelocityZ cpp.Float32

set3dSourceParameters(aVoiceHandle: Handle, aPosX: cpp.Float32, aPosY: cpp.Float32, aPosZ: cpp.Float32, ?aVelocityX: cpp.Float32 = 0.0, ?aVelocityY: cpp.Float32 = 0.0, ?aVelocityZ: cpp.Float32 = 0.0): Void

Set 3d audio source parameters

Name Type Default
aVoiceHandle Handle
aPosX cpp.Float32
aPosY cpp.Float32
aPosZ cpp.Float32
aVelocityX cpp.Float32 0.0
aVelocityY cpp.Float32 0.0
aVelocityZ cpp.Float32 0.0

set3dSourcePosition(aVoiceHandle: Handle, aPosX: cpp.Float32, aPosY: cpp.Float32, aPosZ: cpp.Float32): Void

Set 3d audio source position

Name Type
aVoiceHandle Handle
aPosX cpp.Float32
aPosY cpp.Float32
aPosZ cpp.Float32

set3dSourceVelocity(aVoiceHandle: Handle, aVelocityX: cpp.Float32, aVelocityY: cpp.Float32, aVelocityZ: cpp.Float32): Void

Set 3d audio source velocity

Name Type
aVoiceHandle Handle
aVelocityX cpp.Float32
aVelocityY cpp.Float32
aVelocityZ cpp.Float32

set3dSourceMinMaxDistance(aVoiceHandle: Handle, aMinDistance: cpp.Float32, aMaxDistance: cpp.Float32): Void

Set 3d audio source min/max distance (distance < min means max volume)

Name Type
aVoiceHandle Handle
aMinDistance cpp.Float32
aMaxDistance cpp.Float32

set3dSourceAttenuation(aVoiceHandle: Handle, aAttenuationModel: cpp.UInt32, aAttenuationRolloffFactor: cpp.Float32): Void

Set 3d audio source attenuation parameters

Name Type
aVoiceHandle Handle
aAttenuationModel cpp.UInt32
aAttenuationRolloffFactor cpp.Float32

set3dSourceDopplerFactor(aVoiceHandle: Handle, aDopplerFactor: cpp.Float32): Void

Set 3d audio source doppler factor to reduce or enhance doppler effect. Default = 1.0

Name Type
aVoiceHandle Handle
aDopplerFactor cpp.Float32

mix(aBuffer: cpp.Pointer<cpp.Float32>, aSamples: cpp.UInt32): Void

Returns mixed samples:cpp.Float32 in buffer. Called by the back-end, or user with null driver.

Name Type
aBuffer cpp.Pointer<cpp.Float32>
aSamples cpp.UInt32

mixSigned16(aBuffer: cpp.Pointer<cpp.UInt16>, aSamples: cpp.UInt32): Void

Returns mixed 16-bit signed integer samples in buffer. Called by the back-end, or user with null driver.

Name Type
aBuffer cpp.Pointer<cpp.UInt16>
aSamples cpp.UInt32

Metadata

Name Parameters
:include "linc_soloud.h"