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

◆ apply_one_to_one_parameter()

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

Apply one-to-one parameter from another network.

Definition at line 463 of file ModalNetwork.cpp.

465{
466 if (source->get_node_count() != m_modes.size()) {
467 return;
468 }
469
470 if (param == "amplitude") {
471 for (size_t i = 0; i < m_modes.size(); ++i) {
472 auto val = source->get_node_output(i);
473 if (val) {
474 m_modes[i].amplitude *= *val;
475 }
476 }
477 } else if (param == "detune") {
478 for (size_t i = 0; i < m_modes.size(); ++i) {
479 auto val = source->get_node_output(i);
480 if (val) {
481 double detune_cents = *val * 100.0; // ±100 cents
482 double ratio = std::pow(2.0, detune_cents / 1200.0);
483 m_modes[i].current_frequency = m_modes[i].base_frequency * ratio;
484 m_modes[i].oscillator->set_frequency(m_modes[i].current_frequency);
485 }
486 }
487 }
488}
Source source()
Begin a Source chain.
Definition Plot.hpp:127

References m_modes.

Referenced by update_mapped_parameters().

+ Here is the caller graph for this function: