SOUND4 IMPACT.CL Library [1.3.15]
Loading...
Searching...
No Matches
Classes | Enumerations | Functions
Audio convert helpers

Helpers to convert audio. More...

Classes

struct  impact_CAudioConverter
 

Enumerations

enum  impact_ConverterTargetMode {
  ConverterTargetMode_AsInput = 0 , ConverterTargetMode_Mono , ConverterTargetMode_Stereo , ConverterTargetMode_StereoToMono ,
  ConverterTargetMode_MonoToStereo
}
 

Functions

void impact_AudioConvertFrom (const uint8_t *payload, float *output, size_t nSpl, enum impact_SampleFormat fmt)
 
void impact_AudioConvertTo (const float *input, uint8_t *payload, size_t nSpl, enum impact_SampleFormat fmt)
 
void impact_StereoToMono (const float *input, float *output, size_t nFrame)
 
void impact_MonoToStereo (const float *input, float *output, size_t nFrame)
 
void impact_StereoToMono_Planar (const float *inputL, const float *inputR, float *output, size_t nFrame)
 
void impact_MonoToStereo_Planar (const float *input, float *outputL, float *outputR, size_t nFrame)
 
void impact_AudioMonoFromLiveStereo (const uint8_t *payload, float *output)
 
void impact_AudioMonoToLiveStereo (const float *input, uint8_t *payload)
 
struct impact_CAudioConverterimpact_GetAudioConverter (enum impact_SampleFormat fmt, size_t nFrame, size_t payl_ch, size_t payl_ch_offset, enum impact_ConverterTargetMode target_mode)
 
void impact_FreeAudioConverter (struct impact_CAudioConverter *converter)
 
void impact_AudioConverter_From (struct impact_CAudioConverter *converter, const uint8_t *payload, float *output)
 
void impact_AudioConverter_To (struct impact_CAudioConverter *converter, const float *input, uint8_t *payload)
 

Detailed Description

Helpers to convert audio in an optimized way

Enumeration Type Documentation

◆ impact_ConverterTargetMode

Kind of process-side samples for CAudioConverter

Enumerator
ConverterTargetMode_AsInput 

Same channels as input (no extract/insert)

ConverterTargetMode_Mono 

Mono process (using mono extract/payload)

ConverterTargetMode_Stereo 

Stereo process (using stereo extract/payload)

ConverterTargetMode_StereoToMono 

Mono process, using stereo extract/payload (converts stereo to mono)

ConverterTargetMode_MonoToStereo 

Stereo process, using mono extract/payload (converts mono to stereo)

Definition at line 1083 of file sound4.impact.cl.h.

Function Documentation

◆ impact_AudioConverter_From()

void impact_AudioConverter_From ( struct impact_CAudioConverter converter,
const uint8_t *  payload,
float *  output 
)

Convert the payload to floating-point array, using a predefined converter.

Warning
Output buffer must be 64-byte aligned
Parameters
convertera converter created with impact_GetAudioConverter
payloadthe binary raw audio buffer
outputaudio output buffer (64 byte aligned)

◆ impact_AudioConverter_To()

void impact_AudioConverter_To ( struct impact_CAudioConverter converter,
const float *  input,
uint8_t *  payload 
)

Convert floating-point array to payload, using a predefined converter.

Warning
Input buffer must be 64-byte aligned
Parameters
convertera converter created with impact_GetAudioConverter
inputaudio input buffer (64 byte aligned)
payloadthe binary raw audio buffer

◆ impact_AudioConvertFrom()

void impact_AudioConvertFrom ( const uint8_t *  payload,
float *  output,
size_t  nSpl,
enum impact_SampleFormat  fmt 
)

Convert the payload to floating-point array

Warning
Output buffer must be 64-byte aligned
Parameters
payloadthe binary raw audio buffer
outputaudio output buffer (64 byte aligned)
nSplthe number of samples (not frames)
fmtthe format of the payload

◆ impact_AudioConvertTo()

void impact_AudioConvertTo ( const float *  input,
uint8_t *  payload,
size_t  nSpl,
enum impact_SampleFormat  fmt 
)

Convert floating-point array to payload

Warning
Input buffer must be 64-byte aligned
Parameters
inputaudio input buffer (64 byte aligned)
payloadthe binary raw audio buffer
nSplthe number of samples (not frames)
fmtthe format of the payload

◆ impact_AudioMonoFromLiveStereo()

void impact_AudioMonoFromLiveStereo ( const uint8_t *  payload,
float *  output 
)

Convert Livewire Livestereo payload to floating-point Mono (12 samples)

Parameters
payloadLivewire Live Stereo raw buffer
outputaudio output mono buffer (64 byte aligned)

◆ impact_AudioMonoToLiveStereo()

void impact_AudioMonoToLiveStereo ( const float *  input,
uint8_t *  payload 
)

Convert floating-point Mono (12 samples) to Livewire Livestereo payload

Parameters
inputaudio input mono buffer (64 byte aligned)
payloadLivewire Live Stereo raw buffer

◆ impact_FreeAudioConverter()

void impact_FreeAudioConverter ( struct impact_CAudioConverter converter)

Free the audio converter created with impact_GetAudioConverter.

◆ impact_GetAudioConverter()

struct impact_CAudioConverter * impact_GetAudioConverter ( enum impact_SampleFormat  fmt,
size_t  nFrame,
size_t  payl_ch,
size_t  payl_ch_offset,
enum impact_ConverterTargetMode  target_mode 
)

Prepare an audio converter for extract/insert and convert.

This helps to extract/insert a subset of channels from/to the payload, and convert it to floating-point format.

The floating-point channels count depends on target_mode. It can be the same as payload, or fixed to mono or stereo.

It can be used with impact_AudioConverter_From and impact_AudioConverter_To.

The converter will have to be freed with impact_FreeAudioConverter.

Parameters
fmtthe format of the payload
nFramethe number of frames per packet
payl_chthe number of channels in the payload
payl_ch_offsetthe offset of the first channel to extract/insert in the payload [must be <= (payload_channels-output_channels)]
target_modedefines the number of channels in process, and the number of channels to extract from payload for mono<->stereo conversion
Returns
The converter or null if not possible
Note
The converter is not multithread-safe, it uses internal cache buffers.

◆ impact_MonoToStereo()

void impact_MonoToStereo ( const float *  input,
float *  output,
size_t  nFrame 
)

Convert floating-point Mono to Stereo (L,L)

Warning
Buffers must be 64-byte aligned
Parameters
inputaudio input mono buffer (64 byte aligned)
outputaudio output stereo buffer (64 byte aligned)
nFramethe number of frames

◆ impact_MonoToStereo_Planar()

void impact_MonoToStereo_Planar ( const float *  input,
float *  outputL,
float *  outputR,
size_t  nFrame 
)

Convert floating-point Mono to Stereo (planar) (L,L)

Warning
Buffers must be 64-byte aligned
Parameters
inputaudio input mono buffer (64 byte aligned)
outputLaudio output left buffer (64 byte aligned)
outputRaudio output right buffer (64 byte aligned)
nFramethe number of frames

◆ impact_StereoToMono()

void impact_StereoToMono ( const float *  input,
float *  output,
size_t  nFrame 
)

Convert floating-point Stereo to Mono (L+R)/2

Warning
Buffers must be 64-byte aligned
Parameters
inputaudio input stereo buffer (64 byte aligned)
outputaudio output mono buffer (64 byte aligned)
nFramethe number of frames

◆ impact_StereoToMono_Planar()

void impact_StereoToMono_Planar ( const float *  inputL,
const float *  inputR,
float *  output,
size_t  nFrame 
)

Convert floating-point Stereo (planar) to Mono (L+R)/2

Warning
Buffers must be 64-byte aligned
Parameters
inputLaudio input left buffer (64 byte aligned)
inputRaudio input right buffer (64 byte aligned)
outputaudio output mono buffer (64 byte aligned)
nFramethe number of frames