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

◆ process_batch()

void MayaFlux::Nodes::ModalNetwork::process_batch ( unsigned int  num_samples)
overridevirtual

Process the network for the given number of samples.

Parameters
num_samplesNumber of samples/frames to process

Subclasses implement their specific processing logic:

  1. Update internal state (physics, relationships, etc.)
  2. Process individual nodes
  3. Apply inter-node interactions
  4. Aggregate outputs if needed

Called by NodeGraphManager during token processing.

Implements MayaFlux::Nodes::NodeNetwork.

Definition at line 133 of file ModalNetwork.cpp.

134{
136
137 m_last_audio_buffer.clear();
138
139 if (!is_enabled()) {
140 m_last_audio_buffer.assign(num_samples, 0.0);
141 m_last_output = 0.0;
142 return;
143 }
144
146 m_last_audio_buffer.reserve(num_samples);
147
148 for (unsigned int i = 0; i < num_samples; ++i) {
149 double sum = 0.0;
150
151 for (auto& mode : m_modes) {
152
153 if (mode.amplitude > 0.0001) {
154 mode.amplitude *= mode.decay_coefficient;
155 } else {
156 mode.amplitude = 0.0;
157 }
158
159 double sample = mode.oscillator->process_sample(0.0) * mode.amplitude;
160
161 sum += sample;
162 }
163 m_last_audio_buffer.push_back(sum);
164 }
166}
std::vector< ModalNode > m_modes
void update_mapped_parameters()
Update mapped parameters before processing.
void ensure_initialized()
Ensure initialize() is called exactly once.
std::vector< double > m_last_audio_buffer
bool is_enabled() const
Check if network is enabled.

References MayaFlux::Nodes::NodeNetwork::ensure_initialized(), MayaFlux::Nodes::NodeNetwork::is_enabled(), MayaFlux::Nodes::NodeNetwork::m_last_audio_buffer, m_last_output, m_modes, and update_mapped_parameters().

+ Here is the call graph for this function: