aboutsummaryrefslogtreecommitdiff
path: root/quantum/audio/audio.h
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/audio/audio.h')
-rw-r--r--quantum/audio/audio.h26
1 files changed, 12 insertions, 14 deletions
diff --git a/quantum/audio/audio.h b/quantum/audio/audio.h
index 8136c5b25..2bcc27b4a 100644
--- a/quantum/audio/audio.h
+++ b/quantum/audio/audio.h
@@ -19,7 +19,7 @@
19#include <stdint.h> 19#include <stdint.h>
20#include <stdbool.h> 20#include <stdbool.h>
21#if defined(__AVR__) 21#if defined(__AVR__)
22 #include <avr/io.h> 22# include <avr/io.h>
23#endif 23#endif
24#include "wait.h" 24#include "wait.h"
25#include "musical_notes.h" 25#include "musical_notes.h"
@@ -39,9 +39,9 @@
39typedef union { 39typedef union {
40 uint8_t raw; 40 uint8_t raw;
41 struct { 41 struct {
42 bool enable :1; 42 bool enable : 1;
43 bool clicky_enable :1; 43 bool clicky_enable : 1;
44 uint8_t level :6; 44 uint8_t level : 6;
45 }; 45 };
46} audio_config_t; 46} audio_config_t;
47 47
@@ -58,13 +58,13 @@ void set_vibrato_rate(float rate);
58void increase_vibrato_rate(float change); 58void increase_vibrato_rate(float change);
59void decrease_vibrato_rate(float change); 59void decrease_vibrato_rate(float change);
60 60
61#ifdef VIBRATO_STRENGTH_ENABLE 61# ifdef VIBRATO_STRENGTH_ENABLE
62 62
63void set_vibrato_strength(float strength); 63void set_vibrato_strength(float strength);
64void increase_vibrato_strength(float change); 64void increase_vibrato_strength(float change);
65void decrease_vibrato_strength(float change); 65void decrease_vibrato_strength(float change);
66 66
67#endif 67# endif
68 68
69#endif 69#endif
70 70
@@ -85,25 +85,23 @@ void decrease_tempo(uint8_t tempo_change);
85void audio_init(void); 85void audio_init(void);
86 86
87#ifdef PWM_AUDIO 87#ifdef PWM_AUDIO
88void play_sample(uint8_t * s, uint16_t l, bool r); 88void play_sample(uint8_t* s, uint16_t l, bool r);
89#endif 89#endif
90void play_note(float freq, int vol); 90void play_note(float freq, int vol);
91void stop_note(float freq); 91void stop_note(float freq);
92void stop_all_notes(void); 92void stop_all_notes(void);
93void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat); 93void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat);
94 94
95#define SCALE (int8_t []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \ 95#define SCALE \
96 0 + (12*1), 2 + (12*1), 4 + (12*1), 5 + (12*1), 7 + (12*1), 9 + (12*1), 11 + (12*1), \ 96 (int8_t[]) { 0 + (12 * 0), 2 + (12 * 0), 4 + (12 * 0), 5 + (12 * 0), 7 + (12 * 0), 9 + (12 * 0), 11 + (12 * 0), 0 + (12 * 1), 2 + (12 * 1), 4 + (12 * 1), 5 + (12 * 1), 7 + (12 * 1), 9 + (12 * 1), 11 + (12 * 1), 0 + (12 * 2), 2 + (12 * 2), 4 + (12 * 2), 5 + (12 * 2), 7 + (12 * 2), 9 + (12 * 2), 11 + (12 * 2), 0 + (12 * 3), 2 + (12 * 3), 4 + (12 * 3), 5 + (12 * 3), 7 + (12 * 3), 9 + (12 * 3), 11 + (12 * 3), 0 + (12 * 4), 2 + (12 * 4), 4 + (12 * 4), 5 + (12 * 4), 7 + (12 * 4), 9 + (12 * 4), 11 + (12 * 4), }
97 0 + (12*2), 2 + (12*2), 4 + (12*2), 5 + (12*2), 7 + (12*2), 9 + (12*2), 11 + (12*2), \
98 0 + (12*3), 2 + (12*3), 4 + (12*3), 5 + (12*3), 7 + (12*3), 9 + (12*3), 11 + (12*3), \
99 0 + (12*4), 2 + (12*4), 4 + (12*4), 5 + (12*4), 7 + (12*4), 9 + (12*4), 11 + (12*4), }
100 97
101// These macros are used to allow play_notes to play an array of indeterminate 98// These macros are used to allow play_notes to play an array of indeterminate
102// length. This works around the limitation of C's sizeof operation on pointers. 99// length. This works around the limitation of C's sizeof operation on pointers.
103// The global float array for the song must be used here. 100// The global float array for the song must be used here.
104#define NOTE_ARRAY_SIZE(x) ((int16_t)(sizeof(x) / (sizeof(x[0])))) 101#define NOTE_ARRAY_SIZE(x) ((int16_t)(sizeof(x) / (sizeof(x[0]))))
105#define PLAY_NOTE_ARRAY(note_array, note_repeat, deprecated_arg) play_notes(&note_array, NOTE_ARRAY_SIZE((note_array)), (note_repeat)); \ 102#define PLAY_NOTE_ARRAY(note_array, note_repeat, deprecated_arg) \
106 _Pragma ("message \"'PLAY_NOTE_ARRAY' macro is deprecated\"") 103 play_notes(&note_array, NOTE_ARRAY_SIZE((note_array)), (note_repeat)); \
104 _Pragma("message \"'PLAY_NOTE_ARRAY' macro is deprecated\"")
107#define PLAY_SONG(note_array) play_notes(&note_array, NOTE_ARRAY_SIZE((note_array)), false) 105#define PLAY_SONG(note_array) play_notes(&note_array, NOTE_ARRAY_SIZE((note_array)), false)
108#define PLAY_LOOP(note_array) play_notes(&note_array, NOTE_ARRAY_SIZE((note_array)), true) 106#define PLAY_LOOP(note_array) play_notes(&note_array, NOTE_ARRAY_SIZE((note_array)), true)
109 107