diff --git a/quantum/audio/voices.c b/quantum/audio/voices.c index 886101187..0b4b463c4 100644 --- a/quantum/audio/voices.c +++ b/quantum/audio/voices.c @@ -101,14 +101,27 @@ float voice_envelope(float frequency) { break; case duty_fifth_down: note_timbre = 0.5; - if ((envelope_index % 5) == 0) + if ((envelope_index % 3) == 0) note_timbre = 0.75; break; case duty_fourth_down: + note_timbre = 0.0; if ((envelope_index % 12) == 0) + note_timbre = 0.75; + if (((envelope_index % 12) % 4) != 1) + note_timbre = 0.75; + break; + case duty_third_down: + note_timbre = 0.5; + if ((envelope_index % 5) == 0) + note_timbre = 0.75; + break; + case duty_fifth_third_down: + note_timbre = 0.5; + if ((envelope_index % 5) == 0) + note_timbre = 0.75; + if ((envelope_index % 3) == 0) note_timbre = 0.25; - else - note_timbre = 0.5; break; default: diff --git a/quantum/audio/voices.h b/quantum/audio/voices.h index cdd14798b..66184c3a2 100644 --- a/quantum/audio/voices.h +++ b/quantum/audio/voices.h @@ -18,6 +18,8 @@ typedef enum { duty_octave_down, duty_fifth_down, duty_fourth_down, + duty_third_down, + duty_fifth_third_down, number_of_voices // important that this is last } voice_type;