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