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

◆ build_resonators()

void MayaFlux::Nodes::Network::ResonatorNetwork::build_resonators ( const std::vector< double > &  frequencies,
const std::vector< double > &  qs 
)
private

Initialise all resonators from a frequency/Q pair list.

Parameters
frequenciesCentre frequencies in Hz
qsQ factors

Definition at line 140 of file ResonatorNetwork.cpp.

142{
143 m_resonators.clear();
144 m_resonators.reserve(frequencies.size());
145
146 for (size_t i = 0; i < frequencies.size(); ++i) {
147 ResonatorNode r;
148 r.frequency = std::clamp(frequencies[i], 1.0, m_sample_rate * 0.5 - 1.0);
149 r.q = std::clamp(qs[i], 0.1, 1000.0);
150 r.gain = 1.0;
151 r.last_output = 0.0;
152 r.index = i;
153 r.filter = std::make_shared<Filters::IIR>(
154 std::vector<double> { 1.0, 0.0, 0.0 },
155 std::vector<double> { 0.0, 0.0, 0.0 });
157 m_resonators.push_back(std::move(r));
158 }
159}
void compute_biquad(ResonatorNode &r)
Compute RBJ biquad bandpass coefficients and push them into a resonator's IIR.

References compute_biquad(), MayaFlux::Nodes::Network::ResonatorNetwork::ResonatorNode::filter, MayaFlux::Nodes::Network::ResonatorNetwork::ResonatorNode::frequency, MayaFlux::Nodes::Network::ResonatorNetwork::ResonatorNode::gain, MayaFlux::Nodes::Network::ResonatorNetwork::ResonatorNode::index, MayaFlux::Nodes::Network::ResonatorNetwork::ResonatorNode::last_output, m_resonators, MayaFlux::Nodes::Network::NodeNetwork::m_sample_rate, and MayaFlux::Nodes::Network::ResonatorNetwork::ResonatorNode::q.

Referenced by ResonatorNetwork(), and ResonatorNetwork().

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