Apply one-to-one parameter from another network.
381{
382 if (source->get_node_count() !=
m_modes.size()) {
383 return;
384 }
385
386 if (param == "amplitude") {
387 for (
size_t i = 0; i <
m_modes.size(); ++i) {
388 auto val = source->get_node_output(i);
389 if (val) {
391 }
392 }
393 } else if (param == "detune") {
394 for (
size_t i = 0; i <
m_modes.size(); ++i) {
395 auto val = source->get_node_output(i);
396 if (val) {
397 double detune_cents = *val * 100.0;
398 double ratio = std::pow(2.0, detune_cents / 1200.0);
400 m_modes[i].oscillator->set_frequency(
m_modes[i].current_frequency);
401 }
402 }
403 }
404}
std::vector< ModalNode > m_modes