SOUND4 IMPACT FM.CL Library [2.0.0]
Loading...
Searching...
No Matches
Functions
Direct processing

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

Functions

void impactfm_ProcessAudio (struct impactfm_CInstance *instance, const float *input, float *output)
 
void impactfm_ProcessAudio_Planar (struct impactfm_CInstance *instance, float const *const *input, float *const *output)
 
float * impactfm_GetBufferIn (struct impactfm_CInstance *instance)
 
float * impactfm_GetBufferOut (struct impactfm_CInstance *instance)
 
unsigned int impactfm_GetEstimatedDelay (struct impactfm_CInstance *instance)
 

Detailed Description

Optimized processing with direct in->out.

Function Documentation

◆ impactfm_GetBufferIn()

float * impactfm_GetBufferIn ( struct impactfm_CInstance *  instance)

Get preallocated aligned buffer for audio input for impactfm_ProcessAudio

The buffer is a float[256 * impactfm_GetAudioInputCount() * impactfm_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.

◆ impactfm_GetBufferOut()

float * impactfm_GetBufferOut ( struct impactfm_CInstance *  instance)

Get preallocated aligned buffer for audio output for impactfm_ProcessAudio()

The buffer is a float[256 * impactfm_GetAudioOutputCount() * impactfm_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.

◆ impactfm_GetEstimatedDelay()

unsigned int impactfm_GetEstimatedDelay ( struct impactfm_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

◆ impactfm_ProcessAudio()

void impactfm_ProcessAudio ( struct impactfm_CInstance *  instance,
const float *  input,
float *  output 
)

Process an audio chunk

A chunk contains impactfm_GetProcessChunkFrames frames, set at init by frames_per_chunk in impactfm_InitProcess3

Input has impactfm_GetAudioInputCount() * impactfm_GetChannelCount() channels

Ouput has impactfm_GetAudioOutputCount() * impactfm_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 impactfm_GetBufferIn
outputaudio output buffer (64 byte aligned) or NULL to use internal buffer impactfm_GetBufferOut

◆ impactfm_ProcessAudio_Planar()

void impactfm_ProcessAudio_Planar ( struct impactfm_CInstance *  instance,
float const *const *  input,
float *const *  output 
)

Process an audio chunk of planar audio

A chunk contains impactfm_GetProcessChunkFrames frames, set at init by frames_per_chunk in impactfm_InitProcess3

Input has impactfm_GetAudioInputCount() * impactfm_GetChannelCount() channels

Ouput has impactfm_GetAudioOutputCount() * impactfm_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)