![]() |
SOUND4 IMPACT FM.CL Library [2.0.0]
|
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) |
Optimized processing with direct in->out.
| 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]
| instance | the processing instance |
| 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]
| instance | the processing instance |
| unsigned int impactfm_GetEstimatedDelay | ( | struct impactfm_CInstance * | instance | ) |
Get the delay (estimated) of current processing algorithm
| 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]
| instance | the processing instance |
| input | audio input buffer (64 byte aligned) or NULL to use internal buffer impactfm_GetBufferIn |
| output | audio output buffer (64 byte aligned) or NULL to use internal buffer impactfm_GetBufferOut |
| 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...], ... ]
| instance | the processing instance |
| input | array of audio input buffers for each input channel (no alignment required) |
| output | array of audio output buffers for each input channel (no alignment required) |