SOUND4 BIGVOICE.CL Library [1.1.2]
Loading...
Searching...
No Matches
Functions
Direct processing

Functions

void bigvoice_ProcessAudio (struct bigvoice_CInstance *instance, const float *input, float *output)
 
void bigvoice_ProcessAudio_Planar (struct bigvoice_CInstance *instance, float const *const *input, float *const *output)
 
float * bigvoice_GetBufferIn (struct bigvoice_CInstance *instance)
 
float * bigvoice_GetBufferOut (struct bigvoice_CInstance *instance)
 
unsigned int bigvoice_GetEstimatedDelay (struct bigvoice_CInstance *instance)
 

Detailed Description

Optimized processing with direct in->out.

Function Documentation

◆ bigvoice_GetBufferIn()

float * bigvoice_GetBufferIn ( struct bigvoice_CInstance *  instance)

Get preallocated aligned buffer for audio input for bigvoice_ProcessAudio()

The buffer is a float[256 * bigvoice_GetAudioInputCount() * bigvoice_GetChannelCount()]

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

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

◆ bigvoice_GetBufferOut()

float * bigvoice_GetBufferOut ( struct bigvoice_CInstance *  instance)

Get preallocated aligned buffer for audio output for bigvoice_ProcessAudio()

The buffer is a float[256 * bigvoice_GetAudioOutputCount() * bigvoice_GetChannelCount()]

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

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

◆ bigvoice_GetEstimatedDelay()

unsigned int bigvoice_GetEstimatedDelay ( struct bigvoice_CInstance *  instance)

Get the delay (estimated) of current processing algorithm

Remarks
This is not very accurate, it does not take into account group delays.
Returns
Estimated delay in frames

◆ bigvoice_ProcessAudio()

void bigvoice_ProcessAudio ( struct bigvoice_CInstance *  instance,
const float *  input,
float *  output 
)

Process an audio chunk

A chunk contains bigvoice_GetProcessChunkFrames frames, set at init by frames_per_chunk in bigvoice_InitProcess3

Input has bigvoice_GetAudioInputCount() * bigvoice_GetChannelCount() channels

Ouput has bigvoice_GetAudioOutputCount() * bigvoice_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 bigvoice_GetBufferIn
outputaudio output buffer (64 byte aligned) or NULL to use internal buffer bigvoice_GetBufferOut

◆ bigvoice_ProcessAudio_Planar()

void bigvoice_ProcessAudio_Planar ( struct bigvoice_CInstance *  instance,
float const *const *  input,
float *const *  output 
)

Process an audio chunk of planar audio

A chunk contains bigvoice_GetProcessChunkFrames frames, set at init by frames_per_chunk in bigvoice_InitProcess3

Input has bigvoice_GetAudioInputCount() * bigvoice_GetChannelCount() channels

Ouput has bigvoice_GetAudioOutputCount() * bigvoice_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)