rhino/demo/c/pvrecorder/src/miniaudio/tests/test_generation/ma_test_generation_waveform.c
Go to the documentation of this file.
1 
3 {
4  MA_ASSERT(pWaveformConfig != NULL);
5 
6  return drwav_data_format_from_minaudio_format(pWaveformConfig->format, pWaveformConfig->channels, pWaveformConfig->sampleRate);
7 }
8 
9 ma_result test_waveform__by_format_and_type(ma_format format, ma_waveform_type type, double amplitude, const char* pFileName)
10 {
11  ma_result result;
12  ma_waveform_config waveformConfig;
14  drwav_data_format wavFormat;
15  drwav wav;
16  ma_uint32 iFrame;
17 
18  printf(" %s\n", pFileName);
19 
20  waveformConfig = ma_waveform_config_init(format, 2, 48000, type, amplitude, 220);
21  result = ma_waveform_init(&waveformConfig, &waveform);
22  if (result != MA_SUCCESS) {
23  return result;
24  }
25 
26  wavFormat = drwav_data_format_from_waveform_config(&waveformConfig);
27  if (!drwav_init_file_write(&wav, pFileName, &wavFormat, NULL)) {
28  return MA_ERROR; /* Could not open file for writing. */
29  }
30 
31  /* We'll do a few seconds of data. */
32  for (iFrame = 0; iFrame < wavFormat.sampleRate * 10; iFrame += 1) {
33  float temp[MA_MAX_CHANNELS];
35  drwav_write_pcm_frames(&wav, 1, temp);
36  }
37 
38  drwav_uninit(&wav);
39  return MA_SUCCESS;
40 }
41 
43 {
44  ma_result result;
45  ma_bool32 hasError = MA_FALSE;
46  double amplitude = 0.2;
47 
48  /* Sine */
49  result = test_waveform__by_format_and_type(ma_format_f32, ma_waveform_type_sine, +amplitude, TEST_OUTPUT_DIR"/waveform_f32_sine.wav");
50  if (result != MA_SUCCESS) {
51  hasError = MA_TRUE;
52  }
53 
54  result = test_waveform__by_format_and_type(ma_format_f32, ma_waveform_type_sine, -amplitude, TEST_OUTPUT_DIR"/waveform_f32_sine_neg.wav");
55  if (result != MA_SUCCESS) {
56  hasError = MA_TRUE;
57  }
58 
59  /* Square */
60  result = test_waveform__by_format_and_type(ma_format_f32, ma_waveform_type_square, +amplitude, TEST_OUTPUT_DIR"/waveform_f32_square.wav");
61  if (result != MA_SUCCESS) {
62  hasError = MA_TRUE;
63  }
64 
65  result = test_waveform__by_format_and_type(ma_format_f32, ma_waveform_type_square, -amplitude, TEST_OUTPUT_DIR"/waveform_f32_square_neg.wav");
66  if (result != MA_SUCCESS) {
67  hasError = MA_TRUE;
68  }
69 
70  /* Triangle */
71  result = test_waveform__by_format_and_type(ma_format_f32, ma_waveform_type_triangle, +amplitude, TEST_OUTPUT_DIR"/waveform_f32_triangle.wav");
72  if (result != MA_SUCCESS) {
73  hasError = MA_TRUE;
74  }
75 
76  result = test_waveform__by_format_and_type(ma_format_f32, ma_waveform_type_triangle, -amplitude, TEST_OUTPUT_DIR"/waveform_f32_triangle_neg.wav");
77  if (result != MA_SUCCESS) {
78  hasError = MA_TRUE;
79  }
80 
81  /* Sawtooth */
82  result = test_waveform__by_format_and_type(ma_format_f32, ma_waveform_type_sawtooth, +amplitude, TEST_OUTPUT_DIR"/waveform_f32_sawtooth.wav");
83  if (result != MA_SUCCESS) {
84  hasError = MA_TRUE;
85  }
86 
87  result = test_waveform__by_format_and_type(ma_format_f32, ma_waveform_type_sawtooth, -amplitude, TEST_OUTPUT_DIR"/waveform_f32_sawtooth_neg.wav");
88  if (result != MA_SUCCESS) {
89  hasError = MA_TRUE;
90  }
91 
92 
93  if (hasError) {
94  return MA_ERROR;
95  } else {
96  return MA_SUCCESS;
97  }
98 }
99 
101 {
102  ma_result result;
103  ma_bool32 hasError = MA_FALSE;
104  double amplitude = 0.2;
105 
106  /* Sine */
107  result = test_waveform__by_format_and_type(ma_format_s16, ma_waveform_type_sine, +amplitude, TEST_OUTPUT_DIR"/waveform_s16_sine.wav");
108  if (result != MA_SUCCESS) {
109  hasError = MA_TRUE;
110  }
111 
112  result = test_waveform__by_format_and_type(ma_format_s16, ma_waveform_type_sine, -amplitude, TEST_OUTPUT_DIR"/waveform_s16_sine_neg.wav");
113  if (result != MA_SUCCESS) {
114  hasError = MA_TRUE;
115  }
116 
117  /* Square */
118  result = test_waveform__by_format_and_type(ma_format_s16, ma_waveform_type_square, +amplitude, TEST_OUTPUT_DIR"/waveform_s16_square.wav");
119  if (result != MA_SUCCESS) {
120  hasError = MA_TRUE;
121  }
122 
123  result = test_waveform__by_format_and_type(ma_format_s16, ma_waveform_type_square, -amplitude, TEST_OUTPUT_DIR"/waveform_s16_square_neg.wav");
124  if (result != MA_SUCCESS) {
125  hasError = MA_TRUE;
126  }
127 
128  /* Triangle */
129  result = test_waveform__by_format_and_type(ma_format_s16, ma_waveform_type_triangle, +amplitude, TEST_OUTPUT_DIR"/waveform_s16_triangle.wav");
130  if (result != MA_SUCCESS) {
131  hasError = MA_TRUE;
132  }
133 
134  result = test_waveform__by_format_and_type(ma_format_s16, ma_waveform_type_triangle, -amplitude, TEST_OUTPUT_DIR"/waveform_s16_triangle_neg.wav");
135  if (result != MA_SUCCESS) {
136  hasError = MA_TRUE;
137  }
138 
139  /* Sawtooth */
140  result = test_waveform__by_format_and_type(ma_format_s16, ma_waveform_type_sawtooth, +amplitude, TEST_OUTPUT_DIR"/waveform_s16_sawtooth.wav");
141  if (result != MA_SUCCESS) {
142  hasError = MA_TRUE;
143  }
144 
145  result = test_waveform__by_format_and_type(ma_format_s16, ma_waveform_type_sawtooth, -amplitude, TEST_OUTPUT_DIR"/waveform_s16_sawtooth_neg.wav");
146  if (result != MA_SUCCESS) {
147  hasError = MA_TRUE;
148  }
149 
150 
151  if (hasError) {
152  return MA_ERROR;
153  } else {
154  return MA_SUCCESS;
155  }
156 }
157 
159 {
160  ma_result result;
161  ma_bool32 hasError = MA_FALSE;
162  double amplitude = 0.2;
163 
164  /* Sine */
165  result = test_waveform__by_format_and_type(ma_format_u8, ma_waveform_type_sine, +amplitude, TEST_OUTPUT_DIR"/waveform_u8_sine.wav");
166  if (result != MA_SUCCESS) {
167  hasError = MA_TRUE;
168  }
169 
170  result = test_waveform__by_format_and_type(ma_format_u8, ma_waveform_type_sine, -amplitude, TEST_OUTPUT_DIR"/waveform_u8_sine_neg.wav");
171  if (result != MA_SUCCESS) {
172  hasError = MA_TRUE;
173  }
174 
175  /* Square */
176  result = test_waveform__by_format_and_type(ma_format_u8, ma_waveform_type_square, +amplitude, TEST_OUTPUT_DIR"/waveform_u8_square.wav");
177  if (result != MA_SUCCESS) {
178  hasError = MA_TRUE;
179  }
180 
181  result = test_waveform__by_format_and_type(ma_format_u8, ma_waveform_type_square, -amplitude, TEST_OUTPUT_DIR"/waveform_u8_square_neg.wav");
182  if (result != MA_SUCCESS) {
183  hasError = MA_TRUE;
184  }
185 
186  /* Triangle */
187  result = test_waveform__by_format_and_type(ma_format_u8, ma_waveform_type_triangle, +amplitude, TEST_OUTPUT_DIR"/waveform_u8_triangle.wav");
188  if (result != MA_SUCCESS) {
189  hasError = MA_TRUE;
190  }
191 
192  result = test_waveform__by_format_and_type(ma_format_u8, ma_waveform_type_triangle, -amplitude, TEST_OUTPUT_DIR"/waveform_u8_triangle_neg.wav");
193  if (result != MA_SUCCESS) {
194  hasError = MA_TRUE;
195  }
196 
197  /* Sawtooth */
198  result = test_waveform__by_format_and_type(ma_format_u8, ma_waveform_type_sawtooth, +amplitude, TEST_OUTPUT_DIR"/waveform_u8_sawtooth.wav");
199  if (result != MA_SUCCESS) {
200  hasError = MA_TRUE;
201  }
202 
203  result = test_waveform__by_format_and_type(ma_format_u8, ma_waveform_type_sawtooth, -amplitude, TEST_OUTPUT_DIR"/waveform_u8_sawtooth_neg.wav");
204  if (result != MA_SUCCESS) {
205  hasError = MA_TRUE;
206  }
207 
208 
209  if (hasError) {
210  return MA_ERROR;
211  } else {
212  return MA_SUCCESS;
213  }
214 }
215 
216 int test_entry__waveform(int argc, char** argv)
217 {
218  ma_result result;
219  ma_bool32 hasError = MA_FALSE;
220 
221  (void)argc;
222  (void)argv;
223 
224  result = test_waveform__f32();
225  if (result != MA_SUCCESS) {
226  hasError = MA_TRUE;
227  }
228 
229  result = test_waveform__s16();
230  if (result != MA_SUCCESS) {
231  hasError = MA_TRUE;
232  }
233 
234  result = test_waveform__u8();
235  if (result != MA_SUCCESS) {
236  hasError = MA_TRUE;
237  }
238 
239  if (hasError) {
240  return -1;
241  } else {
242  return 0;
243  }
244 }
test_waveform__f32
ma_result test_waveform__f32()
Definition: rhino/demo/c/pvrecorder/src/miniaudio/tests/test_generation/ma_test_generation_waveform.c:42
test_waveform__by_format_and_type
ma_result test_waveform__by_format_and_type(ma_format format, ma_waveform_type type, double amplitude, const char *pFileName)
Definition: rhino/demo/c/pvrecorder/src/miniaudio/tests/test_generation/ma_test_generation_waveform.c:9
MA_FALSE
#define MA_FALSE
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1531
test_entry__waveform
int test_entry__waveform(int argc, char **argv)
Definition: rhino/demo/c/pvrecorder/src/miniaudio/tests/test_generation/ma_test_generation_waveform.c:216
NULL
#define NULL
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/extras/speex_resampler/thirdparty/resample.c:92
ma_bool32
ma_uint32 ma_bool32
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1529
ma_waveform_config
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5361
ma_waveform_config::channels
ma_uint32 channels
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5364
ma_format_f32
@ ma_format_f32
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1790
ma_waveform_config::sampleRate
ma_uint32 sampleRate
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5365
ma_format
ma_format
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1779
test_waveform__u8
ma_result test_waveform__u8()
Definition: rhino/demo/c/pvrecorder/src/miniaudio/tests/test_generation/ma_test_generation_waveform.c:158
drwav_data_format_from_waveform_config
static drwav_data_format drwav_data_format_from_waveform_config(const ma_waveform_config *pWaveformConfig)
Definition: rhino/demo/c/pvrecorder/src/miniaudio/tests/test_generation/ma_test_generation_waveform.c:2
ma_waveform_type_sawtooth
@ ma_waveform_type_sawtooth
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5362
ma_result
int ma_result
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1658
TEST_OUTPUT_DIR
#define TEST_OUTPUT_DIR
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_common/ma_test_common.c:18
ma_waveform_init
ma_result ma_waveform_init(const ma_waveform_config *pConfig, ma_waveform *pWaveform)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:45445
ma_waveform_type_triangle
@ ma_waveform_type_triangle
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5361
ma_format_s16
@ ma_format_s16
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1787
MA_ASSERT
#define MA_ASSERT(condition)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:770
ma_waveform_config_init
ma_waveform_config ma_waveform_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, ma_waveform_type type, double amplitude, double frequency)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:45369
waveform
ma_waveform waveform
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_deviceio/ma_test_deviceio.c:59
ma_waveform_type_sine
@ ma_waveform_type_sine
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5359
drwav_uninit
DRWAV_API drwav_result drwav_uninit(drwav *pWav)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:49216
ma_uint32
uint32_t ma_uint32
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1503
ma_waveform
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5373
ma_format_u8
@ ma_format_u8
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1786
drwav_init_file_write
DRWAV_API drwav_bool32 drwav_init_file_write(drwav *pWav, const char *filename, const drwav_data_format *pFormat, const drwav_allocation_callbacks *pAllocationCallbacks)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:49030
drwav
Definition: porcupine/demo/c/dr_libs/dr_wav.h:805
ma_waveform_read_pcm_frames
ma_uint64 ma_waveform_read_pcm_frames(ma_waveform *pWaveform, void *pFramesOut, ma_uint64 frameCount)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:45751
MA_ERROR
#define MA_ERROR
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1660
ma_waveform_type
ma_waveform_type
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5353
test_waveform__s16
ma_result test_waveform__s16()
Definition: rhino/demo/c/pvrecorder/src/miniaudio/tests/test_generation/ma_test_generation_waveform.c:100
python.test_porcupine.argv
argv
Definition: test_porcupine.py:158
drwav_data_format::sampleRate
drwav_uint32 sampleRate
Definition: porcupine/demo/c/dr_libs/dr_wav.h:440
drwav_data_format_from_minaudio_format
drwav_data_format drwav_data_format_from_minaudio_format(ma_format format, ma_uint32 channels, ma_uint32 sampleRate)
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_common/ma_test_common.c:51
MA_MAX_CHANNELS
#define MA_MAX_CHANNELS
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1753
ma_waveform_type_square
@ ma_waveform_type_square
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5360
MA_TRUE
#define MA_TRUE
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1530
MA_SUCCESS
#define MA_SUCCESS
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1659
drwav_data_format
Definition: porcupine/demo/c/dr_libs/dr_wav.h:435
drwav_write_pcm_frames
DRWAV_API drwav_uint64 drwav_write_pcm_frames(drwav *pWav, drwav_uint64 framesToWrite, const void *pData)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:49558
ma_waveform_config::format
ma_format format
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5363


picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:13:56