diff options
Diffstat (limited to 'quantum/audio/audio.h')
| -rw-r--r-- | quantum/audio/audio.h | 26 |
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 @@ | |||
| 39 | typedef union { | 39 | typedef 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); | |||
| 58 | void increase_vibrato_rate(float change); | 58 | void increase_vibrato_rate(float change); |
| 59 | void decrease_vibrato_rate(float change); | 59 | void decrease_vibrato_rate(float change); |
| 60 | 60 | ||
| 61 | #ifdef VIBRATO_STRENGTH_ENABLE | 61 | # ifdef VIBRATO_STRENGTH_ENABLE |
| 62 | 62 | ||
| 63 | void set_vibrato_strength(float strength); | 63 | void set_vibrato_strength(float strength); |
| 64 | void increase_vibrato_strength(float change); | 64 | void increase_vibrato_strength(float change); |
| 65 | void decrease_vibrato_strength(float change); | 65 | void 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); | |||
| 85 | void audio_init(void); | 85 | void audio_init(void); |
| 86 | 86 | ||
| 87 | #ifdef PWM_AUDIO | 87 | #ifdef PWM_AUDIO |
| 88 | void play_sample(uint8_t * s, uint16_t l, bool r); | 88 | void play_sample(uint8_t* s, uint16_t l, bool r); |
| 89 | #endif | 89 | #endif |
| 90 | void play_note(float freq, int vol); | 90 | void play_note(float freq, int vol); |
| 91 | void stop_note(float freq); | 91 | void stop_note(float freq); |
| 92 | void stop_all_notes(void); | 92 | void stop_all_notes(void); |
| 93 | void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat); | 93 | void 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(¬e_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(¬e_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(¬e_array, NOTE_ARRAY_SIZE((note_array)), false) | 105 | #define PLAY_SONG(note_array) play_notes(¬e_array, NOTE_ARRAY_SIZE((note_array)), false) |
| 108 | #define PLAY_LOOP(note_array) play_notes(¬e_array, NOTE_ARRAY_SIZE((note_array)), true) | 106 | #define PLAY_LOOP(note_array) play_notes(¬e_array, NOTE_ARRAY_SIZE((note_array)), true) |
| 109 | 107 | ||
