summaryrefslogtreecommitdiffstats
path: root/src/server/InputPort.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/InputPort.cpp')
-rw-r--r--src/server/InputPort.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/InputPort.cpp b/src/server/InputPort.cpp
index 7754a809..3bc1ed95 100644
--- a/src/server/InputPort.cpp
+++ b/src/server/InputPort.cpp
@@ -86,7 +86,7 @@ InputPort::get_buffers(BufferFactory& bufs,
}
return false;
- } else if (num_arcs == 1) {
+ } else if (num_arcs == 1 && !is_a(PortType::ATOM)) {
if (real_time) {
if (!_arcs.front().must_mix()) {
// Single non-mixing connection, use buffers directly
@@ -104,6 +104,9 @@ InputPort::get_buffers(BufferFactory& bufs,
voices->at(v).buffer = bufs.get_buffer(
buffer_type(), _value.type(), _buffer_size, real_time);
voices->at(v).buffer->clear();
+ if (_value.is_valid()) {
+ voices->at(v).buffer->set_value(_value);
+ }
}
return true;
}
@@ -202,6 +205,7 @@ InputPort::pre_run(RunContext& context)
// Then mix them into our buffer for this voice
mix(context, buffer(v).get(), srcs, n_srcs);
+ update_values(context.offset(), v);
}
}
}