68 lines
2.0 KiB
Haxe
68 lines
2.0 KiB
Haxe
|
package auratests.dsp;
|
||
|
|
||
|
import utest.Assert;
|
||
|
|
||
|
import aura.Aura;
|
||
|
import aura.dsp.FractionalDelayLine;
|
||
|
import aura.types.AudioBuffer;
|
||
|
import aura.utils.TestSignals;
|
||
|
|
||
|
@:access(aura.dsp.FractionalDelayLine)
|
||
|
class TestFractionalDelayLine extends utest.Test {
|
||
|
var audioBuffer: AudioBuffer;
|
||
|
var delayLine: FractionalDelayLine;
|
||
|
|
||
|
function setup() {
|
||
|
audioBuffer = new AudioBuffer(2, 8);
|
||
|
delayLine = new FractionalDelayLine(2, 8);
|
||
|
}
|
||
|
|
||
|
function test_zeroDelayTime_noDelay() {
|
||
|
TestSignals.fillUnitImpulse(audioBuffer.getChannelView(0));
|
||
|
TestSignals.fillUnitImpulse(audioBuffer.getChannelView(1));
|
||
|
|
||
|
delayLine.at_setDelayLength(Left, 0.0);
|
||
|
delayLine.at_setDelayLength(Right, 0.0);
|
||
|
|
||
|
delayLine.process(audioBuffer);
|
||
|
|
||
|
Assert.floatEquals(1.0, audioBuffer.getChannelView(0)[0]);
|
||
|
Assert.floatEquals(0.0, audioBuffer.getChannelView(0)[1]);
|
||
|
|
||
|
Assert.floatEquals(1.0, audioBuffer.getChannelView(1)[0]);
|
||
|
Assert.floatEquals(0.0, audioBuffer.getChannelView(1)[1]);
|
||
|
}
|
||
|
|
||
|
function test_integralDelayTime_independentChannels() {
|
||
|
TestSignals.fillUnitImpulse(audioBuffer.getChannelView(0));
|
||
|
TestSignals.fillUnitImpulse(audioBuffer.getChannelView(1));
|
||
|
|
||
|
delayLine.at_setDelayLength(Left, 1.0);
|
||
|
delayLine.at_setDelayLength(Right, 3.0);
|
||
|
|
||
|
delayLine.process(audioBuffer);
|
||
|
|
||
|
Assert.floatEquals(0.0, audioBuffer.getChannelView(0)[0]);
|
||
|
Assert.floatEquals(1.0, audioBuffer.getChannelView(0)[1]);
|
||
|
|
||
|
Assert.floatEquals(0.0, audioBuffer.getChannelView(1)[0]);
|
||
|
Assert.floatEquals(1.0, audioBuffer.getChannelView(1)[3]);
|
||
|
}
|
||
|
|
||
|
function test_floatDelayTime_independentChannels() {
|
||
|
TestSignals.fillUnitImpulse(audioBuffer.getChannelView(0));
|
||
|
TestSignals.fillUnitImpulse(audioBuffer.getChannelView(1));
|
||
|
|
||
|
delayLine.at_setDelayLength(Left, 0.8);
|
||
|
delayLine.at_setDelayLength(Right, 3.4);
|
||
|
|
||
|
delayLine.process(audioBuffer);
|
||
|
|
||
|
Assert.floatEquals(0.2, audioBuffer.getChannelView(0)[0]);
|
||
|
Assert.floatEquals(0.8, audioBuffer.getChannelView(0)[1]);
|
||
|
|
||
|
Assert.floatEquals(0.6, audioBuffer.getChannelView(1)[3]);
|
||
|
Assert.floatEquals(0.4, audioBuffer.getChannelView(1)[4]);
|
||
|
}
|
||
|
}
|