SOUND4 x1.CLOUD Library [1.5.6]
Loading...
Searching...
No Matches
Functions
Direct processing

Optimized processing with direct in->out. More...

Functions

void cloudx1_ProcessAudio (struct cloudx1_CInstance *instance, const float *input, float *output)
 
void cloudx1_ProcessAudio_Planar (struct cloudx1_CInstance *instance, float const *const *input, float *const *output)
 
float * cloudx1_GetBufferIn (struct cloudx1_CInstance *instance)
 
float * cloudx1_GetBufferOut (struct cloudx1_CInstance *instance)
 
unsigned int cloudx1_GetEstimatedDelay (struct cloudx1_CInstance *instance)
 

Detailed Description

Optimized processing with direct in->out.

Function Documentation

◆ cloudx1_GetBufferIn()

float * cloudx1_GetBufferIn ( struct cloudx1_CInstance instance)

Get preallocated aligned buffer for audio input for cloudx1_ProcessAudio

The buffer is a float[256 * cloudx1_GetAudioInputCount() * cloudx1_GetChannelCount()]

So for this process/version : float[256*1*2]

Note
The calling process can allocate the buffer itself, but it must be aligned.
Parameters
instancethe processing instance
Returns
An audio input dedicated buffer.

◆ cloudx1_GetBufferOut()

float * cloudx1_GetBufferOut ( struct cloudx1_CInstance instance)

Get preallocated aligned buffer for audio output for cloudx1_ProcessAudio()

The buffer is a float[256 * cloudx1_GetAudioOutputCount() * cloudx1_GetChannelCount()]

So for this process/version : float[256*1*2]

Note
The calling process can allocate the buffer itself, but it must be aligned.
Parameters
instancethe processing instance
Returns
An audio output dedicated buffer.

◆ cloudx1_GetEstimatedDelay()

unsigned int cloudx1_GetEstimatedDelay ( struct cloudx1_CInstance instance)

Get the delay (estimated) of current processing algorithm

Remarks
This is not very accurate, it does not take into account group delays.
But it is sufficient for file processing adjustements.
Changing the preset and parameters may change the returned value.
Returns
Estimated delay in frames

◆ cloudx1_ProcessAudio()

void cloudx1_ProcessAudio ( struct cloudx1_CInstance instance,
const float *  input,
float *  output 
)

Process an audio chunk

A chunk contains cloudx1_GetProcessChunkFrames frames, set at init by frames_per_chunk in cloudx1_InitProcess3

Input has cloudx1_GetAudioInputCount() * cloudx1_GetChannelCount() channels

Ouput has cloudx1_GetAudioOutputCount() * cloudx1_GetChannelCount() channels

Each sample is a native 32-bit floating-point number where 1.0 is full scale. Channels are interlaced, so the buffers are [L0,R0,L1,R1,...,Ln,Rn] (L=Left, R=Right)

In case of multiple audio input/output, buffer is [aL0,aR0,bL0,bR0,...,aLn,aRn,bLn,bRn]

Warning
Buffers must be 64-byte aligned
Note
With 64 frames per chunk and 2 channels and 1 audio input, input buffer size is 64*1*2*4=512 bytes
Parameters
instancethe processing instance
inputaudio input buffer (64 byte aligned) or NULL to use internal buffer cloudx1_GetBufferIn
outputaudio output buffer (64 byte aligned) or NULL to use internal buffer cloudx1_GetBufferOut

◆ cloudx1_ProcessAudio_Planar()

void cloudx1_ProcessAudio_Planar ( struct cloudx1_CInstance instance,
float const *const *  input,
float *const *  output 
)

Process an audio chunk of planar audio

A chunk contains cloudx1_GetProcessChunkFrames frames, set at init by frames_per_chunk in cloudx1_InitProcess3

Input has cloudx1_GetAudioInputCount() * cloudx1_GetChannelCount() channels

Ouput has cloudx1_GetAudioOutputCount() * cloudx1_GetChannelCount() channels

Each sample is a native 32-bit floating-point number where 1.0 is full scale. Channels are NOT interlaced, so the buffers are arrays of planar audio : [ [L0,L1,...,Ln] , [R0,R1,...,Rn] ] (L=Left, R=Right)

In case of multiple audio input/output, buffer are [ [aL...], [aR...], [bL...], [bR...], ... ]

Parameters
instancethe processing instance
inputarray of audio input buffers for each input channel (no alignment required)
outputarray of audio output buffers for each input channel (no alignment required)