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

◆ get_metadata()

std::unordered_map< std::string, std::string > MayaFlux::Nodes::Network::ModalNetwork::get_metadata ( ) const
overridevirtual

Get network metadata for debugging/visualization.

Returns
Map of property names to string representations

Subclasses can override to expose internal state:

  • Particle count, average velocity
  • Modal frequencies, decay times
  • Waveguide delay lengths etc.

Reimplemented from MayaFlux::Nodes::Network::NodeNetwork.

Definition at line 477 of file ModalNetwork.cpp.

478{
479 auto metadata = NodeNetwork::get_metadata();
480
481 metadata["fundamental"] = std::to_string(m_fundamental) + " Hz";
482 metadata["spectrum"] = [this]() {
483 switch (m_spectrum) {
485 return "HARMONIC";
487 return "INHARMONIC";
489 return "STRETCHED";
490 case Spectrum::CUSTOM:
491 return "CUSTOM";
492 default:
493 return "UNKNOWN";
494 }
495 }();
496 metadata["decay_multiplier"] = std::to_string(m_decay_multiplier);
497
498 double avg_amplitude = 0.0;
499 for (const auto& mode : m_modes) {
500 avg_amplitude += mode.amplitude;
501 }
502 avg_amplitude /= (double)m_modes.size();
503 metadata["avg_amplitude"] = std::to_string(avg_amplitude);
504
505 metadata["exciter_type"] = [this]() {
506 switch (m_exciter_type) {
508 return "IMPULSE";
510 return "NOISE_BURST";
512 return "FILTERED_NOISE";
514 return "SAMPLE";
516 return "CONTINUOUS";
517 default:
518 return "UNKNOWN";
519 }
520 }();
521
522 metadata["coupling_enabled"] = m_coupling_enabled ? "true" : "false";
523 metadata["coupling_count"] = std::to_string(m_couplings.size());
524
525 return metadata;
526}
@ IMPULSE
Single-sample Dirac impulse (default)
@ FILTERED_NOISE
Spectrally-shaped noise burst.
@ CONTINUOUS
External node as continuous exciter.
@ SAMPLE
User-provided excitation waveform.
std::vector< ModeCoupling > m_couplings
@ STRETCHED
Piano-like stiffness: f, 2.01f, 3.02f, 4.04f...
@ INHARMONIC
Bell-like: f, 2.76f, 5.40f, 8.93f, 13.34f...
@ CUSTOM
User-provided frequency ratios.
@ HARMONIC
Integer harmonics: f, 2f, 3f, 4f...
virtual std::unordered_map< std::string, std::string > get_metadata() const
Get network metadata for debugging/visualization.
std::vector< double > mode(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
Mode per window via tolerance-bucketed frequency count.
Definition Analysis.cpp:559

References CONTINUOUS, CUSTOM, FILTERED_NOISE, MayaFlux::Nodes::Network::NodeNetwork::get_metadata(), HARMONIC, IMPULSE, INHARMONIC, m_coupling_enabled, m_couplings, m_decay_multiplier, m_exciter_type, m_fundamental, m_modes, m_spectrum, NOISE_BURST, SAMPLE, and STRETCHED.

+ Here is the call graph for this function: