MayaFlux 0.3.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 1021 of file Yantra.cpp.

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

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::NetworkAudioProcessor::set_mix(), MayaFlux::Buffers::NodeSourceProcessor::set_mix(), MayaFlux::Buffers::BufferSupplyMixing::supply_audio_buffer_to(), MayaFlux::Buffers::BufferManager::supply_buffer_to(), supply_buffer_to_channel(), supply_buffer_to_channels(), and MayaFlux::Buffers::update_buffer_with_node_data().

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