Mercurial > hg > svapp
comparison audioio/ContinuousSynth.cpp @ 418:8d2112977aa0 tonioni
Don't clear ring buffers & regenerate when adding a model that is muted anyway
| author | Chris Cannam |
|---|---|
| date | Tue, 11 Nov 2014 16:34:22 +0000 |
| parents | d2c13ec0f148 |
| children | aa6fb3516e28 |
comparison
equal
deleted
inserted
replaced
| 417:d62a622a0e40 | 418:8d2112977aa0 |
|---|---|
| 46 | 46 |
| 47 bool wasOn = (m_prevF0 > 0.f); | 47 bool wasOn = (m_prevF0 > 0.f); |
| 48 bool nowOn = (f0 > 0.f); | 48 bool nowOn = (f0 > 0.f); |
| 49 | 49 |
| 50 if (!nowOn && !wasOn) { | 50 if (!nowOn && !wasOn) { |
| 51 m_phase = 0; | 51 m_phase = 0; |
| 52 return; | 52 return; |
| 53 } | 53 } |
| 54 | 54 |
| 55 int fadeLength = 100; // samples | 55 int fadeLength = 100; // samples |
| 56 | 56 |
| 57 float *levels = new float[m_channels]; | 57 float *levels = new float[m_channels]; |
| 58 | 58 |
| 59 for (int c = 0; c < m_channels; ++c) { | 59 for (int c = 0; c < m_channels; ++c) { |
| 60 levels[c] = gain * 0.5; // scale gain otherwise too loud compared to source | 60 levels[c] = gain * 0.5; // scale gain otherwise too loud compared to source |
| 61 } | 61 } |
| 62 if (pan != 0.0 && m_channels == 2) { | 62 if (pan != 0.0 && m_channels == 2) { |
| 63 levels[0] *= 1.0 - pan; | 63 levels[0] *= 1.0 - pan; |
| 64 levels[1] *= pan + 1.0; | 64 levels[1] *= pan + 1.0; |
| 65 } | 65 } |
| 66 | 66 |
| 67 // cerr << "ContinuousSynth::mix: f0 = " << f0 << " (from " << m_prevF0 << "), phase = " << m_phase << endl; | 67 // cerr << "ContinuousSynth::mix: f0 = " << f0 << " (from " << m_prevF0 << "), phase = " << m_phase << endl; |
| 68 | 68 |
| 69 for (int i = 0; i < m_blockSize; ++i) { | 69 for (int i = 0; i < m_blockSize; ++i) { |
