]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Merge branch 'personal_atomic_planck' of github.com:IBNobody/qmk_firmware
authorJack Humbert <jack.humb@gmail.com>
Sun, 17 Apr 2016 14:56:12 +0000 (10:56 -0400)
committerJack Humbert <jack.humb@gmail.com>
Sun, 17 Apr 2016 14:56:12 +0000 (10:56 -0400)
1  2 
quantum/audio.c
quantum/audio.h

diff --cc quantum/audio.c
index 6bd6532a3abcec328a5bd0dda520642d6ec957b6,9b9589f1337e235689080f33a8c2c8080e618384..855e97361b3a67335ad15237243b49b78fb530d0
@@@ -350,9 -353,10 +353,9 @@@ if (audio_config.enable) 
  
      if (note)
          stop_all_notes();
 -    notes = true;
  
      notes_pointer = np;
-     notes_length = n_length;
+     notes_count = n_count;
      notes_repeat = n_repeat;
      notes_rest = n_rest;
  
@@@ -436,7 -439,34 +439,35 @@@ if (audio_config.enable && voices < 8) 
          TCCR3A |= _BV(COM3A1);
      #endif
  
 +    note = true;
  }
  
- }
+ }
+ void set_timbre(float timbre)
+ {
+       note_timbre = timbre;
+ }
+ void set_tempo(float tempo)
+ {
+       note_tempo = tempo;
+ }
+ void decrease_tempo(uint8_t tempo_change)
+ {
+       note_tempo += (float) tempo_change;
+ }
+ void increase_tempo(uint8_t tempo_change)
+ {
+       if (note_tempo - (float) tempo_change < 10)
+               {
+                       note_tempo = 10;
+               }
+       else
+               {
+               note_tempo -= (float) tempo_change;
+               }
+ }
diff --cc quantum/audio.h
index e1bc23ffed35fc25fe3b70e8615783aa37848b88,8012aa6bf19694f76bea225ade645257da0fe0e2..3aba8370ac7f85792b755ca58a45109437d54dbd
@@@ -24,15 -24,13 +24,19 @@@ void play_note(double freq, int vol)
  void stop_note(double freq);
  void stop_all_notes(void);
  void init_notes(void);
- void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat, float n_rest);
+ void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest);
  
+ void set_timbre(float timbre);
+ 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.