From: Jack Humbert Date: Sun, 17 Apr 2016 14:56:12 +0000 (-0400) Subject: Merge branch 'personal_atomic_planck' of github.com:IBNobody/qmk_firmware X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=319fbe344b81081ced4c44792a7b868d5400edbb;p=qmk_firmware.git Merge branch 'personal_atomic_planck' of github.com:IBNobody/qmk_firmware --- 319fbe344b81081ced4c44792a7b868d5400edbb diff --cc quantum/audio.c index 6bd6532a3,9b9589f13..855e97361 --- a/quantum/audio.c +++ b/quantum/audio.c @@@ -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 e1bc23ffe,8012aa6bf..3aba8370a --- a/quantum/audio.h +++ b/quantum/audio.h @@@ -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.