MayaFlux 0.4.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 945 of file Yantra.cpp.

946{
947 if (streams.empty())
948 return {};
949
950 size_t max_length = 0;
951 for (const auto& s : streams)
952 max_length = std::max(max_length, s.size());
953
954 std::vector<double> result(max_length, 0.0);
955 for (const auto& s : streams) {
956 for (size_t i = 0; i < s.size(); ++i)
957 result[i] += s[i];
958 }
959
960 apply_gain(result, 1.0 / static_cast<double>(streams.size()));
961 return result;
962}
float max
Range size
void apply_gain(std::vector< double > &data, double gain_factor)
Apply gain to single-channel data (in-place)
Definition Yantra.cpp:517

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: