Audacity  3.0.3
Equalization.h
Go to the documentation of this file.
1 /**********************************************************************
2 
3  Audacity: A Digital Audio Editor
4 
5  Equalization.h
6 
7  Mitch Golden
8  Vaughan Johnson (Preview)
9 
10 ***********************************************************************/
11 
12 #ifndef __AUDACITY_EFFECT_EQUALIZATION__
13 #define __AUDACITY_EFFECT_EQUALIZATION__
14 #define NUMBER_OF_BANDS 31
15 #define NUM_PTS 180
16 #define PANELBORDER 1 // only increase from '1' for testing purposes - MJS
17 
18 #include <wx/setup.h> // for wxUSE_* macros
19 
20 #include "Effect.h"
21 #include "RealFFTf.h"
22 
23 // Flags to specialise the UI
24 const int kEqOptionGraphic =1;
25 const int kEqOptionCurve =1<<1;
26 // The legacy version offers both Graphic and curve on the same UI.
28 
29 class wxBitmap;
30 class wxBoxSizer;
31 class wxButton;
32 class wxCheckBox;
33 class wxChoice;
34 class wxListCtrl;
35 class wxListEvent;
36 class wxRadioButton;
37 class wxSizer;
38 class wxSizerItem;
39 class wxSlider;
40 class wxStaticText;
41 class Envelope;
42 class EnvelopeEditor;
43 class EqualizationPanel;
44 class RulerPanel;
45 
46 //
47 // One point in a curve
48 //
49 class EQPoint
50 {
51 public:
52  EQPoint( const double f, const double d ) { Freq = f; dB = d; }
53 
54  bool operator < (const EQPoint &p1) const
55  {
56  return Freq < p1.Freq;
57  }
58 
59  double Freq;
60  double dB;
61 };
62 
63 //
64 // One curve in a list
65 //
66 // LLL: This "really" isn't needed as the array of points could be
67 // attached as wxClientData to the wxChoice entries. I
68 // didn't realize this until after the fact and am too
69 // lazy to change it. (But, hollar if you want me to.)
70 //
71 class EQCurve
72 {
73 public:
74  EQCurve( const wxString & name = {} ) { Name = name; }
75  EQCurve( const wxChar * name ) { Name = name; }
76 
77  bool operator < (const EQCurve &that) const
78  {
79  return Name.CmpNoCase(that.Name) < 0;
80  }
81 
82  wxString Name;
83  std::vector<EQPoint> points;
84 };
85 
86 using EQCurveArray = std::vector<EQCurve>;
87 
88 #ifdef EXPERIMENTAL_EQ_SSE_THREADED
89 class EffectEqualization48x;
90 #endif
91 
92 class EffectEqualization : public Effect,
93  public XMLTagHandler
94 {
95 public:
97 
99 
100  virtual ~EffectEqualization();
101 
102  // ComponentInterface implementation
103 
106  ManualPageID ManualPage() override;
107 
108  // EffectDefinitionInterface implementation
109 
110  EffectType GetType() override;
111 
112  // EffectClientInterface implementation
113 
114  bool DefineParams( ShuttleParams & S ) override;
115  bool GetAutomationParameters(CommandParameters & parms) override;
116  bool SetAutomationParameters(CommandParameters & parms) override;
117  bool LoadFactoryDefaults() override;
118 
119  RegistryPaths GetFactoryPresets() override;
120  bool LoadFactoryPreset(int id) override;
121 
122  // EffectUIClientInterface implementation
123 
124  bool ValidateUI() override;
125 
126  // Effect implementation
127 
128  bool Startup() override;
129  bool Init() override;
130  bool Process() override;
131 
132  bool CloseUI() override;
133  void PopulateOrExchange(ShuttleGui & S) override;
134  bool TransferDataToWindow() override;
135  bool TransferDataFromWindow() override;
136 
137 private:
138  // EffectEqualization implementation
139  wxString GetPrefsPrefix();
140 
141  // Number of samples in an FFT window
142  static const size_t windowSize = 16384u; //MJS - work out the optimum for this at run time? Have a dialog box for it?
143 
144  // Low frequency of the FFT. 20Hz is the
145  // low range of human hearing
146  enum {loFreqI=20};
147 
148  bool ProcessOne(int count, WaveTrack * t,
149  sampleCount start, sampleCount len);
150  bool CalcFilter();
151  void Filter(size_t len, float *buffer);
152 
153  void Flatten();
154  void ForceRecalc();
155  void EnvelopeUpdated();
156  void EnvelopeUpdated(Envelope *env, bool lin);
157  bool IsLinear();
158 
159  void LoadCurves(const wxString &fileName = {}, bool append = false);
160  void SaveCurves(const wxString &fileName = {});
161  // Merge NEW curves only or update all factory presets.
162  void UpdateDefaultCurves( bool updateAll = false);
163  void Select(int sel);
164  void setCurve(int currentCurve);
165  void setCurve(const wxString &curveName);
166  void setCurve(void);
167  bool GetDefaultFileName(wxFileName &fileName);
168 
169  // XMLTagHandler callback methods for loading and saving
170  bool HandleXMLTag(const wxChar *tag, const wxChar **attrs) override;
171  XMLTagHandler *HandleXMLChild(const wxChar *tag) override;
172  void WriteXML(XMLWriter &xmlFile) const;
173 
174  void UpdateCurves();
175  void UpdateDraw();
176 
177  //void LayoutEQSliders();
178  void UpdateGraphic(void);
179  void EnvLogToLin(void);
180  void EnvLinToLog(void);
181  void ErrMin(void);
182  void GraphicEQ(Envelope *env);
183  void spline(double x[], double y[], size_t n, double y2[]);
184  double splint(double x[], double y[], size_t n, double y2[], double xr);
185 
186  void OnErase( wxEvent &event );
187  void OnSize( wxSizeEvent & event );
188  void OnSlider( wxCommandEvent & event );
189  void OnInterp( wxCommandEvent & event );
190  void OnSliderM( wxCommandEvent & event );
191  void OnSliderDBMAX( wxCommandEvent & event );
192  void OnSliderDBMIN( wxCommandEvent & event );
193  void OnDrawMode( wxCommandEvent &event );
194  void OnGraphicMode( wxCommandEvent &event );
195  void OnCurve( wxCommandEvent & event );
196  void OnManage( wxCommandEvent & event );
197  void OnClear( wxCommandEvent & event );
198  void OnInvert( wxCommandEvent & event );
199  void OnGridOnOff( wxCommandEvent & event );
200  void OnLinFreq( wxCommandEvent & event );
201 #ifdef EXPERIMENTAL_EQ_SSE_THREADED
202  void OnProcessingRadio( wxCommandEvent & event );
203  void OnBench( wxCommandEvent & event );
204 #endif
205 
206 private:
207  int mOptions;
210  size_t mM;
211  wxString mCurveName;
212  bool mLin;
213  float mdBMax;
214  float mdBMin;
215  bool mDrawMode;
216  int mInterp;
217  bool mDrawGrid;
218 
219  double mWhens[NUM_PTS];
221  size_t mBandsInUse;
224 
226  double mLoFreq;
227  double mHiFreq;
228  size_t mWindowSize;
229  bool mDirty;
232 
234 
235  std::unique_ptr<Envelope> mLogEnvelope, mLinEnvelope;
237 
238 #ifdef EXPERIMENTAL_EQ_SSE_THREADED
239  bool mBench;
240  std::unique_ptr<EffectEqualization48x> mEffectEqualization48x;
241  friend class EffectEqualization48x;
242 #endif
243 
244  wxSizer *szrC;
245  wxSizer *szrG;
246  wxSizer *szrV;
247  wxSizer *szrH;
248  wxSizer *szrI;
249  wxSizer *szrL;
250  wxSizer *szr1;
251  wxSizer *szr2;
252  wxSizer *szr3;
253  wxSizer *szr4;
254  wxSizer *szr5;
255 
256  wxSizerItem *mLeftSpacer;
257 
259  //wxPanel *mGraphicPanel;
260  wxRadioButton *mDraw;
261  wxRadioButton *mGraphic;
262  wxCheckBox *mLinFreq;
263  wxCheckBox *mGridOnOff;
264  wxChoice *mInterpChoice;
265  wxChoice *mCurve;
266  wxButton *mManage;
267  wxStaticText *mMText;
268  wxSlider *mMSlider;
269  wxSlider *mdBMinSlider;
270  wxSlider *mdBMaxSlider;
272 
273 #ifdef EXPERIMENTAL_EQ_SSE_THREADED
274  wxRadioButton *mMathProcessingType[5]; // default, sse, sse threaded, AVX, AVX threaded (note AVX is not implemented yet
275  wxBoxSizer *szrM;
276 #endif
277 
278  DECLARE_EVENT_TABLE()
279 
280  friend class EqualizationPanel;
281  friend class EditCurvesDialog;
282 };
283 
285 {
286 public:
288 
290 };
291 
293 {
294 public:
296 
298 };
299 
300 class EqualizationPanel final : public wxPanelWrapper
301 {
302 public:
304  wxWindow *parent, wxWindowID winid, EffectEqualization *effect);
306 
307  // We don't need or want to accept focus.
308  bool AcceptsFocus() const { return false; }
309  // So that wxPanel is not included in Tab traversal - see wxWidgets bug 15581
310  bool AcceptsFocusFromKeyboard() const { return false; }
311 
312  void ForceRecalc();
313 
314 private:
315  void Recalc();
316 
317  void OnMouseEvent(wxMouseEvent & event);
318  void OnCaptureLost(wxMouseCaptureLostEvent & event);
319  void OnPaint(wxPaintEvent & event);
320  void OnSize (wxSizeEvent & event);
321 
322 public:
323 // int & mM;
324 // float & mdBMax;
325 // float & mdBMin;
326 // Envelope & mEnvelope;
327 
328 private:
329  wxWindow *mParent;
331  std::unique_ptr<EnvelopeEditor> mLinEditor, mLogEditor;
332 
334 
335  std::unique_ptr<wxBitmap> mBitmap;
336  wxRect mEnvRect;
337  int mWidth;
338  int mHeight;
339 // size_t mWindowSize;
340 // float *mFilterFuncR;
341 // float *mFilterFuncI;
342  Floats mOutr, mOuti;
343 
344 // double mLoFreq;
345 // double mHiFreq;
346 
347  DECLARE_EVENT_TABLE()
348 };
349 
350 // EditCurvesDialog. Note that the 'modified' curve used to be called 'custom' but is now called 'unnamed'
351 // Some things that deal with 'unnamed' curves still use, for example, 'mCustomBackup' as variable names.
352 class EditCurvesDialog final : public wxDialogWrapper
353 {
354 public:
355  EditCurvesDialog(wxWindow * parent, EffectEqualization * effect, int position);
356  ~EditCurvesDialog();
357 
358 private:
359 
361  {
362  CurvesListID = 11000,
371  };
372 
373  wxListCtrl *mList; // List of curves.
374  EQCurveArray mEditCurves; // Copy of curves to muck about with
375  wxWindow *mParent; // the parent EQ Dialog
376  EffectEqualization *mEffect; // the parent EQ effect
377  int mPosition; // position of current curve in list
378  void Populate();
380  void PopulateList(int position);
381  void OnUp(wxCommandEvent &event);
382  void OnDown(wxCommandEvent &event);
383  long GetPreviousItem(long item);
384  void OnRename( wxCommandEvent &event );
385  void OnDelete( wxCommandEvent &event );
386  void OnImport( wxCommandEvent &event );
387  void OnExport( wxCommandEvent &event );
388  void OnLibrary( wxCommandEvent &event );
389  void OnDefaults( wxCommandEvent &event );
390  void OnOK(wxCommandEvent &event);
391 
392  void OnListSelectionChange( wxListEvent &event );
393  DECLARE_EVENT_TABLE()
394 };
395 
396 #endif
XMLWriter
Base class for XMLFileWriter and XMLStringWriter that provides the general functionality for creating...
Definition: XMLWriter.h:23
EffectEqualization::HandleXMLChild
XMLTagHandler * HandleXMLChild(const wxChar *tag) override
Definition: Equalization.cpp:2286
EffectEqualization::OnGridOnOff
void OnGridOnOff(wxCommandEvent &event)
Definition: Equalization.cpp:3003
EqualizationPanel::mRecalcRequired
bool mRecalcRequired
Definition: Equalization.h:333
EditCurvesDialog::LibraryButtonID
@ LibraryButtonID
Definition: Equalization.h:369
EqualizationPanel::AcceptsFocus
bool AcceptsFocus() const
Definition: Equalization.h:308
TranslatableString
Holds a msgid for the translation catalog; may also bind format arguments.
Definition: TranslatableString.h:32
EffectEqualization::mLogEnvelope
std::unique_ptr< Envelope > mLogEnvelope
Definition: Equalization.h:235
CommandParameters
CommandParameters, derived from wxFileConfig, is essentially doing the same things as the Shuttle cla...
Definition: EffectAutomationParameters.h:67
EffectEqualization::OnGraphicMode
void OnGraphicMode(wxCommandEvent &event)
Definition: Equalization.cpp:2881
EffectEqualization::szr2
wxSizer * szr2
Definition: Equalization.h:251
kEqOptionGraphic
const int kEqOptionGraphic
Definition: Equalization.h:24
WaveTrack
A Track that contains audio waveform data.
Definition: WaveTrack.h:69
EffectEqualization::mGraphic
wxRadioButton * mGraphic
Definition: Equalization.h:261
RulerPanel
RulerPanel class allows you to work with a Ruler like any other wxWindow.
Definition: Ruler.h:228
EffectEqualization::mManage
wxButton * mManage
Definition: Equalization.h:266
EQCurve::EQCurve
EQCurve(const wxString &name={})
Definition: Equalization.h:74
EditCurvesDialog::DownButtonID
@ DownButtonID
Definition: Equalization.h:364
EditCurvesDialog::RenameButtonID
@ RenameButtonID
Definition: Equalization.h:365
EqualizationPanel::mBitmap
std::unique_ptr< wxBitmap > mBitmap
Definition: Equalization.h:335
EffectEqualization::ManualPage
ManualPageID ManualPage() override
Definition: Equalization.cpp:352
Effect.h
EQCurve::Name
wxString Name
Definition: Equalization.h:82
EditCurvesDialog::ImportButtonID
@ ImportButtonID
Definition: Equalization.h:367
EffectEqualization::mdBMin
float mdBMin
Definition: Equalization.h:214
EffectEqualization::WriteXML
void WriteXML(XMLWriter &xmlFile) const
Definition: Equalization.cpp:2309
EffectEqualization::LoadCurves
void LoadCurves(const wxString &fileName={}, bool append=false)
Definition: Equalization.cpp:1589
EffectEqualization::OnSize
void OnSize(wxSizeEvent &event)
Definition: Equalization.cpp:2820
EffectEqualization::GetType
EffectType GetType() override
Definition: Equalization.cpp:364
wxPanelWrapper
Definition: wxPanelWrapper.h:41
Effect
Base class for many of the effects in Audacity.
Definition: Effect.h:72
RegistryPaths
std::vector< RegistryPath > RegistryPaths
Definition: Identifier.h:219
EffectEqualization::mWindowSize
size_t mWindowSize
Definition: Equalization.h:228
EffectEqualization::OnDrawMode
void OnDrawMode(wxCommandEvent &event)
Definition: Equalization.cpp:2875
EffectEqualization::mMText
wxStaticText * mMText
Definition: Equalization.h:267
EffectEqualization::GetAutomationParameters
bool GetAutomationParameters(CommandParameters &parms) override
Definition: Equalization.cpp:412
EffectEqualization
An Effect that modifies volume in different frequency bands.
Definition: Equalization.h:94
EffectEqualization::GetDescription
TranslatableString GetDescription() override
Definition: Equalization.cpp:347
EffectEqualization::GraphicEQ
void GraphicEQ(Envelope *env)
Definition: Equalization.cpp:2635
EqualizationPanel::mLogEditor
std::unique_ptr< EnvelopeEditor > mLogEditor
Definition: Equalization.h:331
EffectEqualization::TransferDataFromWindow
bool TransferDataFromWindow() override
Definition: Equalization.cpp:1240
EQCurve::points
std::vector< EQPoint > points
Definition: Equalization.h:83
EffectEqualization::OnSliderDBMAX
void OnSliderDBMAX(wxCommandEvent &event)
Definition: Equalization.cpp:2898
EffectEqualization::hFFT
HFFT hFFT
Definition: Equalization.h:208
EditCurvesDialog::mEditCurves
EQCurveArray mEditCurves
Definition: Equalization.h:374
Envelope
Piecewise linear or piecewise exponential function from double to double.
Definition: Envelope.h:71
EffectEqualizationGraphic::Symbol
static const ComponentInterfaceSymbol Symbol
Definition: Equalization.h:295
EffectEqualizationGraphic
Definition: Equalization.h:293
EffectEqualization::mLoFreq
double mLoFreq
Definition: Equalization.h:226
EffectEqualization::CloseUI
bool CloseUI() override
Definition: Equalization.cpp:750
EffectEqualization::mEQVals
double mEQVals[NUMBER_OF_BANDS+1]
Definition: Equalization.h:231
EffectEqualization::mdBMax
float mdBMax
Definition: Equalization.h:213
EffectEqualization::DefineParams
bool DefineParams(ShuttleParams &S) override
Definition: Equalization.cpp:370
EditCurvesDialog::mList
wxListCtrl * mList
Definition: Equalization.h:373
ShuttleParams
Shuttle that deals with parameters. This is a base class with lots of virtual functions that do nothi...
Definition: Shuttle.h:62
RealFFTf.h
EffectEqualization::GetFactoryPresets
RegistryPaths GetFactoryPresets() override
Definition: Equalization.cpp:491
EffectEqualization::mBandsInUse
size_t mBandsInUse
Definition: Equalization.h:221
EffectEqualization::Startup
bool Startup() override
Definition: Equalization.cpp:599
EffectEqualization::EqualizationPanel
friend class EqualizationPanel
Definition: Equalization.h:280
EffectEqualization::UpdateGraphic
void UpdateGraphic(void)
Definition: Equalization.cpp:2432
EffectEqualization::mLeftSpacer
wxSizerItem * mLeftSpacer
Definition: Equalization.h:256
EffectEqualization::mWhenSliders
double mWhenSliders[NUMBER_OF_BANDS+1]
Definition: Equalization.h:220
EffectEqualization::HandleXMLTag
bool HandleXMLTag(const wxChar *tag, const wxChar **attrs) override
Definition: Equalization.cpp:2185
EffectEqualization::mdBMinSlider
wxSlider * mdBMinSlider
Definition: Equalization.h:269
EditCurvesDialog::mPosition
int mPosition
Definition: Equalization.h:377
EQPoint::EQPoint
EQPoint(const double f, const double d)
Definition: Equalization.h:52
ComponentInterfaceSymbol
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
Definition: ComponentInterfaceSymbol.h:27
EffectEqualization::mSlidersOld
int mSlidersOld[NUMBER_OF_BANDS]
Definition: Equalization.h:230
EffectEqualization::loFreqI
@ loFreqI
Definition: Equalization.h:146
EffectEqualization::SaveCurves
void SaveCurves(const wxString &fileName={})
Definition: Equalization.cpp:1833
EffectEqualization::szr1
wxSizer * szr1
Definition: Equalization.h:250
EditCurvesDialog
Definition: Equalization.h:353
EffectEqualization::mLin
bool mLin
Definition: Equalization.h:212
EffectEqualization::mFilterFuncR
Floats mFilterFuncR
Definition: Equalization.h:209
EffectEqualization::szrI
wxSizer * szrI
Definition: Equalization.h:248
EditCurvesDialog::EQCurvesDialogControls
EQCurvesDialogControls
Definition: Equalization.h:361
EQPoint
EQPoint is used with EQCurve and hence EffectEqualization.
Definition: Equalization.h:50
EffectEqualization::Flatten
void Flatten()
Definition: Equalization.cpp:2156
EffectEqualization::mLinEnvelope
std::unique_ptr< Envelope > mLinEnvelope
Definition: Equalization.h:235
EditCurvesDialog::mEffect
EffectEqualization * mEffect
Definition: Equalization.h:376
EffectEqualization::mPanel
EqualizationPanel * mPanel
Definition: Equalization.h:258
EffectEqualization::spline
void spline(double x[], double y[], size_t n, double y2[])
Definition: Equalization.cpp:2773
EffectEqualization::szr4
wxSizer * szr4
Definition: Equalization.h:253
EffectEqualization::mMSlider
wxSlider * mMSlider
Definition: Equalization.h:268
EffectEqualization::Select
void Select(int sel)
Definition: Equalization.cpp:2062
EffectEqualization::UpdateCurves
void UpdateCurves()
Definition: Equalization.cpp:2351
EffectEqualization::mM
size_t mM
Definition: Equalization.h:210
EffectEqualization::mOptions
int mOptions
Definition: Equalization.h:207
EffectEqualization::setCurve
void setCurve(void)
Definition: Equalization.cpp:2036
EffectEqualization::mCurves
EQCurveArray mCurves
Definition: Equalization.h:233
EffectEqualization::OnManage
void OnManage(wxCommandEvent &event)
Definition: Equalization.cpp:2918
EffectEqualization::OnLinFreq
void OnLinFreq(wxCommandEvent &event)
Definition: Equalization.cpp:3009
EqualizationPanel::AcceptsFocusFromKeyboard
bool AcceptsFocusFromKeyboard() const
Definition: Equalization.h:310
EffectEqualizationCurve
Definition: Equalization.h:285
name
const TranslatableString name
Definition: Distortion.cpp:98
EffectEqualization::szrG
wxSizer * szrG
Definition: Equalization.h:245
EffectEqualization::GetSymbol
ComponentInterfaceSymbol GetSymbol() override
Definition: Equalization.cpp:338
EqualizationPanel::mWidth
int mWidth
Definition: Equalization.h:337
kEqLegacy
const int kEqLegacy
Definition: Equalization.h:27
EQPoint::dB
double dB
Definition: Equalization.h:60
EffectEqualization::splint
double splint(double x[], double y[], size_t n, double y2[], double xr)
Definition: Equalization.cpp:2795
EffectEqualization::LoadFactoryPreset
bool LoadFactoryPreset(int id) override
Definition: Equalization.cpp:505
EqualizationPanel::mEffect
EffectEqualization * mEffect
Definition: Equalization.h:330
EqualizationPanel
EqualizationPanel is used with EqualizationDialog and controls a graph for EffectEqualization....
Definition: Equalization.h:301
EffectEqualization::LoadFactoryDefaults
bool LoadFactoryDefaults() override
Definition: Equalization.cpp:448
EffectEqualization::mLinFreq
wxCheckBox * mLinFreq
Definition: Equalization.h:262
EffectEqualization::mDirty
bool mDirty
Definition: Equalization.h:229
EffectEqualization::mInterp
int mInterp
Definition: Equalization.h:216
EffectEqualization::szr5
wxSizer * szr5
Definition: Equalization.h:254
NUMBER_OF_BANDS
#define NUMBER_OF_BANDS
Definition: Equalization.h:14
EffectEqualization::EnvLogToLin
void EnvLogToLin(void)
Definition: Equalization.cpp:2493
EffectEqualization::ProcessOne
bool ProcessOne(int count, WaveTrack *t, sampleCount start, sampleCount len)
Definition: Equalization.cpp:1299
EditCurvesDialog::DeleteButtonID
@ DeleteButtonID
Definition: Equalization.h:366
XMLTagHandler
This class is an interface which should be implemented by classes which wish to be able to load and s...
Definition: XMLTagHandler.h:62
EffectEqualization::IsLinear
bool IsLinear()
Definition: Equalization.cpp:2148
EditCurvesDialog::mParent
wxWindow * mParent
Definition: Equalization.h:375
EffectEqualization::mdBMaxSlider
wxSlider * mdBMaxSlider
Definition: Equalization.h:270
wxDialogWrapper
Definition: wxPanelWrapper.h:81
kEqOptionCurve
const int kEqOptionCurve
Definition: Equalization.h:25
EffectEqualization::szrH
wxSizer * szrH
Definition: Equalization.h:247
EffectEqualization::EnvLinToLog
void EnvLinToLog(void)
Definition: Equalization.cpp:2517
EffectEqualization::OnCurve
void OnCurve(wxCommandEvent &event)
Definition: Equalization.cpp:2906
EffectEqualization::~EffectEqualization
virtual ~EffectEqualization()
Definition: Equalization.cpp:332
EffectEqualization::mDisallowCustom
bool mDisallowCustom
Definition: Equalization.h:225
EffectEqualizationCurve::EffectEqualizationCurve
EffectEqualizationCurve()
Definition: Equalization.h:289
EffectEqualization::EditCurvesDialog
friend class EditCurvesDialog
Definition: Equalization.h:281
EQCurve::operator<
bool operator<(const EQCurve &that) const
Definition: Equalization.h:77
TaggedIdentifier< ManualPageIDTag >
EffectEqualization::SetAutomationParameters
bool SetAutomationParameters(CommandParameters &parms) override
Definition: Equalization.cpp:422
EffectEqualization::Symbol
static const ComponentInterfaceSymbol Symbol
Definition: Equalization.h:96
sampleCount
Positions or offsets within audio files need a wide type.
Definition: SampleCount.h:18
EffectEqualization::mGridOnOff
wxCheckBox * mGridOnOff
Definition: Equalization.h:263
EffectEqualization::Process
bool Process() override
Definition: Equalization.cpp:708
EffectEqualization::ForceRecalc
void ForceRecalc()
Definition: Equalization.cpp:2075
EffectEqualization::szrL
wxSizer * szrL
Definition: Equalization.h:249
EffectEqualization::GetDefaultFileName
bool GetDefaultFileName(wxFileName &fileName)
Definition: Equalization.cpp:1805
EffectEqualization::mCurveName
wxString mCurveName
Definition: Equalization.h:211
EffectEqualization::mDrawMode
bool mDrawMode
Definition: Equalization.h:215
EQPoint::operator<
bool operator<(const EQPoint &p1) const
Definition: Equalization.h:54
EffectEqualization::mWhens
double mWhens[NUM_PTS]
Definition: Equalization.h:219
EffectEqualization::EnvelopeUpdated
void EnvelopeUpdated()
Definition: Equalization.cpp:2086
EffectEqualization::GetPrefsPrefix
wxString GetPrefsPrefix()
Definition: Equalization.cpp:588
EQCurveArray
std::vector< EQCurve > EQCurveArray
Definition: Equalization.h:86
EffectEqualization::TransferDataToWindow
bool TransferDataToWindow() override
Definition: Equalization.cpp:1184
EffectEqualization::Filter
void Filter(size_t len, float *buffer)
Definition: Equalization.cpp:1561
EditCurvesDialog::UpButtonID
@ UpButtonID
Definition: Equalization.h:363
EffectEqualization::szr3
wxSizer * szr3
Definition: Equalization.h:252
EffectEqualizationGraphic::EffectEqualizationGraphic
EffectEqualizationGraphic()
Definition: Equalization.h:297
HFFT
std::unique_ptr< FFTParam, FFTDeleter > HFFT
Definition: RealFFTf.h:22
EffectEqualization::mFreqRuler
RulerPanel * mFreqRuler
Definition: Equalization.h:223
EqualizationPanel::mHeight
int mHeight
Definition: Equalization.h:338
EffectEqualization::szrV
wxSizer * szrV
Definition: Equalization.h:246
EQCurve
EQCurve is used with EffectEqualization.
Definition: Equalization.h:72
EffectEqualization::mFFTBuffer
Floats mFFTBuffer
Definition: Equalization.h:209
EffectEqualization::EffectEqualization
EffectEqualization(int Options=kEqLegacy)
EffectEqualization::UpdateDraw
void UpdateDraw()
Definition: Equalization.cpp:2379
EffectEqualization::mHiFreq
double mHiFreq
Definition: Equalization.h:227
EffectEqualization::mEnvelope
Envelope * mEnvelope
Definition: Equalization.h:236
EffectEqualization::OnSliderDBMIN
void OnSliderDBMIN(wxCommandEvent &event)
Definition: Equalization.cpp:2893
EffectEqualization::CalcFilter
bool CalcFilter()
Definition: Equalization.cpp:1448
EffectEqualization::mdBRuler
RulerPanel * mdBRuler
Definition: Equalization.h:222
NUM_PTS
#define NUM_PTS
Definition: Equalization.h:15
EditCurvesDialog::ExportButtonID
@ ExportButtonID
Definition: Equalization.h:368
EffectEqualization::mFilterFuncI
Floats mFilterFuncI
Definition: Equalization.h:209
EQPoint::Freq
double Freq
Definition: Equalization.h:59
EffectEqualization::OnClear
void OnClear(wxCommandEvent &event)
Definition: Equalization.cpp:2930
EffectEqualization::OnSliderM
void OnSliderM(wxCommandEvent &event)
Definition: Equalization.cpp:2887
EqualizationPanel::mParent
wxWindow * mParent
Definition: Equalization.h:329
EffectEqualization::mDrawGrid
bool mDrawGrid
Definition: Equalization.h:217
EffectType
EffectType
Definition: EffectInterface.h:55
EffectEqualization::OnErase
void OnErase(wxEvent &event)
Definition: Equalization.cpp:2816
EffectEqualization::mInterpChoice
wxChoice * mInterpChoice
Definition: Equalization.h:264
EffectEqualizationCurve::Symbol
static const ComponentInterfaceSymbol Symbol
Definition: Equalization.h:287
DefaultsButtonID
@ DefaultsButtonID
Definition: BatchProcessDialog.cpp:509
EffectEqualization::OnInterp
void OnInterp(wxCommandEvent &event)
Definition: Equalization.cpp:2864
anonymous_namespace{Menus.cpp}::Options
std::vector< CommandFlagOptions > & Options()
Definition: Menus.cpp:527
EffectEqualization::szrC
wxSizer * szrC
Definition: Equalization.h:244
EffectEqualization::PopulateOrExchange
void PopulateOrExchange(ShuttleGui &S) override
Definition: Equalization.cpp:758
EffectEqualization::ValidateUI
bool ValidateUI() override
Definition: Equalization.cpp:540
EffectEqualization::OnSlider
void OnSlider(wxCommandEvent &event)
Definition: Equalization.cpp:2826
ArrayOf< float >
EffectEqualization::Init
bool Init() override
Definition: Equalization.cpp:658
EQCurve::EQCurve
EQCurve(const wxChar *name)
Definition: Equalization.h:75
EffectEqualization::mSliders
wxSlider * mSliders[NUMBER_OF_BANDS]
Definition: Equalization.h:271
EnvelopeEditor
Definition: EnvelopeEditor.h:23
EqualizationPanel::mEnvRect
wxRect mEnvRect
Definition: Equalization.h:336
EffectEqualization::mDraw
wxRadioButton * mDraw
Definition: Equalization.h:260
EffectEqualization::UpdateDefaultCurves
void UpdateDefaultCurves(bool updateAll=false)
Definition: Equalization.cpp:1687
ShuttleGui
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
Definition: ShuttleGui.h:631
EffectEqualization::OnInvert
void OnInvert(wxCommandEvent &event)
Definition: Equalization.cpp:2935
EqualizationPanel::mOutr
Floats mOutr
Definition: Equalization.h:342
EffectEqualization::mCurve
wxChoice * mCurve
Definition: Equalization.h:265
EffectEqualization::ErrMin
void ErrMin(void)
Definition: Equalization.cpp:2559
EffectEqualization::windowSize
static const size_t windowSize
Definition: Equalization.h:142