Mercurial > hg > vamp-fanchirp
changeset 21:37917af73ae9 spect
Some tidying
author | Chris Cannam |
---|---|
date | Thu, 04 Oct 2018 14:46:41 +0100 |
parents | 7964cc5ad98f |
children | a1879532385e |
files | FChTransformF0gram.cpp FChTransformUtils.h |
diffstat | 2 files changed, 14 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/FChTransformF0gram.cpp Thu Oct 04 13:32:47 2018 +0100 +++ b/FChTransformF0gram.cpp Thu Oct 04 14:46:41 2018 +0100 @@ -26,7 +26,7 @@ using namespace breakfastquay; -#define DEBUG +//#define DEBUG #define MAX(x, y) (((x) > (y)) ? (x) : (y)) @@ -600,11 +600,8 @@ // total number & initial quantity of f0s - cerr << "per oct = " << m_f0_params.num_f0s_per_oct << ", octs = " << m_f0_params.num_octs << endl; m_glogs_init_f0s = (int)(((double)m_f0_params.num_f0s_per_oct)*log2(5.0))+1; - cerr << "init_f0s = " << m_glogs_init_f0s << endl; m_glogs_num_f0s = (m_f0_params.num_octs+1)*m_f0_params.num_f0s_per_oct + m_glogs_init_f0s; - cerr << "num_f0s = " << m_glogs_num_f0s << endl; // Initialize arrays m_glogs_f0 = allocate<double>(m_glogs_num_f0s); @@ -1023,7 +1020,6 @@ Utils::interp1q(m_glogs + i_warp*m_glogs_num_f0s, m_glogs_fifth_harmonic_posint, m_glogs_fifth_harmonic_posfrac, m_glogs_fifth_harmonic, (m_f0_params.num_octs+1)*m_f0_params.num_f0s_per_oct); for (int i = m_glogs_num_f0s-1; i >= m_glogs_init_f0s; i--) { m_glogs[i + i_warp*m_glogs_num_f0s] -= MAX(MAX(m_glogs[i-m_f0_params.num_f0s_per_oct + i_warp*m_glogs_num_f0s],m_glogs_third_harmonic[i-m_glogs_init_f0s]),m_glogs_fifth_harmonic[i-m_glogs_init_f0s]); - //m_glogs[i] -= MAX(m_glogs[i-m_f0_params.num_f0s_per_oct],m_glogs_third_harmonic[i-m_glogs_init_f0s]); } for (int i = m_glogs_init_f0s; i < m_glogs_num_f0s-m_f0_params.num_f0s_per_oct; i++) { m_glogs[i + i_warp*m_glogs_num_f0s] -= 0.3*m_glogs[i+m_f0_params.num_f0s_per_oct + i_warp*m_glogs_num_f0s];
--- a/FChTransformUtils.h Thu Oct 04 13:32:47 2018 +0100 +++ b/FChTransformUtils.h Thu Oct 04 14:46:41 2018 +0100 @@ -20,15 +20,24 @@ #include <string.h> +#include "bqvec/Restrict.h" + class Utils { public: static void interp1(const double *x1,const double *y1, int N1, const double *x2, double *y2, int N2); - static void interp1q(const double *y1, const int *x2_int, const double *x2_frac, double *y2, int N2){ - for(int i=0;i<N2;i++){ - y2[i] = y1[x2_int[i]]*(1.0-x2_frac[i])+y1[x2_int[i]+1]*x2_frac[i]; - } // for + static void interp1q(const double *const BQ_R__ y1, + const int *const BQ_R__ x2_int, + const double *const BQ_R__ x2_frac, + double *const BQ_R__ y2, + int const n2) + { + for (int i = 0; i < n2; ++i) { + double f = x2_frac[i]; + int j = x2_int[i]; + y2[i] = y1[j] * (1.0-f) + y1[j+1] * f; + } } static void cumtrapz(const double *x, const double *y, int N, double *accum);