[Reverb]
- fixed mix down
This commit is contained in:
+11
-12
@@ -15,18 +15,14 @@ class Delay
|
||||
uint m_delaySize;
|
||||
|
||||
public:
|
||||
Delay(uint delayCapacity, int delayOffset=0)
|
||||
Delay(uint delayCapacity, int delayOffset)
|
||||
: m_buf(delayCapacity)
|
||||
{
|
||||
setDelay(delayCapacity-delayOffset, delayOffset);
|
||||
setDelay(delayCapacity, delayOffset);
|
||||
}
|
||||
|
||||
void setDelay(uint delaySize, int delayOffset=0)
|
||||
void setDelay(uint delaySize, int delayOffset)
|
||||
{
|
||||
if ((delaySize + delayOffset) > m_buf.capacity())
|
||||
{
|
||||
return;
|
||||
}
|
||||
float delayRagePerWindow = (float)(delaySize-delayOffset)/(float)numCh;
|
||||
|
||||
if (delayRagePerWindow < 0)
|
||||
@@ -81,7 +77,7 @@ class Diffusor
|
||||
|
||||
public:
|
||||
Diffusor(uint maxDelaySize)
|
||||
: m_dly(maxDelaySize)
|
||||
: m_dly(maxDelaySize, 0)
|
||||
{
|
||||
// Shuffle spec
|
||||
for (int i=0; i < numCh; i++)
|
||||
@@ -113,7 +109,7 @@ class Diffusor
|
||||
|
||||
void setDelay(uint delay)
|
||||
{
|
||||
m_dly.setDelay(delay);
|
||||
m_dly.setDelay(delay, 0);
|
||||
}
|
||||
|
||||
uint getDelay()
|
||||
@@ -161,9 +157,9 @@ class Reverb
|
||||
T fb_gain;
|
||||
|
||||
public:
|
||||
Reverb(std::initializer_list<Diffusor<T, numCh>> maxDelay, uint fb_maxDelay)
|
||||
Reverb(std::initializer_list<Diffusor<T, numCh>> maxDelay, uint fb_maxDelay, uint fb_minDelay)
|
||||
: m_diffusors(maxDelay)
|
||||
, m_feedbackDly(fb_maxDelay, 0)
|
||||
, m_feedbackDly(fb_maxDelay, fb_minDelay)
|
||||
, fb_gain(0)
|
||||
{
|
||||
for (int c=0; c < numCh; c++)
|
||||
@@ -217,7 +213,10 @@ class Reverb
|
||||
m_feedbackDly.process(temp, fb_dly_out);
|
||||
|
||||
// Mix
|
||||
out[i] = fb_dly_out[0];
|
||||
for (int c=0; c < numCh; c++)
|
||||
{
|
||||
out[i] += fb_dly_out[c];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -136,7 +136,7 @@ void test_reverb()
|
||||
std::cout << "----------------------------------------------" << std::endl;
|
||||
std::cout << "test_reverb()" << std::endl;
|
||||
|
||||
Reverb<double, 8> rev({32}, 2);
|
||||
Reverb<double, 8> rev({32}, 256, 8);
|
||||
|
||||
float data_in[10] = {1, 2, 3, 4, 5, 6, 7,8, 9, 10};
|
||||
float data_out[10] = {0, 0, 0, 0, 0, 0, 0,0, 0, 0};
|
||||
|
||||
Reference in New Issue
Block a user