cwrs.c links to derf's article on pulse vector encoding.
[opus.git] / libcelt / pitch.c
index 4985a11..206f158 100644 (file)
@@ -26,7 +26,7 @@
 #include "pitch.h"
 #include "psy.h"
 
-void find_spectral_pitch(kiss_fftr_cfg fft, float *x, float *y, int lag, int len, int C, int *pitch)
+void find_spectral_pitch(kiss_fftr_cfg fft, struct PsyDecay *decay, float *x, float *y, int lag, int len, int C, int *pitch)
 {
    int c;
    int n2 = lag/2;
@@ -51,14 +51,14 @@ void find_spectral_pitch(kiss_fftr_cfg fft, float *x, float *y, int lag, int len
    kiss_fftr(fft, xx, X);
    kiss_fftr(fft, yy, Y);
    
-   compute_masking(X, curve, lag*C, 44100);
+   compute_masking(decay, X, curve, lag*C, 44100);
    
    for (i=1;i<C*n2;i++)
    {
       float n;
       //n = 1.f/(1e1+sqrt(sqrt((X[2*i-1]*X[2*i-1] + X[2*i  ]*X[2*i  ])*(Y[2*i-1]*Y[2*i-1] + Y[2*i  ]*Y[2*i  ]))));
       //n = 1;
-      n = 1.f/pow(1+curve[i],.5)/(i+60);
+      n = 1.f/sqrt(1+curve[i]);
       //n = 1.f/(1+curve[i]);
       float tmp = X[2*i];
       X[2*i] = (X[2*i  ]*Y[2*i  ] + X[2*i+1]*Y[2*i+1])*n;