MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ mix() [2/2]

MAYAFLUX_API std::vector< double > MayaFlux::mix ( const std::vector< std::vector< double > > &  streams)

Mix multiple data streams with equal weighting.

Parameters
streamsVector of data streams to mix
Returns
Mixed output data (average of all streams)

Definition at line 1019 of file Yantra.cpp.

1020{
1021 if (streams.empty())
1022 return {};
1023
1024 size_t max_length = 0;
1025 for (const auto& stream : streams) {
1026 max_length = std::max(max_length, stream.size());
1027 }
1028
1029 std::vector<double> result(max_length, 0.0);
1030
1031 for (const auto& stream : streams) {
1032 for (size_t i = 0; i < stream.size(); ++i) {
1033 result[i] += stream[i];
1034 }
1035 }
1036
1037 double gain = 1.0 / static_cast<double>(streams.size());
1038 apply_gain(result, gain);
1039
1040 return result;
1041}
void apply_gain(std::vector< double > &data, double gain_factor)
Apply gain to single-channel data (in-place)
Definition Yantra.cpp:489

References apply_gain().

Referenced by MayaFlux::Buffers::BufferProcessingControl::connect_node_to_audio_buffer(), MayaFlux::Buffers::BufferProcessingControl::connect_node_to_audio_channel(), MayaFlux::Buffers::BufferManager::connect_node_to_buffer(), connect_node_to_buffer(), MayaFlux::Buffers::BufferManager::connect_node_to_channel(), connect_node_to_channel(), mix(), MayaFlux::Buffers::NodeSourceProcessor::set_mix(), MayaFlux::Buffers::BufferSupplyMixing::supply_audio_buffer_to(), MayaFlux::Buffers::BufferManager::supply_buffer_to(), supply_buffer_to_channel(), and supply_buffer_to_channels().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: