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

Helpers to convert audio. More...

Classes

struct  bigvoice_CAudioConverter
 

Enumerations

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

Functions

void bigvoice_AudioConvertFrom (const uint8_t *payload, float *output, size_t nSpl, enum bigvoice_SampleFormat fmt)
 
void bigvoice_AudioConvertTo (const float *input, uint8_t *payload, size_t nSpl, enum bigvoice_SampleFormat fmt)
 
void bigvoice_StereoToMono (const float *input, float *output, size_t nFrame)
 
void bigvoice_MonoToStereo (const float *input, float *output, size_t nFrame)
 
void bigvoice_StereoToMono_Planar (const float *inputL, const float *inputR, float *output, size_t nFrame)
 
void bigvoice_MonoToStereo_Planar (const float *input, float *outputL, float *outputR, size_t nFrame)
 
void bigvoice_AudioMonoFromLiveStereo (const uint8_t *payload, float *output)
 
void bigvoice_AudioMonoToLiveStereo (const float *input, uint8_t *payload)
 
struct bigvoice_CAudioConverterbigvoice_GetAudioConverter (enum bigvoice_SampleFormat fmt, size_t nFrame, size_t payl_ch, size_t payl_ch_offset, enum bigvoice_ConverterTargetMode target_mode)
 
void bigvoice_FreeAudioConverter (struct bigvoice_CAudioConverter *converter)
 
void bigvoice_AudioConverter_From (struct bigvoice_CAudioConverter *converter, const uint8_t *payload, float *output)
 
void bigvoice_AudioConverter_To (struct bigvoice_CAudioConverter *converter, const float *input, uint8_t *payload)
 

Detailed Description

Helpers to convert audio in an optimized way

Enumeration Type Documentation

◆ bigvoice_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.bigvoice.cl.h.

Function Documentation

◆ bigvoice_AudioConverter_From()

void bigvoice_AudioConverter_From ( struct bigvoice_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 bigvoice_GetAudioConverter
payloadthe binary raw audio buffer
outputaudio output buffer (64 byte aligned)

◆ bigvoice_AudioConverter_To()

void bigvoice_AudioConverter_To ( struct bigvoice_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 bigvoice_GetAudioConverter
inputaudio input buffer (64 byte aligned)
payloadthe binary raw audio buffer

◆ bigvoice_AudioConvertFrom()

void bigvoice_AudioConvertFrom ( const uint8_t *  payload,
float *  output,
size_t  nSpl,
enum bigvoice_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

◆ bigvoice_AudioConvertTo()

void bigvoice_AudioConvertTo ( const float *  input,
uint8_t *  payload,
size_t  nSpl,
enum bigvoice_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

◆ bigvoice_AudioMonoFromLiveStereo()

void bigvoice_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)

◆ bigvoice_AudioMonoToLiveStereo()

void bigvoice_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

◆ bigvoice_FreeAudioConverter()

void bigvoice_FreeAudioConverter ( struct bigvoice_CAudioConverter converter)

Free the audio converter created with bigvoice_GetAudioConverter.

◆ bigvoice_GetAudioConverter()

struct bigvoice_CAudioConverter * bigvoice_GetAudioConverter ( enum bigvoice_SampleFormat  fmt,
size_t  nFrame,
size_t  payl_ch,
size_t  payl_ch_offset,
enum bigvoice_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 bigvoice_AudioConverter_From and bigvoice_AudioConverter_To.

The converter will have to be freed with bigvoice_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.

◆ bigvoice_MonoToStereo()

void bigvoice_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

◆ bigvoice_MonoToStereo_Planar()

void bigvoice_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

◆ bigvoice_StereoToMono()

void bigvoice_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

◆ bigvoice_StereoToMono_Planar()

void bigvoice_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