| @@ -1061,7 +1061,7 @@ void tSOLAD_initToPool (tSOLAD* const wp, int loopSize, tMempool* const mp) · 1060 unmodified lines |
| 1061 | 1061 | |
| 1062 | 1062 | w->loopSize = loopSize; |
| 1063 | 1063 | w->pitchfactor = 1.; |
| 1064 | | − w->delaybuf = (float*) mpool_calloc(sizeof(float) * w->loopSize, m); |
| 1064 | + w->delaybuf = (float*) mpool_calloc(sizeof(float) * (w->loopSize+1), m); |
| 1065 | 1065 | |
| 1066 | 1066 | w->timeindex = 0; |
| 1067 | 1067 | w->xfadevalue = -1; |
| @@ -1095,7 +1095,7 @@ void tSOLAD_ioSamples(tSOLAD* const wp, float* in, float* out, int blocksize) · 27 unmodified lines |
| 1095 | 1095 | { |
| 1096 | 1096 | float sample = tHighpass_tick(&w->hp, in[0]); |
| 1097 | 1097 | w->delaybuf[0] = sample; |
| 1098 | | − w->delaybuf[w->loopSize-1] = sample; // copy one sample for interpolation |
| 1098 | + w->delaybuf[w->loopSize] = sample; // copy one sample for interpolation |
| 1099 | 1099 | n--; |
| 1100 | 1100 | i++; |
| 1101 | 1101 | in++; |
| @@ -1500,6 +1500,7 @@ void tSimpleRetune_initToPool (tSimpleRetune* const rt, int numVoices, float min · 398 unmodified lines |
| 1500 | 1500 | r->bufSize = bufSize; |
| 1501 | 1501 | r->numVoices = numVoices; |
| 1502 | 1502 | |
| 1503 | + r->pdBuffer = (float*) mpool_alloc(sizeof(float) * 2048, m); |
| 1503 | 1504 | r->inBuffer = (float*) mpool_calloc(sizeof(float) * r->bufSize, m); |
| 1504 | 1505 | r->outBuffer = (float*) mpool_calloc(sizeof(float) * r->bufSize, m); |
| 1505 | 1506 | |
| @@ -1510,7 +1511,7 @@ void tSimpleRetune_initToPool (tSimpleRetune* const rt, int numVoices, float min · 4 unmodified lines |
| 1510 | 1511 | |
| 1511 | 1512 | r->minInputFreq = minInputFreq; |
| 1512 | 1513 | r->maxInputFreq = maxInputFreq; |
| 1513 | | − tDualPitchDetector_initToPool(&r->dp, r->minInputFreq, r->maxInputFreq, r->inBuffer, r->bufSize, mp); |
| 1514 | + tDualPitchDetector_initToPool(&r->dp, r->minInputFreq, r->maxInputFreq, r->pdBuffer, 2048, mp); |
| 1514 | 1515 | |
| 1515 | 1516 | for (int i = 0; i < r->numVoices; ++i) |
| 1516 | 1517 | { |
| @@ -1546,7 +1547,8 @@ float tSimpleRetune_tick(tSimpleRetune* const rt, float sample) · 29 unmodified lines |
| 1546 | 1547 | float out = r->outBuffer[r->index]; |
| 1547 | 1548 | r->outBuffer[r->index] = 0.0f; |
| 1548 | 1549 | |
| 1549 | | − if (++r->index >= r->bufSize) |
| 1550 | + r->index++; |
| 1551 | + if (r->index >= r->bufSize) |
| 1550 | 1552 | { |
| 1551 | 1553 | for (int i = 0; i < r->numVoices; ++i) |
| 1552 | 1554 | { |
| @@ -1696,7 +1698,8 @@ float* tRetune_tick(tRetune* const rt, float sample) · 143 unmodified lines |
| 1696 | 1698 | r->outBuffers[i][r->index] = 0.0f; |
| 1697 | 1699 | } |
| 1698 | 1700 | |
| 1699 | | − if (++r->index >= r->bufSize) |
| 1701 | + r->index++; |
| 1702 | + if (r->index >= r->bufSize) |
| 1700 | 1703 | { |
| 1701 | 1704 | for (int i = 0; i < r->numVoices; ++i) |
| 1702 | 1705 | { |