summaryrefslogtreecommitdiffstats
path: root/quantum/audio
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/audio')
-rw-r--r--quantum/audio/voices.c17
-rw-r--r--quantum/audio/voices.h2
2 files changed, 18 insertions, 1 deletions
diff --git a/quantum/audio/voices.c b/quantum/audio/voices.c
index 330ffb803..886101187 100644
--- a/quantum/audio/voices.c
+++ b/quantum/audio/voices.c
@@ -94,7 +94,22 @@ float voice_envelope(float frequency) {
case duty_octave_down:
polyphony_rate = 0;
note_timbre = (envelope_index % 2) * .125 + .375 * 2;
- break;
+ if ((envelope_index % 4) == 0)
+ note_timbre = 0.5;
+ if ((envelope_index % 8) == 0)
+ note_timbre = 0;
+ break;
+ case duty_fifth_down:
+ note_timbre = 0.5;
+ if ((envelope_index % 5) == 0)
+ note_timbre = 0.75;
+ break;
+ case duty_fourth_down:
+ if ((envelope_index % 12) == 0)
+ note_timbre = 0.25;
+ else
+ note_timbre = 0.5;
+ break;
default:
break;
diff --git a/quantum/audio/voices.h b/quantum/audio/voices.h
index 2822fb6ac..cdd14798b 100644
--- a/quantum/audio/voices.h
+++ b/quantum/audio/voices.h
@@ -16,6 +16,8 @@ typedef enum {
octave_crunch,
duty_osc,
duty_octave_down,
+ duty_fifth_down,
+ duty_fourth_down,
number_of_voices // important that this is last
} voice_type;