| @@ -973,6 +973,11 @@ void tMinBLEP_initToPool (tMinBLEP* const minblep, int zeroCrossings, int · 972 unmodified lines |
| 973 | 973 | mb->minBlepArray = (float*) mpool_alloc(sizeof(float) * mb->minBlepSize, m); |
| 974 | 974 | mb->minBlepDerivArray = (float*) mpool_alloc(sizeof(float) * mb->minBlepSize, m); |
| 975 | 975 | |
| 976 | + mb->realTime = (float*) mpool_alloc(sizeof(float) * mb->minBlepSize, m); |
| 977 | + mb->imagTime = (float*) mpool_alloc(sizeof(float) * mb->minBlepSize, m); |
| 978 | + mb->realFreq = (float*) mpool_alloc(sizeof(float) * mb->minBlepSize, m); |
| 979 | + mb->imagFreq = (float*) mpool_alloc(sizeof(float) * mb->minBlepSize, m); |
| 980 | + |
| 976 | 981 | tMinBLEP_buildBLEP(minblep); |
| 977 | 982 | } |
| 978 | 983 | |
| @@ -989,6 +994,11 @@ void tMinBLEP_freeFromPool (tMinBLEP* const minblep, tMempool* const mp) · 10 unmodified lines |
| 989 | 994 | mpool_free((char*)mb->minBlepArray, m); |
| 990 | 995 | mpool_free((char*)mb->minBlepDerivArray, m); |
| 991 | 996 | |
| 997 | + mpool_free((char*)mb->realTime, m); |
| 998 | + mpool_free((char*)mb->imagTime, m); |
| 999 | + mpool_free((char*)mb->realFreq, m); |
| 1000 | + mpool_free((char*)mb->imagFreq, m); |
| 1001 | + |
| 992 | 1002 | mpool_free((char*)mb, m); |
| 993 | 1003 | } |
| 994 | 1004 | |
| @@ -1089,15 +1099,10 @@ static void complexexp(float x, float y, float *zx, float *zy) · 94 unmodified lines |
| 1089 | 1099 | } |
| 1090 | 1100 | |
| 1091 | 1101 | // Compute Real Cepstrum Of Signal |
| 1092 | | −static void RealCepstrum(int n, float *signal, float *realCepstrum) |
| 1102 | +static void RealCepstrum(int n, float *signal, float *realCepstrum, float* realTime, float* imagTime, float* realFreq, float* imagFreq) |
| 1093 | 1103 | { |
| 1094 | 1104 | int i; |
| 1095 | 1105 | |
| 1096 | | − float realTime[n]; |
| 1097 | | − float imagTime[n]; |
| 1098 | | − float realFreq[n]; |
| 1099 | | − float imagFreq[n]; |
| 1100 | | − |
| 1101 | 1106 | // Compose Complex FFT Input |
| 1102 | 1107 | |
| 1103 | 1108 | for(i = 0; i < n; i++) |
| @@ -1128,13 +1133,9 @@ static void RealCepstrum(int n, float *signal, float *realCepstrum) · 24 unmodified lines |
| 1128 | 1133 | } |
| 1129 | 1134 | |
| 1130 | 1135 | // Compute Minimum Phase Reconstruction Of Signal |
| 1131 | | −static void MinimumPhase(int n, float *realCepstrum, float *minimumPhase) |
| 1136 | +static void MinimumPhase(int n, float *realCepstrum, float *minimumPhase, float* realTime, float* imagTime, float* realFreq, float* imagFreq) |
| 1132 | 1137 | { |
| 1133 | 1138 | int i, nd2; |
| 1134 | | − float realTime[n]; |
| 1135 | | − float imagTime[n]; |
| 1136 | | − float realFreq[n]; |
| 1137 | | − float imagFreq[n]; |
| 1138 | 1139 | |
| 1139 | 1140 | nd2 = n / 2; |
| 1140 | 1141 | |
| @@ -1200,8 +1201,8 @@ void tMinBLEP_buildBLEP(tMinBLEP* const minblep) · 59 unmodified lines |
| 1200 | 1201 | |
| 1201 | 1202 | // Minimum Phase Reconstruction |
| 1202 | 1203 | |
| 1203 | | − RealCepstrum(n, m->minBlepArray, m->minBlepDerivArray); |
| 1204 | | − MinimumPhase(n, m->minBlepDerivArray, m->minBlepArray); |
| 1204 | + RealCepstrum(n, m->minBlepArray, m->minBlepDerivArray, m->realTime, m->imagTime, m->realFreq, m->imagFreq); |
| 1205 | + MinimumPhase(n, m->minBlepDerivArray, m->minBlepArray, m->realTime, m->imagTime, m->realFreq, m->imagFreq); |
| 1205 | 1206 | |
| 1206 | 1207 | // Integrate Into MinBLEP |
| 1207 | 1208 | a = 0.0f; |