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

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

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.
But it is sufficient for file processing adjustements.
Changing the preset and parameters may change the returned value.
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)