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

◆ process_unidirectional()

void MayaFlux::Nodes::Network::WaveguideNetwork::process_unidirectional ( WaveguideSegment seg,
unsigned int  num_samples 
)
private

Definition at line 148 of file WaveguideNetwork.cpp.

150{
151 for (unsigned int i = 0; i < num_samples; ++i) {
152 const double exciter = generate_exciter_sample();
153
154 const double delayed = read_with_interpolation(
156
157 const double filtered = seg.loop_filter ? seg.loop_filter->process_sample(delayed)
158 : delayed;
159
160 seg.p_plus.push(
161 exciter + filtered * seg.loss_factor * seg.reflection_closed);
162
163 m_last_audio_buffer.push_back(observe_sample(seg));
164 }
165}
std::vector< double > m_last_audio_buffer
double observe_sample(const WaveguideSegment &seg) const
double read_with_interpolation(const Memory::HistoryBuffer< double > &delay, size_t integer_part, double fraction) const
Read from delay line with linear fractional interpolation.

References generate_exciter_sample(), MayaFlux::Nodes::Network::WaveguideNetwork::WaveguideSegment::loop_filter, MayaFlux::Nodes::Network::WaveguideNetwork::WaveguideSegment::loss_factor, m_delay_length_fraction, m_delay_length_integer, MayaFlux::Nodes::Network::NodeNetwork::m_last_audio_buffer, observe_sample(), MayaFlux::Nodes::Network::WaveguideNetwork::WaveguideSegment::p_plus, MayaFlux::Memory::HistoryBuffer< T >::push(), read_with_interpolation(), and MayaFlux::Nodes::Network::WaveguideNetwork::WaveguideSegment::reflection_closed.

Referenced by process_batch().

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