tweaks TestNode so it doesn't allocate substantially
This commit is contained in:
parent
fab2f8ea8d
commit
b8802449c9
1 changed files with 17 additions and 7 deletions
|
@ -8,20 +8,30 @@ import AudioIO.DeviceInfo
|
||||||
import AudioIO.render
|
import AudioIO.render
|
||||||
|
|
||||||
# A TestNode just renders out 1:buf_size each frame
|
# A TestNode just renders out 1:buf_size each frame
|
||||||
type TestRenderer <: AudioRenderer end
|
type TestRenderer <: AudioRenderer
|
||||||
|
buf::AudioBuf
|
||||||
|
TestRenderer(buf_size::Integer) = new(AudioSample[1:buf_size])
|
||||||
|
end
|
||||||
|
|
||||||
typealias TestNode AudioNode{TestRenderer}
|
typealias TestNode AudioNode{TestRenderer}
|
||||||
TestNode() = TestNode(TestRenderer())
|
TestNode(buf_size) = TestNode(TestRenderer(buf_size))
|
||||||
|
|
||||||
function render(node::TestRenderer,
|
function render(node::TestRenderer,
|
||||||
device_input::AudioBuf,
|
device_input::AudioBuf,
|
||||||
info::DeviceInfo)
|
info::DeviceInfo)
|
||||||
return AudioSample[1:info.buf_size]
|
return node.buf
|
||||||
end
|
end
|
||||||
|
|
||||||
test_info = DeviceInfo(44100, 512)
|
test_info = DeviceInfo(44100, 512)
|
||||||
dev_input = zeros(AudioSample, test_info.buf_size)
|
dev_input = zeros(AudioSample, test_info.buf_size)
|
||||||
|
|
||||||
|
# first validate that the TestNode doesn't allocate so it doesn't mess up our
|
||||||
|
# other tests
|
||||||
|
test = TestNode(test_info.buf_size)
|
||||||
|
# JIT
|
||||||
|
render(test, dev_input, test_info)
|
||||||
|
@test ((@allocated render(test, dev_input, test_info)) < 20)
|
||||||
|
|
||||||
#### AudioMixer Tests ####
|
#### AudioMixer Tests ####
|
||||||
|
|
||||||
# TODO: there should be a setup/teardown mechanism and some way to isolate
|
# TODO: there should be a setup/teardown mechanism and some way to isolate
|
||||||
|
@ -32,13 +42,13 @@ mix = AudioMixer()
|
||||||
render_output = render(mix, dev_input, test_info)
|
render_output = render(mix, dev_input, test_info)
|
||||||
@test render_output == AudioSample[]
|
@test render_output == AudioSample[]
|
||||||
|
|
||||||
testnode = TestNode()
|
testnode = TestNode(test_info.buf_size)
|
||||||
mix = AudioMixer([testnode])
|
mix = AudioMixer([testnode])
|
||||||
render_output = render(mix, dev_input, test_info)
|
render_output = render(mix, dev_input, test_info)
|
||||||
@test render_output == AudioSample[1:test_info.buf_size]
|
@test render_output == AudioSample[1:test_info.buf_size]
|
||||||
|
|
||||||
test1 = TestNode()
|
test1 = TestNode(test_info.buf_size)
|
||||||
test2 = TestNode()
|
test2 = TestNode(test_info.buf_size)
|
||||||
mix = AudioMixer([test1, test2])
|
mix = AudioMixer([test1, test2])
|
||||||
render_output = render(mix, dev_input, test_info)
|
render_output = render(mix, dev_input, test_info)
|
||||||
# make sure the two inputs are being added together
|
# make sure the two inputs are being added together
|
||||||
|
@ -115,7 +125,7 @@ render_output = render(player, dev_input, test_info)
|
||||||
|
|
||||||
info("Testing Gain...")
|
info("Testing Gain...")
|
||||||
|
|
||||||
gained = TestNode() * 0.75
|
gained = TestNode(test_info.buf_size) * 0.75
|
||||||
render_output = render(gained, dev_input, test_info)
|
render_output = render(gained, dev_input, test_info)
|
||||||
@test render_output == 0.75 * AudioSample[1:test_info.buf_size]
|
@test render_output == 0.75 * AudioSample[1:test_info.buf_size]
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue