Mercurial > hg > easaier-soundaccess
view sv/filter/MultiRealTimeFilter.h @ 229:7d5d51145b81
support stereo in MultiRealTimeFilter and integrate Equalizer filter
author | lbajardsilogic |
---|---|
date | Wed, 05 Mar 2008 14:08:57 +0000 |
parents | c413e82a4812 |
children | 70b88fbbfb5c |
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ /* Sound Access EASAIER client application. Silogic 2007. Laure Bajard. Integration of the filter provided by: Dublin Institute of Technology - Audio Research Group 2007 www.audioresearchgroup.com Author: Dan Barry This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See the file COPYING included with this distribution for more information. */ #ifndef _MULTI_REAL_TIME_FILTER_H_ #define _MULTI_REAL_TIME_FILTER_H_ #include "Filter.h" #include "TimeStretchFilter.h" #include "EqualizerFilter.h" class MultiRealTimeFilter : public Filter { Q_OBJECT public: MultiRealTimeFilter(); virtual ~MultiRealTimeFilter(); virtual void putInput(float **input, size_t samples); virtual void getOutput(float **output, size_t samples); virtual size_t getRequiredInputSamples(size_t outputSamplesNeeded); size_t getRequiredSkipSamples(); virtual bool allowMultiple(){return false;} signals: void playSpeedChanged(float); public slots : void setFilterEnabled(bool b); void setFilterEnabled(int b); protected: size_t m_framesize; int m_hop; int m_transhold; float *m_inputBufferL; float *m_inputBufferR; /* DAN Removed float *audioframe; float *prev_audioframe; float *processedframe; */ float *window; // DAN Added float *L_audioframe; // float *R_audioframe; // float *pL_audioframe; // float *pR_audioframe; // float *L_processedframe; // float *R_processedframe; /* DAN Removed float *outbuffer; float *holdbuffer3; float *holdbuffer2; float *holdbuffer1; */ // DAN Added float *L_outbuffer; float *L_holdbuffer3; float *L_holdbuffer2; float *L_holdbuffer1; float *R_outbuffer; float *R_holdbuffer3; float *R_holdbuffer2; float *R_holdbuffer1; float *L_phase; ///CURRENT FRAME phases float *R_phase; ///CURRENT FRAME phases float *pL_phase; ///PREVIOUS FRAME phases float *pR_phase; ///PREVIOUS FRAME phases float *cL_synthphase; float *cR_synthphase; float *pL_synthphase; float *pR_synthphase; /* DAN Removed float *c_phase; ///CURRENT FRAME phases float *p_phase; ///PREVIOUS FRAME phases float *c_synthphase; float *p_synthphase; float *synthframe; */ // DAN Added - Following variables for EQ tool int gainband1; int gainband2; int gainband3; int gainband4; int gainband5; /*float *band1; float *band2; float *band3; float *band4; float *band5;*/ // DAN Added - Following variables for graphical plots in EQ tool float *bandcurve; float *plotbandcurve; //float *eqcurve; float *plotFFTarray; TimeStretchFilter * m_timeStretchFilter; EqualizerFilter * m_equalizerFilter; }; #endif