From: IBNobody Date: Sun, 17 Apr 2016 17:55:19 +0000 (-0500) Subject: Merge remote-tracking branch 'remotes/jackhumbert/master' into personal_atomic_planck X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=3103ea542f0039637a1a266df79a97a7a13fa6b4;p=qmk_firmware.git Merge remote-tracking branch 'remotes/jackhumbert/master' into personal_atomic_planck --- 3103ea542f0039637a1a266df79a97a7a13fa6b4 diff --cc quantum/audio.c index 58b9ab76b,6bd6532a3..3ccd5ab9b --- a/quantum/audio.c +++ b/quantum/audio.c @@@ -353,10 -350,9 +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; @@@ -439,34 -436,7 +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 8012aa6bf,e1bc23ffe..3aba8370a --- a/quantum/audio.h +++ b/quantum/audio.h @@@ -24,13 -24,15 +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.