diff options
Diffstat (limited to 'quantum')
| -rw-r--r-- | quantum/audio.c | 5 | ||||
| -rw-r--r-- | quantum/audio.h | 6 | ||||
| -rw-r--r-- | quantum/keymap_common.c | 16 | 
3 files changed, 18 insertions, 9 deletions
| diff --git a/quantum/audio.c b/quantum/audio.c index 58b9ab76bf..3ccd5ab9bc 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -353,7 +353,6 @@ if (audio_config.enable) {      if (note)          stop_all_notes(); -    notes = true;      notes_pointer = np;      notes_count = n_count; @@ -378,6 +377,8 @@ if (audio_config.enable) {          TIMSK3 |= _BV(OCIE3A);          TCCR3A |= _BV(COM3A1);      #endif + +    notes = true;  }  } @@ -407,7 +408,6 @@ if (audio_config.enable && voices < 8) {      if (notes)          stop_all_notes(); -    note = true;      #ifdef PWM_AUDIO          freq = freq / SAMPLE_RATE;      #endif @@ -439,6 +439,7 @@ if (audio_config.enable && voices < 8) {          TCCR3A |= _BV(COM3A1);      #endif +    note = true;  }  } diff --git a/quantum/audio.h b/quantum/audio.h index 8012aa6bf1..3aba8370ac 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -31,6 +31,12 @@ void set_tempo(float tempo);  void increase_tempo(uint8_t tempo_change);  void decrease_tempo(uint8_t tempo_change); +#define SCALE (int []){ 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), } +  // These macros are used to allow play_notes to play an array of indeterminate  // length. This works around the limitation of C's sizeof operation on pointers.  // The global float array for the song must be used here. diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index ce1d007f3a..c705b7a730 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -34,12 +34,14 @@ extern keymap_config_t keymap_config;  #include <inttypes.h>  #ifdef AUDIO_ENABLE      #include "audio.h" - -    float goodbye[][2] = { -        {440.0*pow(2.0,(31)/12.0), 8}, -        {440.0*pow(2.0,(24)/12.0), 8}, -        {440.0*pow(2.0,(19)/12.0), 12}, -    }; +    #ifndef TONE_GOODBYE +    #define TONE_GOODBYE { \ +        {440.0*pow(2.0,(31)/12.0), 8}, \ +        {440.0*pow(2.0,(24)/12.0), 8}, \ +        {440.0*pow(2.0,(19)/12.0), 12}, \ +    }  +    #endif +    float tone_goodbye[][2] = TONE_GOODBYE;  #endif  static action_t keycode_to_action(uint16_t keycode); @@ -190,7 +192,7 @@ static action_t keycode_to_action(uint16_t keycode)          case RESET: ; // RESET is 0x5000, which is why this is here              clear_keyboard();              #ifdef AUDIO_ENABLE -                PLAY_NOTE_ARRAY(goodbye, false, 0); +                PLAY_NOTE_ARRAY(tone_goodbye, false, 0);              #endif              _delay_ms(250);              #ifdef ATREUS_ASTAR | 
