diff options
Diffstat (limited to 'quantum')
-rw-r--r-- | quantum/audio/voices.c | 17 | ||||
-rw-r--r-- | quantum/audio/voices.h | 2 |
2 files changed, 18 insertions, 1 deletions
diff --git a/quantum/audio/voices.c b/quantum/audio/voices.c index 330ffb803a..8861011871 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 2822fb6acc..cdd14798b1 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; |