lbajardsilogic@201: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ lbajardsilogic@79: lbajardsilogic@201: /* Sound Access lbajardsilogic@201: EASAIER client application. lbajardsilogic@201: Dublin Institute of Technology - Audio Research Group 2007 lbajardsilogic@201: www.audioresearchgroup.com lbajardsilogic@201: Author: Dan Barry lbajardsilogic@79: lbajardsilogic@201: This program is free software; you can redistribute it and/or lbajardsilogic@201: modify it under the terms of the GNU General Public License as lbajardsilogic@201: published by the Free Software Foundation; either version 2 of the lbajardsilogic@201: License, or (at your option) any later version. See the file lbajardsilogic@201: COPYING included with this distribution for more information. lbajardsilogic@201: */ lbajardsilogic@229: lbajardsilogic@229: #include lbajardsilogic@79: lbajardsilogic@79: #define PI 3.14179 lbajardsilogic@79: lbajardsilogic@79: void intobyte(int num, char* pbyte1 ,char* pbyte2); lbajardsilogic@79: lbajardsilogic@79: void cart2pol(float* cart, float* mags, float* phases, int framesize); lbajardsilogic@79: lbajardsilogic@79: void pol2cart(float* cart, float* mags, float* phases, int framesize); lbajardsilogic@79: lbajardsilogic@79: void hanning(float* window, int framesize); lbajardsilogic@79: lbajardsilogic@79: void updatephases(float* c_phase,float* p_phase,float* c_synthphase, float* p_synthphase, int framesize,float hopfactor,float interpfactor); lbajardsilogic@79: lbajardsilogic@79: void updatephases2(float* c_phase,float* p_phase,float* c_synthphase, float* p_synthphase, int framesize,float hopfactor,float interpfactor); lbajardsilogic@79: lbajardsilogic@79: void rotatephases(float* c_phase, float* p_phase, float* c_synthphase, float* p_synthphase, int framesize, float interpfactor); lbajardsilogic@79: lbajardsilogic@229: void rotatephases_peaklocked(float* c_phase, float* p_phase, float* c_synthphase, float* p_synthphase, float* cmags, int framesize, float interpfactor); lbajardsilogic@229: lbajardsilogic@229: void cur2last(float* c_phase, float* c_synthphase, float* p_synthphase, int framesize); lbajardsilogic@229: lbajardsilogic@229: int findpeaks(float* c_mags, float* p_mags, float framesize, float* peak_locations); lbajardsilogic@229: lbajardsilogic@229: //void batchADRess(); lbajardsilogic@229: lbajardsilogic@229: //void ADRess(float* L_mags, float* L_phase, float* R_mags, float* R_phase, float azimuthvalue, float range, float cutfreq, float bleedthresh, int framesize, bool softbypass); lbajardsilogic@79: lbajardsilogic@79: bool transient_detect(float* L_mags, float* R_mags, float* pL_mags, float* pR_mags, float drumthresh, float framesize); lbajardsilogic@79: lbajardsilogic@79: void sintable(float* sinewave, float length, float sr); lbajardsilogic@79: lbajardsilogic@229: void log10plot(float* L_mags, float* plotFFTarray, int framesize, int plotsize); lbajardsilogic@79: lbajardsilogic@233: void log10plot2(QVector& L_mags, float* plotFFTarray, int framesize, int plotsize); lbajardsilogic@229: lbajardsilogic@233: void applyEQ(float* L_mags, float* R_mags, int framesize, int plotsize, QVector& eqcurve); lbajardsilogic@229: lbajardsilogic@229: void stereo2ms(float* left, float* right, int framesize); lbajardsilogic@229: lbajardsilogic@229: void ms2stereo(float* left, float* right, int framesize); lbajardsilogic@229: lbajardsilogic@233: void bandeq(float* L_mags, float* R_mags, QVector& eqcurve, int framesize);