extern
rhino
demo
c
pvrecorder
src
miniaudio
research
_extras
nodes
ma_vocoder_node
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_vocoder_node/ma_vocoder_node.c
Go to the documentation of this file.
1
2
#define VOCLIB_IMPLEMENTATION
3
#include "
ma_vocoder_node.h
"
4
5
MA_API
ma_vocoder_node_config
ma_vocoder_node_config_init
(
ma_uint32
channels,
ma_uint32
sampleRate)
6
{
7
ma_vocoder_node_config
config
;
8
9
MA_ZERO_OBJECT
(&
config
);
10
config
.nodeConfig =
ma_node_config_init
();
/* Input and output channels will be set in ma_vocoder_node_init(). */
11
config
.channels = channels;
12
config
.sampleRate = sampleRate;
13
config
.bands = 16;
14
config
.filtersPerBand = 6;
15
16
return
config
;
17
}
18
19
20
static
void
ma_vocoder_node_process_pcm_frames
(
ma_node
* pNode,
const
float
** ppFramesIn,
ma_uint32
* pFrameCountIn,
float
** ppFramesOut,
ma_uint32
* pFrameCountOut)
21
{
22
ma_vocoder_node
* pVocoderNode = (
ma_vocoder_node
*)pNode;
23
24
(void)pFrameCountIn;
25
26
voclib_process
(&pVocoderNode->
voclib
, ppFramesIn[0], ppFramesIn[1], ppFramesOut[0], *pFrameCountOut);
27
}
28
29
static
ma_node_vtable
g_ma_vocoder_node_vtable
=
30
{
31
ma_vocoder_node_process_pcm_frames
,
32
NULL
,
33
2,
/* 2 input channels. */
34
1,
/* 1 output channel. */
35
0
36
};
37
38
MA_API
ma_result
ma_vocoder_node_init
(
ma_node_graph
* pNodeGraph,
const
ma_vocoder_node_config
* pConfig,
const
ma_allocation_callbacks
* pAllocationCallbacks,
ma_vocoder_node
* pVocoderNode)
39
{
40
ma_result
result;
41
ma_node_config
baseConfig;
42
ma_uint32
inputChannels[2];
43
ma_uint32
outputChannels[1];
44
45
if
(pVocoderNode ==
NULL
) {
46
return
MA_INVALID_ARGS
;
47
}
48
49
MA_ZERO_OBJECT
(pVocoderNode);
50
51
if
(pConfig ==
NULL
) {
52
return
MA_INVALID_ARGS
;
53
}
54
55
if
(
voclib_initialize
(&pVocoderNode->
voclib
, (
unsigned
char
)pConfig->
bands
, (
unsigned
char
)pConfig->
filtersPerBand
, (
unsigned
int
)pConfig->
sampleRate
, (
unsigned
char
)pConfig->
channels
) == 0) {
56
return
MA_INVALID_ARGS
;
57
}
58
59
inputChannels [0] = pConfig->
channels
;
/* Source/carrier. */
60
inputChannels [1] = 1;
/* Excite/modulator. Must always be single channel. */
61
outputChannels[0] = pConfig->
channels
;
/* Output channels is always the same as the source/carrier. */
62
63
baseConfig = pConfig->
nodeConfig
;
64
baseConfig.
vtable
= &
g_ma_vocoder_node_vtable
;
65
baseConfig.
pInputChannels
= inputChannels;
66
baseConfig.
pOutputChannels
= outputChannels;
67
68
result =
ma_node_init
(pNodeGraph, &baseConfig, pAllocationCallbacks, &pVocoderNode->
baseNode
);
69
if
(result !=
MA_SUCCESS
) {
70
return
result;
71
}
72
73
return
MA_SUCCESS
;
74
}
75
76
MA_API
void
ma_vocoder_node_uninit
(
ma_vocoder_node
* pVocoderNode,
const
ma_allocation_callbacks
* pAllocationCallbacks)
77
{
78
/* The base node must always be initialized first. */
79
ma_node_uninit
(pVocoderNode, pAllocationCallbacks);
80
}
MA_INVALID_ARGS
#define MA_INVALID_ARGS
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1661
NULL
#define NULL
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/extras/speex_resampler/thirdparty/resample.c:92
ma_vocoder_node_config::nodeConfig
ma_node_config nodeConfig
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_vocoder_node/ma_vocoder_node.h:23
ma_vocoder_node_config::channels
ma_uint32 channels
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_vocoder_node/ma_vocoder_node.h:24
voclib_initialize
int voclib_initialize(voclib_instance *instance, unsigned char bands, unsigned char filters_per_band, unsigned int sample_rate, unsigned char carrier_channels)
MA_API
#define MA_API
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.h:174
ma_node
void ma_node
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:874
ma_node_vtable
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:892
ma_allocation_callbacks
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1823
ma_vocoder_node
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_vocoder_node/ma_vocoder_node.h:33
ma_vocoder_node.h
ma_result
int ma_result
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1658
ma_vocoder_node_uninit
MA_API void ma_vocoder_node_uninit(ma_vocoder_node *pVocoderNode, const ma_allocation_callbacks *pAllocationCallbacks)
Definition:
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_vocoder_node/ma_vocoder_node.c:76
ma_node_init
MA_API ma_result ma_node_init(ma_node_graph *pNodeGraph, const ma_node_config *pConfig, const ma_allocation_callbacks *pAllocationCallbacks, ma_node *pNode)
ma_node_config_init
MA_API ma_node_config ma_node_config_init(void)
ma_vocoder_node_config::bands
ma_uint32 bands
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_vocoder_node/ma_vocoder_node.h:26
ma_node_config::vtable
const ma_node_vtable * vtable
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:937
ma_vocoder_node::baseNode
ma_node_base baseNode
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_vocoder_node/ma_vocoder_node.h:35
ma_node_config::pOutputChannels
const ma_uint32 * pOutputChannels
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:942
ma_node_uninit
MA_API void ma_node_uninit(ma_node *pNode, const ma_allocation_callbacks *pAllocationCallbacks)
g_ma_vocoder_node_vtable
static ma_node_vtable g_ma_vocoder_node_vtable
Definition:
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_vocoder_node/ma_vocoder_node.c:29
ma_uint32
uint32_t ma_uint32
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1503
voclib_process
int voclib_process(voclib_instance *instance, const float *carrier_buffer, const float *modulator_buffer, float *output_buffer, unsigned int frames)
ma_vocoder_node_init
MA_API ma_result ma_vocoder_node_init(ma_node_graph *pNodeGraph, const ma_vocoder_node_config *pConfig, const ma_allocation_callbacks *pAllocationCallbacks, ma_vocoder_node *pVocoderNode)
Definition:
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_vocoder_node/ma_vocoder_node.c:38
ma_vocoder_node_config_init
MA_API ma_vocoder_node_config ma_vocoder_node_config_init(ma_uint32 channels, ma_uint32 sampleRate)
Definition:
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_vocoder_node/ma_vocoder_node.c:5
ma_vocoder_node_config::sampleRate
ma_uint32 sampleRate
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_vocoder_node/ma_vocoder_node.h:25
ma_node_config
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:935
ma_node_graph
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:1053
ma_vocoder_node_process_pcm_frames
static void ma_vocoder_node_process_pcm_frames(ma_node *pNode, const float **ppFramesIn, ma_uint32 *pFrameCountIn, float **ppFramesOut, ma_uint32 *pFrameCountOut)
Definition:
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_vocoder_node/ma_vocoder_node.c:20
ma_vocoder_node::voclib
voclib_instance voclib
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_vocoder_node/ma_vocoder_node.h:36
ma_node_config::pInputChannels
const ma_uint32 * pInputChannels
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:941
config
static sai_transceiver_t config
Definition:
imxrt1050/imxrt1050-evkb/source/pv_audio_rec.c:75
MA_SUCCESS
#define MA_SUCCESS
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1659
ma_vocoder_node_config
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_vocoder_node/ma_vocoder_node.h:21
MA_ZERO_OBJECT
#define MA_ZERO_OBJECT(p)
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:774
ma_vocoder_node_config::filtersPerBand
ma_uint32 filtersPerBand
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_vocoder_node/ma_vocoder_node.h:27
picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:13:56