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;
}
}
}