From 36c95f1a1649c48a47708ef4e4bd7daa9ba00497 Mon Sep 17 00:00:00 2001 From: Spencer Russell Date: Thu, 26 Jun 2014 16:01:06 -0500 Subject: [PATCH] adds constant offset ability. No tests! --- src/nodes.jl | 16 +++++++++++++++- src/operators.jl | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/nodes.jl b/src/nodes.jl index 274a595..648b7c5 100644 --- a/src/nodes.jl +++ b/src/nodes.jl @@ -130,13 +130,27 @@ type GainRenderer <: AudioRenderer end function render(node::GainRenderer, device_input::AudioBuf, info::DeviceInfo) - input = render(node.in_node, device_input, info) + input = render(node.in_node, device_input, info)::AudioBuf return input .* node.gain end typealias Gain AudioNode{GainRenderer} export Gain +#### Offset #### +type OffsetRenderer <: AudioRenderer + in_node::AudioNode + offset::Float32 +end + +function render(node::OffsetRenderer, device_input::AudioBuf, info::DeviceInfo) + input = render(node.in_node, device_input, info)::AudioBuf + return input .+ node.offset +end + +typealias Offset AudioNode{OffsetRenderer} +export Offset + #### Array Player #### diff --git a/src/operators.jl b/src/operators.jl index fa3ca7a..b5fa9d8 100644 --- a/src/operators.jl +++ b/src/operators.jl @@ -11,3 +11,5 @@ +(in1::NullNode, in2::NullNode) = in1 +(in1::AudioNode, in2::NullNode) = in1 +(in1::NullNode, in2::AudioNode) = in2 ++(in1::AudioNode, in2::Real) = Offset(in1, in2) ++(in1::Real, in2::AudioNode) = Offset(in1, in2)