summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Humbert <jack.humb@gmail.com>2016-04-21 23:10:47 -0400
committerJack Humbert <jack.humb@gmail.com>2016-04-21 23:10:49 -0400
commit7b3f212500210ae85063b043952b5b3ef6988ad6 (patch)
tree5a4f38677e7e4c5babc03272562a89e5138af77f
parentfa40e91b5649e4a7aa833f3ae203169386c02721 (diff)
downloadqmk_firmware-7b3f212500210ae85063b043952b5b3ef6988ad6.tar.gz
qmk_firmware-7b3f212500210ae85063b043952b5b3ef6988ad6.zip
adds more voices, fixes macro redefines
-rw-r--r--quantum/audio/voices.c12
-rw-r--r--quantum/audio/voices.h1
2 files changed, 9 insertions, 4 deletions
diff --git a/quantum/audio/voices.c b/quantum/audio/voices.c
index 92ada47f7b..98631f0cb4 100644
--- a/quantum/audio/voices.c
+++ b/quantum/audio/voices.c
@@ -72,15 +72,19 @@ float voice_envelope(float frequency) {
polyphony_rate = 0;
switch (compensated_index) {
default:
- #define SPEED 10
- #define AMP .75
+ #define OCS_SPEED 10
+ #define OCS_AMP .25
// sine wave is slow
- // note_timbre = (sin((float)compensated_index/10000*SPEED) * AMP / 2) + .5;
+ // note_timbre = (sin((float)compensated_index/10000*OCS_SPEED) * OCS_AMP / 2) + .5;
// triangle wave is a bit faster
- note_timbre = (float)abs((compensated_index*SPEED % 3000) - 1500) * ( AMP / 1500 ) + (1 - AMP) / 2;
+ note_timbre = (float)abs((compensated_index*OCS_SPEED % 3000) - 1500) * ( OCS_AMP / 1500 ) + (1 - OCS_AMP) / 2;
break;
}
break;
+ case duty_octave_down:
+ polyphony_rate = 0;
+ note_timbre = (envelope_index % 2) * .125 + .375 * 2;
+ break;
}
return frequency;
diff --git a/quantum/audio/voices.h b/quantum/audio/voices.h
index 44c5066b55..5aa99f4b1d 100644
--- a/quantum/audio/voices.h
+++ b/quantum/audio/voices.h
@@ -15,6 +15,7 @@ typedef enum {
butts_fader,
octave_crunch,
duty_osc,
+ duty_octave_down,
number_of_voices // important that this is last
} voice_type;