M quantum/audio/voices.c => quantum/audio/voices.c +15 -0
@@ 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;
}
M quantum/audio/voices.h => quantum/audio/voices.h +2 -0
@@ 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;