summary refs log tree commit diff
path: root/quantum
diff options
context:
space:
mode:
authorIBNobody <ibnobody@gmail.com>2016-04-17 12:55:19 -0500
committerIBNobody <ibnobody@gmail.com>2016-04-17 12:55:19 -0500
commit3103ea542f0039637a1a266df79a97a7a13fa6b4 (patch)
tree24a840d4a80678ec24a0f5e5a51e1b217d0568fa /quantum
parentd5b72e7bde5ede25f7d5699b50b7d9eb6f31ba92 (diff)
parenta67d425f4d5278595e7ab785a0f246b83fb1a09f (diff)
Merge remote-tracking branch 'remotes/jackhumbert/master' into personal_atomic_planck
Diffstat (limited to 'quantum')
-rw-r--r--quantum/audio.c5
-rw-r--r--quantum/audio.h6
-rw-r--r--quantum/keymap_common.c16
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