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

◆ apply_one_to_one_parameter()

void MayaFlux::Nodes::Network::ResonatorNetwork::apply_one_to_one_parameter ( const std::string &  param,
const std::shared_ptr< NodeNetwork > &  source 
)
private

Apply ONE_TO_ONE values from a source network to the named parameter.

Parameters
param"frequency", "q", "gain", "retune" or "decay"
sourceNodeNetwork providing one value per resonator

Definition at line 333 of file ResonatorNetwork.cpp.

335{
336 const size_t count = std::min(m_resonators.size(), source->get_node_count());
337
338 for (size_t i = 0; i < count; ++i) {
339 const auto val = source->get_node_output(i);
340 if (!val.has_value()) {
341 continue;
342 }
343 if (param == "frequency") {
344 set_frequency(i, *val);
345 } else if (param == "q") {
346 set_q(i, *val);
347 } else if (param == "gain") {
348 m_resonators[i].gain = *val;
349 } else if (param == "retune") {
350 retune(i, *val);
351 } else if (param == "decay") {
352 set_decay(i, *val);
353 }
354 }
355}
size_t count
void set_frequency(size_t index, double frequency)
Set centre frequency of a single resonator and recompute its coefficients.
void set_q(size_t index, double q)
Set Q factor of a single resonator and recompute its coefficients.
void set_decay(size_t index, double seconds)
Set how long a resonator rings, without clearing its state.
void retune(size_t index, double frequency)
Move a resonator's centre frequency without clearing its state.
Source source()
Begin a Source chain.
Definition Plot.hpp:127

References count, m_resonators, retune(), set_decay(), set_frequency(), and set_q().

Referenced by update_mapped_parameters().

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