process method
void
process({})
Implementation
void process(
{required List<double> inputLeft,
required List<double> inputRight,
required List<double> outputLeft,
required List<double> outputRight}) {
for (int t = 0; t < outputLeft.length; t++) {
double position = _bufferIndexL - _delayTable[_delayTableIndexL];
if (position < 0.0) {
position += _bufferL.length;
}
int index1 = position.toInt();
int index2 = index1 + 1;
if (index2 == _bufferL.length) {
index2 = 0;
}
double x1 = _bufferL[index1];
double x2 = _bufferL[index2];
double a = position - index1;
outputLeft[t] = x1 + a * (x2 - x1);
_bufferL[_bufferIndexL] = inputLeft[t];
_bufferIndexL++;
if (_bufferIndexL == _bufferL.length) {
_bufferIndexL = 0;
}
_delayTableIndexL++;
if (_delayTableIndexL == _delayTable.length) {
_delayTableIndexL = 0;
}
}
for (int t = 0; t < outputRight.length; t++) {
double position = _bufferIndexR - _delayTable[_delayTableIndexR];
if (position < 0.0) {
position += _bufferR.length;
}
int index1 = position.toInt();
int index2 = index1 + 1;
if (index2 == _bufferR.length) {
index2 = 0;
}
double x1 = _bufferR[index1];
double x2 = _bufferR[index2];
double a = position - index1;
outputRight[t] = x1 + a * (x2 - x1);
_bufferR[_bufferIndexR] = inputRight[t];
_bufferIndexR++;
if (_bufferIndexR == _bufferR.length) {
_bufferIndexR = 0;
}
_delayTableIndexR++;
if (_delayTableIndexR == _delayTable.length) {
_delayTableIndexR = 0;
}
}
}