adds delayed vibrato

This commit is contained in:
Jack Humbert 2016-04-26 01:16:47 -04:00
parent 6274a216f8
commit 140b97a1cd
2 changed files with 33 additions and 0 deletions

View File

@ -1,5 +1,6 @@
#include "voices.h" #include "voices.h"
#include "stdlib.h" #include "stdlib.h"
#include "vibrato_lut.h"
// these are imported from audio.c // these are imported from audio.c
extern uint16_t envelope_index; extern uint16_t envelope_index;
@ -99,6 +100,36 @@ float voice_envelope(float frequency) {
if ((envelope_index % 8) == 0) if ((envelope_index % 8) == 0)
note_timbre = 0; note_timbre = 0;
break; break;
case delayed_vibrato:
polyphony_rate = 0;
note_timbre = TIMBRE_50;
#define VOICE_VIBRATO_DELAY 150
#define VOICE_VIBRATO_SPEED 50
switch (compensated_index) {
case 0 ... VOICE_VIBRATO_DELAY:
break;
default:
frequency = frequency * VIBRATO_LUT[(int)fmod((((float)compensated_index - (VOICE_VIBRATO_DELAY + 1))/1000*VOICE_VIBRATO_SPEED), VIBRATO_LUT_LENGTH)];
break;
}
break;
// case delayed_vibrato_octave:
// polyphony_rate = 0;
// if ((envelope_index % 2) == 1) {
// note_timbre = 0.55;
// } else {
// note_timbre = 0.45;
// }
// #define VOICE_VIBRATO_DELAY 150
// #define VOICE_VIBRATO_SPEED 50
// switch (compensated_index) {
// case 0 ... VOICE_VIBRATO_DELAY:
// break;
// default:
// frequency = frequency * VIBRATO_LUT[(int)fmod((((float)compensated_index - (VOICE_VIBRATO_DELAY + 1))/1000*VOICE_VIBRATO_SPEED), VIBRATO_LUT_LENGTH)];
// break;
// }
// break;
// case duty_fifth_down: // case duty_fifth_down:
// note_timbre = 0.5; // note_timbre = 0.5;
// if ((envelope_index % 3) == 0) // if ((envelope_index % 3) == 0)

View File

@ -16,6 +16,8 @@ typedef enum {
octave_crunch, octave_crunch,
duty_osc, duty_osc,
duty_octave_down, duty_octave_down,
delayed_vibrato,
// delayed_vibrato_octave,
// duty_fifth_down, // duty_fifth_down,
// duty_fourth_down, // duty_fourth_down,
// duty_third_down, // duty_third_down,