summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--quantum/audio/voices.c15
-rw-r--r--quantum/audio/voices.h2
2 files changed, 17 insertions, 0 deletions
diff --git a/quantum/audio/voices.c b/quantum/audio/voices.c
index 98631f0cb4..8b3978f3d8 100644
--- a/quantum/audio/voices.c
+++ b/quantum/audio/voices.c
@@ -84,6 +84,21 @@ float voice_envelope(float frequency) {
case duty_octave_down:
polyphony_rate = 0;
note_timbre = (envelope_index % 2) * .125 + .375 * 2;
+ 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;
}
diff --git a/quantum/audio/voices.h b/quantum/audio/voices.h
index 5aa99f4b1d..718671f77f 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;