1- /*
2- ==============================================================================
3-
4- Collection of FDN (feedback delay network) algorithms
5-
6- ==============================================================================
7- */
1+ // Collection of FDN (feedback delay network) algorithms
82
93#include " FDNs.h"
4+ #include < cstddef>
105
116GeneralizedFDN::GeneralizedFDN () = default;
127
@@ -22,7 +17,7 @@ GeneralizedFDN::GeneralizedFDN(int order, std::string type)
2217 { " Householder" , 4 }
2318 };
2419
25- int switchCase { 1 } ;
20+ int switchCase = 1 ;
2621
2722 auto iter = typeMapping.find (type);
2823 if (iter != typeMapping.end ())
@@ -45,7 +40,7 @@ GeneralizedFDN::GeneralizedFDN(int order, std::string type)
4540 inDelays = { 4 , 6 };
4641 modDelays = { 1 , 3 };
4742
48- feedbackScalar = 1 / sqrt (2.0 );
43+ feedbackScalar = 1 . 0f / sqrt (2 .0f );
4944 break ;
5045
5146 case 2 : // circulant
@@ -168,7 +163,7 @@ void GeneralizedFDN::processBlock(juce::AudioBuffer<float>& buffer, juce::MidiBu
168163 }
169164
170165 // set delay times
171- for (int i = 0 ; i < delayCount; ++i)
166+ for (size_t i = 0 ; i < delayCount; ++i)
172167 delays[i].setDelay (delayTimes[i] * parameters.roomSize );
173168
174169 // set damping
@@ -201,6 +196,7 @@ void GeneralizedFDN::processBlock(juce::AudioBuffer<float>& buffer, juce::MidiBu
201196 for (int del = 0 ; del < delayCount; ++del)
202197 {
203198 // only include input if this delay is the input for the channel
199+ // inDelays is input delay *indices*
204200 if (channel < 2 && del == inDelays[channel])
205201 {
206202 delays[del].pushSample (channel, channelData[sample] + dampingFilters[del].processSample (channel, feedbackSigMatrix[channel][del] * parameters.decayTime ));
0 commit comments