diff options
author | Ofer Plesser <plesserofer@gmail.com> | 2016-12-16 21:52:51 +0200 |
---|---|---|
committer | Ofer Plesser <plesserofer@gmail.com> | 2016-12-16 21:52:51 +0200 |
commit | 6a462c818cc35ad5a51576bee96077d9614b1a8d (patch) | |
tree | cda535a4e64bd0183b800b6abe87005c3f98a74f /quantum/audio | |
parent | 6e7cfa83b9424061914793b02757fa4ec75b356b (diff) | |
parent | b8e13167c813b59ebd6f4484dccae37bde2bfdba (diff) | |
download | qmk_firmware-6a462c818cc35ad5a51576bee96077d9614b1a8d.tar.gz qmk_firmware-6a462c818cc35ad5a51576bee96077d9614b1a8d.zip |
Merge branch 'master' into feature/combos
Diffstat (limited to 'quantum/audio')
-rw-r--r-- | quantum/audio/voices.c | 23 | ||||
-rw-r--r-- | quantum/audio/voices.h | 1 |
2 files changed, 23 insertions, 1 deletions
diff --git a/quantum/audio/voices.c b/quantum/audio/voices.c index 6d4172a06c..19f7b646ef 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 b2495b23b5..b43def3d7d 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, |