removes buffer allocation in Offset render func
This commit is contained in:
parent
d5ae9237d6
commit
7cfdff73ac
1 changed files with 18 additions and 3 deletions
21
src/nodes.jl
21
src/nodes.jl
|
@ -139,8 +139,10 @@ function render(node::GainRenderer{Float32},
|
||||||
if length(node.buf) != length(input)
|
if length(node.buf) != length(input)
|
||||||
resize!(node.buf, length(input))
|
resize!(node.buf, length(input))
|
||||||
end
|
end
|
||||||
for i in 1:length(input)
|
i = 1
|
||||||
|
while i <= length(input)
|
||||||
node.buf[i] = input[i] * node.in2
|
node.buf[i] = input[i] * node.in2
|
||||||
|
i += 1
|
||||||
end
|
end
|
||||||
return node.buf
|
return node.buf
|
||||||
end
|
end
|
||||||
|
@ -154,8 +156,10 @@ function render(node::GainRenderer{AudioNode},
|
||||||
if length(node.buf) != block_size
|
if length(node.buf) != block_size
|
||||||
resize!(node.buf, block_size)
|
resize!(node.buf, block_size)
|
||||||
end
|
end
|
||||||
for i in 1:block_size
|
i = 1
|
||||||
|
while i <= block_size
|
||||||
node.buf[i] = in1_data[i] * in2_data[i]
|
node.buf[i] = in1_data[i] * in2_data[i]
|
||||||
|
i += 1
|
||||||
end
|
end
|
||||||
return node.buf
|
return node.buf
|
||||||
end
|
end
|
||||||
|
@ -169,11 +173,22 @@ export Gain
|
||||||
type OffsetRenderer <: AudioRenderer
|
type OffsetRenderer <: AudioRenderer
|
||||||
in_node::AudioNode
|
in_node::AudioNode
|
||||||
offset::Float32
|
offset::Float32
|
||||||
|
buf::AudioBuf
|
||||||
|
|
||||||
|
OffsetRenderer(in_node, offset) = new(in_node, offset, AudioSample[])
|
||||||
end
|
end
|
||||||
|
|
||||||
function render(node::OffsetRenderer, device_input::AudioBuf, info::DeviceInfo)
|
function render(node::OffsetRenderer, device_input::AudioBuf, info::DeviceInfo)
|
||||||
input = render(node.in_node, device_input, info)::AudioBuf
|
input = render(node.in_node, device_input, info)::AudioBuf
|
||||||
return input .+ node.offset
|
if length(node.buf) != length(input)
|
||||||
|
resize!(node.buf, length(input))
|
||||||
|
end
|
||||||
|
i = 1
|
||||||
|
while i <= length(input)
|
||||||
|
node.buf[i] = input[i] + node.offset
|
||||||
|
i += 1
|
||||||
|
end
|
||||||
|
return node.buf
|
||||||
end
|
end
|
||||||
|
|
||||||
typealias Offset AudioNode{OffsetRenderer}
|
typealias Offset AudioNode{OffsetRenderer}
|
||||||
|
|
Loading…
Reference in a new issue