diff src/scalar.c @ 225:62e797c2974a

correction to xtract_odd_even_ratio
author Sean Enderby <sean.enderby@gmail.com>
date Mon, 24 Feb 2014 14:32:04 +0000
parents fdbef1474be9
children cabf2f465d1b
line wrap: on
line diff
--- a/src/scalar.c	Mon Feb 24 13:43:13 2014 +0000
+++ b/src/scalar.c	Mon Feb 24 14:32:04 2014 +0000
@@ -622,7 +622,6 @@
 
 int xtract_spectral_inharmonicity(const double *data, const int N, const void *argv, double *result)
 {
-
     int n = N >> 1, h = 0;
     double num = 0.0, den = 0.0, fund;
     const double *freqs, *amps;
@@ -656,16 +655,19 @@
 
 int xtract_odd_even_ratio(const double *data, const int N, const void *argv, double *result)
 {
+    int n = N >> 1, h = 0;
+    double odd = 0.0, even = 0.0, fund, temp;
+    const double *freqs;
 
-    int M = (N >> 1), n;
+    fund = *(double *)argv;
+    freqs = data + n;
 
-    double odd = 0.0, even = 0.0,  temp;
-
-    for(n = 0; n < M; n++)
+    while(n--)
     {
         if((temp = data[n]))
         {
-            if(XTRACT_IS_ODD(n))
+            h = round(freqs[n] / fund);
+            if(XTRACT_IS_ODD(h))
             {
                 odd += temp;
             }