extern
rhino
demo
c
pvrecorder
src
miniaudio
research
_extras
nodes
ma_reverb_node
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/ma_reverb_node.c
Go to the documentation of this file.
1
2
#define VERBLIB_IMPLEMENTATION
3
#include "
ma_reverb_node.h
"
4
5
MA_API
ma_reverb_node_config
ma_reverb_node_config_init
(
ma_uint32
channels,
ma_uint32
sampleRate)
6
{
7
ma_reverb_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_reverb_node_init(). */
11
config
.channels = channels;
12
config
.sampleRate = sampleRate;
13
config
.roomSize =
verblib_initialroom
;
14
config
.damping =
verblib_initialdamp
;
15
config
.width =
verblib_initialwidth
;
16
config
.wetVolume =
verblib_initialwet
;
17
config
.dryVolume =
verblib_initialdry
;
18
config
.mode =
verblib_initialmode
;
19
20
return
config
;
21
}
22
23
24
static
void
ma_reverb_node_process_pcm_frames
(
ma_node
* pNode,
const
float
** ppFramesIn,
ma_uint32
* pFrameCountIn,
float
** ppFramesOut,
ma_uint32
* pFrameCountOut)
25
{
26
ma_reverb_node
* pReverbNode = (
ma_reverb_node
*)pNode;
27
28
(void)pFrameCountIn;
29
30
verblib_process
(&pReverbNode->
reverb
, ppFramesIn[0], ppFramesOut[0], *pFrameCountOut);
31
}
32
33
static
ma_node_vtable
g_ma_reverb_node_vtable
=
34
{
35
ma_reverb_node_process_pcm_frames
,
36
NULL
,
37
1,
/* 1 input channels. */
38
1,
/* 1 output channel. */
39
MA_NODE_FLAG_CONTINUOUS_PROCESSING
/* Reverb requires continuous processing to ensure the tail get's processed. */
40
};
41
42
MA_API
ma_result
ma_reverb_node_init
(
ma_node_graph
* pNodeGraph,
const
ma_reverb_node_config
* pConfig,
const
ma_allocation_callbacks
* pAllocationCallbacks,
ma_reverb_node
* pReverbNode)
43
{
44
ma_result
result;
45
ma_node_config
baseConfig;
46
47
if
(pReverbNode ==
NULL
) {
48
return
MA_INVALID_ARGS
;
49
}
50
51
MA_ZERO_OBJECT
(pReverbNode);
52
53
if
(pConfig ==
NULL
) {
54
return
MA_INVALID_ARGS
;
55
}
56
57
if
(
verblib_initialize
(&pReverbNode->
reverb
, (
unsigned
long
)pConfig->
sampleRate
, (
unsigned
int
)pConfig->
channels
) == 0) {
58
return
MA_INVALID_ARGS
;
59
}
60
61
baseConfig = pConfig->
nodeConfig
;
62
baseConfig.
vtable
= &
g_ma_reverb_node_vtable
;
63
baseConfig.
pInputChannels
= &pConfig->
channels
;
64
baseConfig.
pOutputChannels
= &pConfig->
channels
;
65
66
result =
ma_node_init
(pNodeGraph, &baseConfig, pAllocationCallbacks, &pReverbNode->
baseNode
);
67
if
(result !=
MA_SUCCESS
) {
68
return
result;
69
}
70
71
return
MA_SUCCESS
;
72
}
73
74
MA_API
void
ma_reverb_node_uninit
(
ma_reverb_node
* pReverbNode,
const
ma_allocation_callbacks
* pAllocationCallbacks)
75
{
76
/* The base node is always uninitialized first. */
77
ma_node_uninit
(pReverbNode, pAllocationCallbacks);
78
}
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_reverb_node::reverb
verblib reverb
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/ma_reverb_node.h:33
verblib_initialize
int verblib_initialize(verblib *verb, unsigned long sample_rate, unsigned int channels)
verblib_initialdamp
#define verblib_initialdamp
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/verblib.h:136
ma_reverb_node_process_pcm_frames
static void ma_reverb_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_reverb_node/ma_reverb_node.c:24
verblib_process
void verblib_process(verblib *verb, const float *input_buffer, float *output_buffer, unsigned long frames)
ma_reverb_node
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/ma_reverb_node.h:30
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_reverb_node_config
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/ma_reverb_node.h:14
ma_node_vtable
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:892
ma_reverb_node_uninit
MA_API void ma_reverb_node_uninit(ma_reverb_node *pReverbNode, const ma_allocation_callbacks *pAllocationCallbacks)
Definition:
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/ma_reverb_node.c:74
ma_allocation_callbacks
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1823
verblib_initialwet
#define verblib_initialwet
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/verblib.h:137
verblib_initialdry
#define verblib_initialdry
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/verblib.h:138
ma_reverb_node_config::channels
ma_uint32 channels
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/ma_reverb_node.h:17
verblib_initialwidth
#define verblib_initialwidth
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/verblib.h:139
ma_result
int ma_result
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1658
ma_reverb_node::baseNode
ma_node_base baseNode
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/ma_reverb_node.h:32
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_reverb_node.h
ma_node_config::vtable
const ma_node_vtable * vtable
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:937
ma_reverb_node_config::sampleRate
ma_uint32 sampleRate
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/ma_reverb_node.h:18
verblib_initialroom
#define verblib_initialroom
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/verblib.h:135
ma_node_config::pOutputChannels
const ma_uint32 * pOutputChannels
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:942
g_ma_reverb_node_vtable
static ma_node_vtable g_ma_reverb_node_vtable
Definition:
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/ma_reverb_node.c:33
ma_node_uninit
MA_API void ma_node_uninit(ma_node *pNode, const ma_allocation_callbacks *pAllocationCallbacks)
verblib_initialmode
#define verblib_initialmode
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/verblib.h:140
ma_uint32
uint32_t ma_uint32
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1503
MA_NODE_FLAG_CONTINUOUS_PROCESSING
#define MA_NODE_FLAG_CONTINUOUS_PROCESSING
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/miniaudio_engine.h:879
ma_reverb_node_config_init
MA_API ma_reverb_node_config ma_reverb_node_config_init(ma_uint32 channels, ma_uint32 sampleRate)
Definition:
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/ma_reverb_node.c:5
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_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_ZERO_OBJECT
#define MA_ZERO_OBJECT(p)
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:774
ma_reverb_node_init
MA_API ma_result ma_reverb_node_init(ma_node_graph *pNodeGraph, const ma_reverb_node_config *pConfig, const ma_allocation_callbacks *pAllocationCallbacks, ma_reverb_node *pReverbNode)
Definition:
rhino/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/ma_reverb_node.c:42
ma_reverb_node_config::nodeConfig
ma_node_config nodeConfig
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/research/_extras/nodes/ma_reverb_node/ma_reverb_node.h:16
picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:13:56