diff options
Diffstat (limited to 'quantum/audio/audio_arm.c')
-rw-r--r-- | quantum/audio/audio_arm.c | 148 |
1 files changed, 121 insertions, 27 deletions
diff --git a/quantum/audio/audio_arm.c b/quantum/audio/audio_arm.c index 247dc337d..d38184f32 100644 --- a/quantum/audio/audio_arm.c +++ b/quantum/audio/audio_arm.c | |||
@@ -79,7 +79,7 @@ float startup_song[][2] = STARTUP_SONG; | |||
79 | 79 | ||
80 | static void gpt_cb8(GPTDriver *gptp); | 80 | static void gpt_cb8(GPTDriver *gptp); |
81 | 81 | ||
82 | #define DAC_BUFFER_SIZE 360 | 82 | #define DAC_BUFFER_SIZE 720 |
83 | 83 | ||
84 | #define START_CHANNEL_1() gptStart(&GPTD6, &gpt6cfg1); \ | 84 | #define START_CHANNEL_1() gptStart(&GPTD6, &gpt6cfg1); \ |
85 | gptStartContinuous(&GPTD6, 2U) | 85 | gptStartContinuous(&GPTD6, 2U) |
@@ -167,6 +167,39 @@ GPTConfig gpt8cfg1 = { | |||
167 | // 1622, 1657, 1692, 1727, 1763, 1798, 1834, 1869, 1905, 1940, 1976, 2012 | 167 | // 1622, 1657, 1692, 1727, 1763, 1798, 1834, 1869, 1905, 1940, 1976, 2012 |
168 | // }; | 168 | // }; |
169 | 169 | ||
170 | // static const dacsample_t dac_buffer_2[DAC_BUFFER_SIZE] = { | ||
171 | // 12, 8, 5, 3, 2, 1, 0, 1, 2, 3, 5, 8, | ||
172 | // 12, 16, 20, 26, 32, 38, 45, 53, 61, 70, 80, 90, | ||
173 | // 101, 112, 124, 136, 150, 163, 177, 192, 208, 224, 240, 257, | ||
174 | // 275, 293, 312, 331, 350, 371, 391, 413, 434, 457, 479, 503, | ||
175 | // 526, 550, 575, 600, 626, 651, 678, 705, 732, 759, 787, 816, | ||
176 | // 844, 873, 903, 933, 963, 993, 1024, 1055, 1086, 1118, 1150, 1182, | ||
177 | // 1215, 1248, 1281, 1314, 1347, 1381, 1415, 1449, 1483, 1518, 1552, 1587, | ||
178 | // 1622, 1657, 1692, 1727, 1763, 1798, 1834, 1869, 1905, 1940, 1976, 2012, | ||
179 | // 2047, 2082, 2118, 2154, 2189, 2225, 2260, 2296, 2331, 2367, 2402, 2437, | ||
180 | // 2472, 2507, 2542, 2576, 2611, 2645, 2679, 2713, 2747, 2780, 2813, 2846, | ||
181 | // 2879, 2912, 2944, 2976, 3008, 3039, 3070, 3101, 3131, 3161, 3191, 3221, | ||
182 | // 3250, 3278, 3307, 3335, 3362, 3389, 3416, 3443, 3468, 3494, 3519, 3544, | ||
183 | // 3568, 3591, 3615, 3637, 3660, 3681, 3703, 3723, 3744, 3763, 3782, 3801, | ||
184 | // 3819, 3837, 3854, 3870, 3886, 3902, 3917, 3931, 3944, 3958, 3970, 3982, | ||
185 | // 3993, 4004, 4014, 4024, 4033, 4041, 4049, 4056, 4062, 4068, 4074, 4078, | ||
186 | // 4082, 4086, 4089, 4091, 4092, 4093, 4094, 4093, 4092, 4091, 4089, 4086, | ||
187 | // 4082, 4078, 4074, 4068, 4062, 4056, 4049, 4041, 4033, 4024, 4014, 4004, | ||
188 | // 3993, 3982, 3970, 3958, 3944, 3931, 3917, 3902, 3886, 3870, 3854, 3837, | ||
189 | // 3819, 3801, 3782, 3763, 3744, 3723, 3703, 3681, 3660, 3637, 3615, 3591, | ||
190 | // 3568, 3544, 3519, 3494, 3468, 3443, 3416, 3389, 3362, 3335, 3307, 3278, | ||
191 | // 3250, 3221, 3191, 3161, 3131, 3101, 3070, 3039, 3008, 2976, 2944, 2912, | ||
192 | // 2879, 2846, 2813, 2780, 2747, 2713, 2679, 2645, 2611, 2576, 2542, 2507, | ||
193 | // 2472, 2437, 2402, 2367, 2331, 2296, 2260, 2225, 2189, 2154, 2118, 2082, | ||
194 | // 2047, 2012, 1976, 1940, 1905, 1869, 1834, 1798, 1763, 1727, 1692, 1657, | ||
195 | // 1622, 1587, 1552, 1518, 1483, 1449, 1415, 1381, 1347, 1314, 1281, 1248, | ||
196 | // 1215, 1182, 1150, 1118, 1086, 1055, 1024, 993, 963, 933, 903, 873, | ||
197 | // 844, 816, 787, 759, 732, 705, 678, 651, 626, 600, 575, 550, | ||
198 | // 526, 503, 479, 457, 434, 413, 391, 371, 350, 331, 312, 293, | ||
199 | // 275, 257, 240, 224, 208, 192, 177, 163, 150, 136, 124, 112, | ||
200 | // 101, 90, 80, 70, 61, 53, 45, 38, 32, 26, 20, 16 | ||
201 | // }; | ||
202 | |||
170 | // squarewave | 203 | // squarewave |
171 | static const dacsample_t dac_buffer[DAC_BUFFER_SIZE] = { | 204 | static const dacsample_t dac_buffer[DAC_BUFFER_SIZE] = { |
172 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | 205 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, |
@@ -184,6 +217,21 @@ static const dacsample_t dac_buffer[DAC_BUFFER_SIZE] = { | |||
184 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | 217 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, |
185 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | 218 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, |
186 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | 219 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, |
220 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
221 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
222 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
223 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
224 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
225 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
226 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
227 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
228 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
229 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
230 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
231 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
232 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
233 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
234 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
187 | 235 | ||
188 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 236 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
189 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 237 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
@@ -199,26 +247,26 @@ static const dacsample_t dac_buffer[DAC_BUFFER_SIZE] = { | |||
199 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 247 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
200 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 248 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
201 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 249 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
250 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
251 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
252 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
253 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
254 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
255 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
256 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
257 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
258 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
259 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
260 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
261 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
262 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
263 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
264 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
202 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | 265 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
203 | }; | 266 | }; |
204 | 267 | ||
205 | // squarewave | 268 | // squarewave |
206 | static const dacsample_t dac_buffer_2[DAC_BUFFER_SIZE] = { | 269 | static const dacsample_t dac_buffer_2[DAC_BUFFER_SIZE] = { |
207 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
208 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
209 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
210 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
211 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
212 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
213 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
214 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
215 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
216 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
217 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
218 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
219 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
220 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
221 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
222 | 270 | ||
223 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 271 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
224 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 272 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
@@ -234,7 +282,52 @@ static const dacsample_t dac_buffer_2[DAC_BUFFER_SIZE] = { | |||
234 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 282 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
235 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 283 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
236 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 284 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
237 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | 285 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
286 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
287 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
288 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
289 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
290 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
291 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
292 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
293 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
294 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
295 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
296 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
297 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
298 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
299 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
300 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
301 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
302 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
303 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
304 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
305 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
306 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
307 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
308 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
309 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
310 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
311 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
312 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
313 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
314 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
315 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
316 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
317 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
318 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
319 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
320 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
321 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
322 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
323 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
324 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
325 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
326 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
327 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
328 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
329 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, | ||
330 | 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047 | ||
238 | }; | 331 | }; |
239 | 332 | ||
240 | /* | 333 | /* |
@@ -317,7 +410,7 @@ void audio_init() | |||
317 | dacStart(&DACD2, &dac1cfg2); | 410 | dacStart(&DACD2, &dac1cfg2); |
318 | 411 | ||
319 | /* | 412 | /* |
320 | * Starting GPT6 driver, it is used for triggering the DAC. | 413 | * Starting GPT6/7 driver, it is used for triggering the DAC. |
321 | */ | 414 | */ |
322 | START_CHANNEL_1(); | 415 | START_CHANNEL_1(); |
323 | START_CHANNEL_2(); | 416 | START_CHANNEL_2(); |
@@ -325,12 +418,8 @@ void audio_init() | |||
325 | /* | 418 | /* |
326 | * Starting a continuous conversion. | 419 | * Starting a continuous conversion. |
327 | */ | 420 | */ |
328 | dacStartConversion(&DACD1, &dacgrpcfg1, | 421 | dacStartConversion(&DACD1, &dacgrpcfg1, (dacsample_t *)dac_buffer, DAC_BUFFER_SIZE); |
329 | (dacsample_t *)dac_buffer, DAC_BUFFER_SIZE); | 422 | dacStartConversion(&DACD2, &dacgrpcfg2, (dacsample_t *)dac_buffer_2, DAC_BUFFER_SIZE); |
330 | dacStartConversion(&DACD2, &dacgrpcfg2, | ||
331 | (dacsample_t *)dac_buffer_2, DAC_BUFFER_SIZE); | ||
332 | // gptStartContinuous(&GPTD6, 2U); | ||
333 | |||
334 | 423 | ||
335 | audio_initialized = true; | 424 | audio_initialized = true; |
336 | 425 | ||
@@ -469,6 +558,8 @@ static void gpt_cb8(GPTDriver *gptp) { | |||
469 | 558 | ||
470 | if (GET_CHANNEL_2_FREQ != (uint16_t)freq_alt) { | 559 | if (GET_CHANNEL_2_FREQ != (uint16_t)freq_alt) { |
471 | UPDATE_CHANNEL_2_FREQ(freq_alt); | 560 | UPDATE_CHANNEL_2_FREQ(freq_alt); |
561 | } else { | ||
562 | RESTART_CHANNEL_2(); | ||
472 | } | 563 | } |
473 | //note_timbre; | 564 | //note_timbre; |
474 | } | 565 | } |
@@ -528,6 +619,8 @@ static void gpt_cb8(GPTDriver *gptp) { | |||
528 | 619 | ||
529 | if (GET_CHANNEL_1_FREQ != (uint16_t)freq) { | 620 | if (GET_CHANNEL_1_FREQ != (uint16_t)freq) { |
530 | UPDATE_CHANNEL_1_FREQ(freq); | 621 | UPDATE_CHANNEL_1_FREQ(freq); |
622 | } else { | ||
623 | RESTART_CHANNEL_1(); | ||
531 | } | 624 | } |
532 | //note_timbre; | 625 | //note_timbre; |
533 | } | 626 | } |
@@ -565,11 +658,11 @@ static void gpt_cb8(GPTDriver *gptp) { | |||
565 | bool end_of_note = false; | 658 | bool end_of_note = false; |
566 | if (GET_CHANNEL_1_FREQ > 0) { | 659 | if (GET_CHANNEL_1_FREQ > 0) { |
567 | if (!note_resting) | 660 | if (!note_resting) |
568 | end_of_note = (note_position >= (note_length*16 - 1)); | 661 | end_of_note = (note_position >= (note_length*8 - 1)); |
569 | else | 662 | else |
570 | end_of_note = (note_position >= (note_length*16)); | 663 | end_of_note = (note_position >= (note_length*8)); |
571 | } else { | 664 | } else { |
572 | end_of_note = (note_position >= (note_length*16)); | 665 | end_of_note = (note_position >= (note_length*8)); |
573 | } | 666 | } |
574 | 667 | ||
575 | if (end_of_note) { | 668 | if (end_of_note) { |
@@ -622,6 +715,7 @@ void play_note(float freq, int vol) { | |||
622 | 715 | ||
623 | if (audio_config.enable && voices < 8) { | 716 | if (audio_config.enable && voices < 8) { |
624 | 717 | ||
718 | |||
625 | // Cancel notes if notes are playing | 719 | // Cancel notes if notes are playing |
626 | if (playing_notes) | 720 | if (playing_notes) |
627 | stop_all_notes(); | 721 | stop_all_notes(); |