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@229
|
56 float *m_inputBufferL;
|
lbajardsilogic@229
|
57 float *m_inputBufferR;
|
lbajardsilogic@223
|
58
|
lbajardsilogic@229
|
59 /* DAN Removed
|
lbajardsilogic@223
|
60 float *audioframe;
|
lbajardsilogic@223
|
61 float *prev_audioframe;
|
lbajardsilogic@229
|
62 float *processedframe;
|
lbajardsilogic@229
|
63 */
|
lbajardsilogic@229
|
64
|
lbajardsilogic@223
|
65 float *window;
|
lbajardsilogic@229
|
66
|
lbajardsilogic@229
|
67 // DAN Added
|
lbajardsilogic@229
|
68 float *L_audioframe; //
|
lbajardsilogic@229
|
69 float *R_audioframe; //
|
lbajardsilogic@229
|
70 float *pL_audioframe; //
|
lbajardsilogic@229
|
71 float *pR_audioframe; //
|
lbajardsilogic@229
|
72 float *L_processedframe; //
|
lbajardsilogic@229
|
73 float *R_processedframe;
|
lbajardsilogic@229
|
74
|
lbajardsilogic@229
|
75
|
lbajardsilogic@229
|
76 /* DAN Removed
|
lbajardsilogic@223
|
77 float *outbuffer;
|
lbajardsilogic@223
|
78 float *holdbuffer3;
|
lbajardsilogic@223
|
79 float *holdbuffer2;
|
lbajardsilogic@223
|
80 float *holdbuffer1;
|
lbajardsilogic@229
|
81 */
|
lbajardsilogic@223
|
82
|
lbajardsilogic@229
|
83 // DAN Added
|
lbajardsilogic@229
|
84 float *L_outbuffer;
|
lbajardsilogic@229
|
85 float *L_holdbuffer3;
|
lbajardsilogic@229
|
86 float *L_holdbuffer2;
|
lbajardsilogic@229
|
87 float *L_holdbuffer1;
|
lbajardsilogic@229
|
88 float *R_outbuffer;
|
lbajardsilogic@229
|
89 float *R_holdbuffer3;
|
lbajardsilogic@229
|
90 float *R_holdbuffer2;
|
lbajardsilogic@229
|
91 float *R_holdbuffer1;
|
lbajardsilogic@229
|
92
|
lbajardsilogic@229
|
93
|
lbajardsilogic@229
|
94 float *L_phase; ///CURRENT FRAME phases
|
lbajardsilogic@229
|
95 float *R_phase; ///CURRENT FRAME phases
|
lbajardsilogic@229
|
96 float *pL_phase; ///PREVIOUS FRAME phases
|
lbajardsilogic@229
|
97 float *pR_phase; ///PREVIOUS FRAME phases
|
lbajardsilogic@229
|
98 float *cL_synthphase;
|
lbajardsilogic@229
|
99 float *cR_synthphase;
|
lbajardsilogic@229
|
100 float *pL_synthphase;
|
lbajardsilogic@229
|
101 float *pR_synthphase;
|
lbajardsilogic@229
|
102
|
lbajardsilogic@229
|
103 /* DAN Removed
|
lbajardsilogic@223
|
104 float *c_phase; ///CURRENT FRAME phases
|
lbajardsilogic@223
|
105 float *p_phase; ///PREVIOUS FRAME phases
|
lbajardsilogic@223
|
106 float *c_synthphase;
|
lbajardsilogic@223
|
107 float *p_synthphase;
|
lbajardsilogic@223
|
108 float *synthframe;
|
lbajardsilogic@229
|
109 */
|
lbajardsilogic@229
|
110
|
lbajardsilogic@229
|
111 // DAN Added - Following variables for EQ tool
|
lbajardsilogic@229
|
112 int gainband1;
|
lbajardsilogic@229
|
113 int gainband2;
|
lbajardsilogic@229
|
114 int gainband3;
|
lbajardsilogic@229
|
115 int gainband4;
|
lbajardsilogic@229
|
116 int gainband5;
|
lbajardsilogic@229
|
117
|
lbajardsilogic@229
|
118 /*float *band1;
|
lbajardsilogic@229
|
119 float *band2;
|
lbajardsilogic@229
|
120 float *band3;
|
lbajardsilogic@229
|
121 float *band4;
|
lbajardsilogic@229
|
122 float *band5;*/
|
lbajardsilogic@229
|
123
|
lbajardsilogic@229
|
124 // DAN Added - Following variables for graphical plots in EQ tool
|
lbajardsilogic@229
|
125 float *bandcurve;
|
lbajardsilogic@229
|
126 float *plotbandcurve;
|
lbajardsilogic@229
|
127 //float *eqcurve;
|
lbajardsilogic@229
|
128 float *plotFFTarray;
|
lbajardsilogic@223
|
129
|
lbajardsilogic@223
|
130 TimeStretchFilter * m_timeStretchFilter;
|
lbajardsilogic@223
|
131 EqualizerFilter * m_equalizerFilter;
|
lbajardsilogic@223
|
132
|
lbajardsilogic@223
|
133 };
|
lbajardsilogic@223
|
134
|
lbajardsilogic@223
|
135 #endif |