summary refs log tree commit diff
path: root/quantum
diff options
context:
space:
mode:
Diffstat (limited to 'quantum')
-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;