annotate sv/filter/MultiRealTimeFilter.h @ 223:c413e82a4812

reorganise RealTimeFilter for Equalizer integration
author lbajardsilogic
date Mon, 11 Feb 2008 15:17:54 +0000
parents
children 7d5d51145b81
rev   line source
lbajardsilogic@223 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@223 2
lbajardsilogic@223 3 /* Sound Access
lbajardsilogic@223 4 EASAIER client application.
lbajardsilogic@223 5 Silogic 2007. Laure Bajard.
lbajardsilogic@223 6
lbajardsilogic@223 7 Integration of the filter provided by:
lbajardsilogic@223 8 Dublin Institute of Technology - Audio Research Group 2007
lbajardsilogic@223 9 www.audioresearchgroup.com
lbajardsilogic@223 10 Author: Dan Barry
lbajardsilogic@223 11
lbajardsilogic@223 12 This program is free software; you can redistribute it and/or
lbajardsilogic@223 13 modify it under the terms of the GNU General Public License as
lbajardsilogic@223 14 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@223 15 License, or (at your option) any later version. See the file
lbajardsilogic@223 16 COPYING included with this distribution for more information.
lbajardsilogic@223 17 */
lbajardsilogic@223 18
lbajardsilogic@223 19 #ifndef _MULTI_REAL_TIME_FILTER_H_
lbajardsilogic@223 20 #define _MULTI_REAL_TIME_FILTER_H_
lbajardsilogic@223 21
lbajardsilogic@223 22 #include "Filter.h"
lbajardsilogic@223 23 #include "TimeStretchFilter.h"
lbajardsilogic@223 24 #include "EqualizerFilter.h"
lbajardsilogic@223 25
lbajardsilogic@223 26 class MultiRealTimeFilter : public Filter
lbajardsilogic@223 27 {
lbajardsilogic@223 28 Q_OBJECT
lbajardsilogic@223 29
lbajardsilogic@223 30 public:
lbajardsilogic@223 31 MultiRealTimeFilter();
lbajardsilogic@223 32 virtual ~MultiRealTimeFilter();
lbajardsilogic@223 33
lbajardsilogic@223 34 virtual void putInput(float **input, size_t samples);
lbajardsilogic@223 35 virtual void getOutput(float **output, size_t samples);
lbajardsilogic@223 36
lbajardsilogic@223 37 virtual size_t getRequiredInputSamples(size_t outputSamplesNeeded);
lbajardsilogic@223 38 size_t getRequiredSkipSamples();
lbajardsilogic@223 39
lbajardsilogic@223 40 virtual bool allowMultiple(){return false;}
lbajardsilogic@223 41
lbajardsilogic@223 42 signals:
lbajardsilogic@223 43 void playSpeedChanged(float);
lbajardsilogic@223 44
lbajardsilogic@223 45 public slots :
lbajardsilogic@223 46 void setFilterEnabled(bool b);
lbajardsilogic@223 47 void setFilterEnabled(int b);
lbajardsilogic@223 48
lbajardsilogic@223 49 protected:
lbajardsilogic@223 50
lbajardsilogic@223 51 size_t m_framesize;
lbajardsilogic@223 52 int m_hop;
lbajardsilogic@223 53
lbajardsilogic@223 54 int m_transhold;
lbajardsilogic@223 55
lbajardsilogic@223 56 float *m_inputBuffer;
lbajardsilogic@223 57
lbajardsilogic@223 58 float *audioframe;
lbajardsilogic@223 59 float *prev_audioframe;
lbajardsilogic@223 60 float *window;
lbajardsilogic@223 61 float *processedframe;
lbajardsilogic@223 62 float *outbuffer;
lbajardsilogic@223 63 float *holdbuffer3;
lbajardsilogic@223 64 float *holdbuffer2;
lbajardsilogic@223 65 float *holdbuffer1;
lbajardsilogic@223 66
lbajardsilogic@223 67 float *c_phase; ///CURRENT FRAME phases
lbajardsilogic@223 68 float *p_phase; ///PREVIOUS FRAME phases
lbajardsilogic@223 69 float *c_synthphase;
lbajardsilogic@223 70 float *p_synthphase;
lbajardsilogic@223 71 float *synthframe;
lbajardsilogic@223 72
lbajardsilogic@223 73 TimeStretchFilter * m_timeStretchFilter;
lbajardsilogic@223 74 EqualizerFilter * m_equalizerFilter;
lbajardsilogic@223 75
lbajardsilogic@223 76 };
lbajardsilogic@223 77
lbajardsilogic@223 78 #endif