| @@ -973,6 +973,11 @@ void tMinBLEP_initToPool (tMinBLEP* const minblep, int zeroCrossings, int · 972 unmodified lines |
| 973 | mb->minBlepArray = (float*) mpool_alloc(sizeof(float) * mb->minBlepSize, m); | 973 | mb->minBlepArray = (float*) mpool_alloc(sizeof(float) * mb->minBlepSize, m); |
| 974 | mb->minBlepDerivArray = (float*) mpool_alloc(sizeof(float) * mb->minBlepSize, m); | 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 | tMinBLEP_buildBLEP(minblep); | 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 | mpool_free((char*)mb->minBlepArray, m); | 994 | mpool_free((char*)mb->minBlepArray, m); |
| 990 | mpool_free((char*)mb->minBlepDerivArray, m); | 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 | mpool_free((char*)mb, m); | 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 | // Compute Real Cepstrum Of Signal | 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 | int i; | 1104 | int i; |
| 1095 | | 1105 | |
| 1096 | float realTime[n]; | | |
| 1097 | float imagTime[n]; | | |
| 1098 | float realFreq[n]; | | |
| 1099 | float imagFreq[n]; | | |
| 1100 | | | |
| 1101 | // Compose Complex FFT Input | 1106 | // Compose Complex FFT Input |
| 1102 | | 1107 | |
| 1103 | for(i = 0; i < n; i++) | 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 | // Compute Minimum Phase Reconstruction Of Signal | 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 | int i, nd2; | 1138 | int i, nd2; |
| 1134 | float realTime[n]; | | |
| 1135 | float imagTime[n]; | | |
| 1136 | float realFreq[n]; | | |
| 1137 | float imagFreq[n]; | | |
| 1138 | | 1139 | |
| 1139 | nd2 = n / 2; | 1140 | nd2 = n / 2; |
| 1140 | | 1141 | |
| @@ -1200,8 +1201,8 @@ void tMinBLEP_buildBLEP(tMinBLEP* const minblep) · 59 unmodified lines |
| 1200 | | 1201 | |
| 1201 | // Minimum Phase Reconstruction | 1202 | // Minimum Phase Reconstruction |
| 1202 | | 1203 | |
| 1203 | RealCepstrum(n, m->minBlepArray, m->minBlepDerivArray); | 1204 | RealCepstrum(n, m->minBlepArray, m->minBlepDerivArray, m->realTime, m->imagTime, m->realFreq, m->imagFreq); |
| 1204 | MinimumPhase(n, m->minBlepDerivArray, m->minBlepArray); | 1205 | MinimumPhase(n, m->minBlepDerivArray, m->minBlepArray, m->realTime, m->imagTime, m->realFreq, m->imagFreq); |
| 1205 | | 1206 | |
| 1206 | // Integrate Into MinBLEP | 1207 | // Integrate Into MinBLEP |
| 1207 | a = 0.0f; | 1208 | a = 0.0f; |