diff options
author | Ofer Plesser <plesserofer@gmail.com> | 2016-12-16 20:52:51 +0100 |
---|---|---|
committer | Ofer Plesser <plesserofer@gmail.com> | 2016-12-16 20:52:51 +0100 |
commit | 6a462c818cc35ad5a51576bee96077d9614b1a8d (patch) | |
tree | cda535a4e64bd0183b800b6abe87005c3f98a74f /quantum | |
parent | 6e7cfa83b9424061914793b02757fa4ec75b356b (diff) | |
parent | b8e13167c813b59ebd6f4484dccae37bde2bfdba (diff) | |
download | qmk_firmware-6a462c818cc35ad5a51576bee96077d9614b1a8d.tar.gz qmk_firmware-6a462c818cc35ad5a51576bee96077d9614b1a8d.tar.xz |
Merge branch 'master' into feature/combos
Diffstat (limited to 'quantum')
-rw-r--r-- | quantum/audio/voices.c | 23 | ||||
-rw-r--r-- | quantum/audio/voices.h | 1 | ||||
-rw-r--r-- | quantum/process_keycode/process_music.c | 6 |
3 files changed, 26 insertions, 4 deletions
diff --git a/quantum/audio/voices.c b/quantum/audio/voices.c index 6d4172a06..19f7b646e 100644 --- a/quantum/audio/voices.c +++ b/quantum/audio/voices.c @@ -18,7 +18,7 @@ void voice_iterate() { } void voice_deiterate() { - voice = (voice - 1) % number_of_voices; + voice = (voice - 1 + number_of_voices) % number_of_voices; } float voice_envelope(float frequency) { @@ -31,6 +31,27 @@ float voice_envelope(float frequency) { polyphony_rate = 0; break; + case something: + polyphony_rate = 0; + switch (compensated_index) { + case 0 ... 9: + note_timbre = TIMBRE_12; + break; + + case 10 ... 19: + note_timbre = TIMBRE_25; + break; + + case 20 ... 200: + note_timbre = .25 + .125 + pow(((float)compensated_index - 20) / (200 - 20), 2)*.125; + break; + + default: + note_timbre = .25; + break; + } + break; + case butts_fader: polyphony_rate = 0; switch (compensated_index) { diff --git a/quantum/audio/voices.h b/quantum/audio/voices.h index b2495b23b..b43def3d7 100644 --- a/quantum/audio/voices.h +++ b/quantum/audio/voices.h @@ -11,6 +11,7 @@ float voice_envelope(float frequency); typedef enum { default_voice, + something, butts_fader, octave_crunch, duty_osc, diff --git a/quantum/process_keycode/process_music.c b/quantum/process_keycode/process_music.c index 2d52e47a7..bae43943e 100644 --- a/quantum/process_keycode/process_music.c +++ b/quantum/process_keycode/process_music.c @@ -1,8 +1,8 @@ #include "process_music.h" bool music_activated = false; -uint8_t starting_note = 0x0C; -int offset = 7; +uint8_t music_starting_note = 0x0C; +int music_offset = 7; // music sequencer static bool music_sequence_recording = false; @@ -115,7 +115,7 @@ bool process_music(uint16_t keycode, keyrecord_t *record) { return false; } - float freq = ((float)220.0)*pow(2.0, -5.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)); + float freq = ((float)220.0)*pow(2.0, -5.0)*pow(2.0,(music_starting_note + SCALE[record->event.key.col + music_offset])/12.0+(MATRIX_ROWS - record->event.key.row)); if (record->event.pressed) { play_note(freq, 0xF); if (music_sequence_recording) { |