ADELAY_TIME,
ADELAY_DIVISOR,
ADELAY_WETDRY,
+ ADELAY_FEEDBACK,
ADELAY_LPF,
ADELAY_GAIN,
float* time;
float* divisor;
float* wetdry;
+ float* feedback;
float* lpf;
float* gain;
float srate;
float bpm;
float beatunit;
- int beatuniti;
int bpmvalid;
uint32_t posz;
int next;
float fbstate;
float lpfold;
+ float feedbackold;
float divisorold;
float gainold;
float invertold;
case ADELAY_WETDRY:
adelay->wetdry = (float*)data;
break;
+ case ADELAY_FEEDBACK:
+ adelay->feedback = (float*)data;
+ break;
case ADELAY_LPF:
adelay->lpf = (float*)data;
break;
if (*(adelay->time) != adelay->timeold) {
recalc = 1;
}
+ if (*(adelay->feedback) != adelay->feedbackold) {
+ recalc = 1;
+ }
if (*(adelay->divisor) != adelay->divisorold) {
recalc = 1;
}
xfade = 0.f;
for (i = 0; i < n_samples; i++) {
in = input[i];
- adelay->z[adelay->posz] = in; // + feedb / 100. * fbstate;
+ adelay->z[adelay->posz] = in + *adelay->feedback / 100. * adelay->fbstate;
adelay->fbstate = 0.f;
int p = adelay->posz - adelay->tap[adelay->active]; // active line
if (p<0) p += MAX_DELAY;
}
}
adelay->lpfold = *(adelay->lpf);
+ adelay->feedbackold = *(adelay->feedback);
adelay->divisorold = *(adelay->divisor);
adelay->gainold = *(adelay->gain);
adelay->invertold = *(adelay->inv);
[
a lv2:InputPort, lv2:ControlPort ;
lv2:index 8 ;
+ lv2:name "Feedback" ;
+ lv2:symbol "feedback" ;
+ lv2:default 20.000000 ;
+ lv2:minimum 0.000000 ;
+ lv2:maximum 90.000000 ;
+ unit:unit unit:pc ;
+ ] ,
+ [
+ a lv2:InputPort, lv2:ControlPort ;
+ lv2:index 9 ;
lv2:name "LPF" ;
lv2:symbol "lpf" ;
lv2:default 6000.000000 ;
] ,
[
a lv2:InputPort, lv2:ControlPort ;
- lv2:index 9 ;
+ lv2:index 10 ;
lv2:name "Output Gain" ;
lv2:symbol "gain" ;
lv2:default 0.000000 ;
] ,
[
a lv2:OutputPort, lv2:ControlPort ;
- lv2:index 10 ;
+ lv2:index 11 ;
lv2:name "Delaytime" ;
lv2:symbol "delaytime" ;
lv2:default 0.000000 ;