![]() |
Audacity 3.2.0
|
An Effect that modifies volume in different frequency bands. More...
#include <Equalization.h>
Classes | |
struct | Task |
Public Member Functions | |
EffectEqualization (int Options=kEqLegacy) | |
virtual | ~EffectEqualization () |
ComponentInterfaceSymbol | GetSymbol () const override |
TranslatableString | GetDescription () const override |
ManualPageID | ManualPage () const override |
Name of a page in the Audacity alpha manual, default is empty. More... | |
bool | VisitSettings (SettingsVisitor &visitor, EffectSettings &settings) override |
bool | VisitSettings (ConstSettingsVisitor &visitor, const EffectSettings &settings) const override |
EffectType | GetType () const override |
Type determines how it behaves. More... | |
OptionalMessage | LoadFactoryDefaults (EffectSettings &settings) const override |
OptionalMessage | DoLoadFactoryDefaults (EffectSettings &settings) |
RegistryPaths | GetFactoryPresets () const override |
Report names of factory presets. More... | |
OptionalMessage | LoadFactoryPreset (int id, EffectSettings &settings) const override |
bool | ValidateUI (const EffectPlugin &plugin, EffectSettings &) const override |
bool | Init () override |
bool | Process (EffectInstance &instance, EffectSettings &settings) override |
std::unique_ptr< EffectEditor > | PopulateOrExchange (ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) override |
Add controls to effect panel; always succeeds. More... | |
bool | TransferDataToWindow (const EffectSettings &settings) override |
![]() | |
~StatefulEffect () override | |
std::shared_ptr< EffectInstance > | MakeInstance () const override |
Make an object maintaining short-term state of an Effect. More... | |
![]() | |
virtual bool | Init () |
virtual bool | Process (EffectInstance &instance, EffectSettings &settings)=0 |
virtual bool | RealtimeInitialize (EffectSettings &settings, double sampleRate) |
virtual bool | RealtimeAddProcessor (EffectSettings &settings, EffectOutputs *pOutputs, unsigned numChannels, float sampleRate) |
virtual bool | RealtimeSuspend () |
virtual bool | RealtimeResume () |
virtual bool | RealtimeProcessStart (MessagePackage &package) |
settings are possibly changed, since last call, by an asynchronous dialog More... | |
virtual size_t | RealtimeProcess (size_t group, EffectSettings &settings, const float *const *inBuf, float *const *outBuf, size_t numSamples) |
virtual bool | RealtimeProcessEnd (EffectSettings &settings) noexcept |
settings can be updated to let a dialog change appearance at idle More... | |
virtual bool | RealtimeFinalize (EffectSettings &settings) noexcept |
virtual size_t | SetBlockSize (size_t maxBlockSize) |
virtual size_t | GetBlockSize () const |
virtual unsigned | GetAudioInCount () const |
How many input buffers to allocate at once. More... | |
virtual unsigned | GetAudioOutCount () const |
How many output buffers to allocate at once. More... | |
virtual sampleCount | GetLatency () const |
virtual bool | NeedsDither () const |
virtual bool | ProcessInitialize (EffectSettings &settings, double sampleRate, ChannelNames chanMap=nullptr) |
virtual bool | ProcessFinalize () noexcept |
![]() | |
Effect () | |
virtual | ~Effect () |
PluginPath | GetPath () const override |
bool | VisitSettings (SettingsVisitor &visitor, EffectSettings &settings) override |
bool | VisitSettings (ConstSettingsVisitor &visitor, const EffectSettings &settings) const override |
ComponentInterfaceSymbol | GetSymbol () const override |
VendorSymbol | GetVendor () const override |
wxString | GetVersion () const override |
TranslatableString | GetDescription () const override |
EffectType | GetType () const override |
Type determines how it behaves. More... | |
EffectFamilySymbol | GetFamily () const override |
Report identifier and user-visible name of the effect protocol. More... | |
bool | IsInteractive () const override |
Whether the effect needs a dialog for entry of settings. More... | |
bool | IsDefault () const override |
Whether the effect sorts "above the line" in the menus. More... | |
RealtimeSince | RealtimeSupport () const override |
Since which version of Audacity has the effect supported realtime? More... | |
bool | SupportsAutomation () const override |
Whether the effect has any automatable controls. More... | |
bool | SaveSettings (const EffectSettings &settings, CommandParameters &parms) const override |
Store settings as keys and values. More... | |
bool | LoadSettings (const CommandParameters &parms, EffectSettings &settings) const override |
Restore settings from keys and values. More... | |
OptionalMessage | LoadUserPreset (const RegistryPath &name, EffectSettings &settings) const override |
bool | SaveUserPreset (const RegistryPath &name, const EffectSettings &settings) const override |
Save settings in the configuration file as a user-named preset. More... | |
RegistryPaths | GetFactoryPresets () const override |
Report names of factory presets. More... | |
OptionalMessage | LoadFactoryPreset (int id, EffectSettings &settings) const override |
OptionalMessage | LoadFactoryDefaults (EffectSettings &settings) const override |
virtual const EffectParameterMethods & | Parameters () const |
bool | CanExportPresets () const override |
Whether the effect supports export of presets to files, and importing too. More... | |
bool | HasOptions () const override |
const EffectSettingsManager & | GetDefinition () const override |
virtual NumericFormatSymbol | GetSelectionFormat () |
bool | SaveSettingsAsString (const EffectSettings &settings, wxString &parms) const override |
OptionalMessage | LoadSettingsFromString (const wxString &parms, EffectSettings &settings) const override |
bool | IsBatchProcessing () const override |
void | SetBatchProcessing () override |
void | UnsetBatchProcessing () override |
unsigned | TestUIFlags (unsigned mask) |
bool | Delegate (Effect &delegate, EffectSettings &settings, InstanceFinder finder={}) |
Re-invoke DoEffect on another Effect object that implements the work. More... | |
![]() | |
EffectBase () | |
~EffectBase () override | |
bool | IsLinearEffect () const |
bool | PreviewsFullSelection () const |
void | SetTracks (TrackList *pTracks) |
virtual std::any | BeginPreview (const EffectSettings &settings) |
Called when Preview() starts, to allow temporary effect state changes. More... | |
bool | DoEffect (EffectSettings &settings, const InstanceFinder &finder, double projectRate, TrackList *list, WaveTrackFactory *factory, NotifyingSelectedRegion &selectedRegion, unsigned flags, const EffectSettingsAccessPtr &pAccess) override |
virtual double | CalcPreviewInputLength (const EffectSettings &settings, double previewLength) const =0 |
void | CountWaveTracks () |
![]() | |
EffectPlugin & | operator= (EffectPlugin &)=delete |
virtual | ~EffectPlugin () |
virtual bool | HasOptions () const =0 |
virtual bool | CanExportPresets () const =0 |
Whether the effect supports export of presets to files, and importing too. More... | |
virtual const EffectSettingsManager & | GetDefinition () const =0 |
virtual bool | SaveSettingsAsString (const EffectSettings &settings, wxString &parms) const =0 |
virtual OptionalMessage | LoadSettingsFromString (const wxString &parms, EffectSettings &settings) const =0 |
virtual bool | IsBatchProcessing () const =0 |
virtual void | SetBatchProcessing ()=0 |
virtual void | UnsetBatchProcessing ()=0 |
virtual bool | DoEffect (EffectSettings &settings, const InstanceFinder &finder, double projectRate, TrackList *list, WaveTrackFactory *factory, NotifyingSelectedRegion &selectedRegion, unsigned flags, const EffectSettingsAccessPtr &pAccess=nullptr)=0 |
![]() | |
virtual | ~EffectInstanceFactory () |
virtual std::shared_ptr< EffectInstance > | MakeInstance () const =0 |
Make an object maintaining short-term state of an Effect. More... | |
![]() | |
virtual | ~EffectSettingsManager () |
virtual bool | VisitSettings (SettingsVisitor &visitor, EffectSettings &settings) |
virtual bool | VisitSettings (ConstSettingsVisitor &visitor, const EffectSettings &settings) const |
virtual EffectSettings | MakeSettings () const |
virtual bool | CopySettingsContents (const EffectSettings &src, EffectSettings &dst) const |
Update one settings object from another. More... | |
virtual std::unique_ptr< EffectOutputs > | MakeOutputs () const |
Produce an object to hold values to send to effect output meters. More... | |
![]() | |
virtual | ~EffectDefinitionInterface () |
virtual EffectType | GetType () const =0 |
Type determines how it behaves. More... | |
virtual EffectType | GetClassification () const |
Determines which menu it appears in; default same as GetType(). More... | |
virtual EffectFamilySymbol | GetFamily () const =0 |
Report identifier and user-visible name of the effect protocol. More... | |
virtual bool | IsInteractive () const =0 |
Whether the effect needs a dialog for entry of settings. More... | |
virtual bool | IsDefault () const =0 |
Whether the effect sorts "above the line" in the menus. More... | |
virtual RealtimeSince | RealtimeSupport () const =0 |
Since which version of Audacity has the effect supported realtime? More... | |
bool | SupportsRealtime () const |
virtual bool | SupportsAutomation () const =0 |
Whether the effect has any automatable controls. More... | |
virtual bool | EnablesDebug () const |
Whether the effect dialog should have a Debug button; default, always false. More... | |
virtual ManualPageID | ManualPage () const |
Name of a page in the Audacity alpha manual, default is empty. More... | |
virtual FilePath | HelpPage () const |
Fully qualified local help file name, default is empty. More... | |
virtual bool | IsHiddenFromMenus () const |
Default is false. More... | |
![]() | |
virtual | ~ComponentInterface () |
virtual PluginPath | GetPath () const =0 |
virtual ComponentInterfaceSymbol | GetSymbol () const =0 |
virtual VendorSymbol | GetVendor () const =0 |
virtual wxString | GetVersion () const =0 |
virtual TranslatableString | GetDescription () const =0 |
TranslatableString | GetName () const |
![]() | |
~StatefulEffectUIServices () override | |
std::unique_ptr< EffectEditor > | PopulateUI (const EffectPlugin &plugin, ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) const override |
Allows PopulateOrExchange to return null. More... | |
virtual std::unique_ptr< EffectEditor > | PopulateOrExchange (ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) |
Add controls to effect panel; always succeeds. More... | |
virtual bool | TransferDataToWindow (const EffectSettings &settings) |
virtual bool | TransferDataFromWindow (EffectSettings &settings) |
![]() | |
int | ShowClientInterface (const EffectPlugin &plugin, wxWindow &parent, wxDialog &dialog, EffectEditor *pEditor, bool forceModal) const override |
void | ExportPresets (const EffectPlugin &plugin, const EffectSettings &settings) const override |
OptionalMessage | ImportPresets (const EffectPlugin &plugin, EffectSettings &settings) const override |
void | ShowOptions (const EffectPlugin &plugin) const override |
bool | ValidateUI (const EffectPlugin &context, EffectSettings &) const override |
bool | CloseUI () const override |
![]() | |
virtual | ~EffectUIServices () |
virtual int | ShowHostInterface (EffectBase &plugin, wxWindow &parent, const EffectDialogFactory &factory, std::shared_ptr< EffectInstance > &pInstance, EffectSettingsAccess &access, bool forceModal=false) |
virtual int | ShowClientInterface (const EffectPlugin &plugin, wxWindow &parent, wxDialog &dialog, EffectEditor *pEditor, bool forceModal=false) const =0 |
virtual std::unique_ptr< EffectEditor > | PopulateUI (const EffectPlugin &plugin, ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) const =0 |
Adds controls to a panel that is given as the parent window of S More... | |
virtual void | ExportPresets (const EffectPlugin &plugin, const EffectSettings &settings) const =0 |
virtual OptionalMessage | ImportPresets (const EffectPlugin &plugin, EffectSettings &settings) const =0 |
virtual void | ShowOptions (const EffectPlugin &plugin) const =0 |
virtual bool | ValidateUI (const EffectPlugin &context, EffectSettings &settings) const =0 |
virtual bool | CloseUI () const =0 |
Static Public Member Functions | |
static EqualizationParameters * | FetchParameters (EffectEqualization &e, EffectSettings &) |
![]() | |
static Effect * | FetchParameters (Effect &e, EffectSettings &) |
![]() | |
static std::optional< InstancePointer > | FindInstance (EffectPlugin &plugin) |
static InstanceFinder | DefaultInstanceFinder (EffectPlugin &plugin) |
![]() | |
static Identifier | GetSquashedName (const Identifier &ident) |
A utility that strips spaces and CamelCases a name. More... | |
![]() | |
static int | DoMessageBox (const EffectPlugin &plugin, const TranslatableString &message, long style=DefaultMessageBoxStyle, const TranslatableString &titleStr={}) |
Static Public Attributes | |
static const ComponentInterfaceSymbol | Symbol { XO("Equalization") } |
![]() | |
static const wxString | kUserPresetIdent = wxT("User Preset:") |
static const wxString | kFactoryPresetIdent = wxT("Factory Preset:") |
static const wxString | kCurrentSettingsIdent = wxT("<Current Settings>") |
static const wxString | kFactoryDefaultsIdent = wxT("<Factory Defaults>") |
Private Member Functions | |
bool | ProcessOne (Task &task, int count, const WaveChannel &t, sampleCount start, sampleCount len) |
const EffectParameterMethods & | Parameters () const override |
Private Attributes | |
wxWeakRef< wxWindow > | mUIParent {} |
EqualizationFilter | mParameters |
EqualizationCurvesList | mCurvesList { mParameters } |
const int | mOptions |
EqualizationUI | mUI { *this, *this, mUIParent, GetName(), mCurvesList, mOptions } |
Additional Inherited Members | |
![]() | |
using | MessagePackage = EffectInstance::MessagePackage |
![]() | |
using | EffectSettingsAccessPtr = std::shared_ptr< EffectSettingsAccess > |
using | InstancePointer = std::shared_ptr< EffectInstanceEx > |
using | InstanceFinder = std::function< std::optional< InstancePointer >(EffectSettings &settings) > |
![]() | |
enum class | RealtimeSince : unsigned { Never , After_3_1 , Always } |
In which versions of Audacity was an effect realtime capable? More... | |
![]() | |
enum | : long { DefaultMessageBoxStyle = wxOK | wxCENTRE } |
![]() | |
std::shared_ptr< TrackList > | mTracks {} |
int | mNumTracks {} |
BasicUI::ProgressDialog * | mProgress {} |
double | mProjectRate {} |
WaveTrackFactory * | mFactory {} |
double | mT0 {} |
double | mT1 {} |
bool | mIsPreview { false } |
![]() | |
bool | CheckWhetherSkipEffect (const EffectSettings &settings) const override |
Default implementation returns false. More... | |
double | CalcPreviewInputLength (const EffectSettings &settings, double previewLength) const override |
Default implementation returns previewLength More... | |
bool | TotalProgress (double frac, const TranslatableString &={}) const |
bool | TrackProgress (int whichTrack, double frac, const TranslatableString &={}) const |
bool | TrackGroupProgress (int whichGroup, double frac, const TranslatableString &={}) const |
int | GetNumWaveTracks () const |
int | GetNumWaveGroups () const |
void | GetBounds (const WaveTrack &track, sampleCount *start, sampleCount *len) |
![]() | |
virtual bool | CheckWhetherSkipEffect (const EffectSettings &settings) const =0 |
After Init(), tell whether Process() should be skipped. More... | |
void | SetLinearEffectFlag (bool linearEffectFlag) |
void | SetPreviewFullSelectionFlag (bool previewDurationFlag) |
bool | IsPreviewing () const |
const TrackList * | inputTracks () const |
const AudacityProject * | FindProject () const |
![]() | |
wxArrayString | mPresetNames |
unsigned | mUIFlags { 0 } |
An Effect that modifies volume in different frequency bands.
Performs filtering, using an FFT to do a FIR filter. It lets the user draw an arbitrary envelope (using the same envelope editing code that is used to edit the track's amplitude envelope).
Also allows the curve to be specified with a series of 'graphic EQ' sliders.
The filter is applied using overlap/add of Hann windows.
Clone of the FFT Filter effect, no longer part of Audacity.
Definition at line 22 of file Equalization.h.
EffectEqualization::EffectEqualization | ( | int | Options = kEqLegacy | ) |
Definition at line 94 of file Equalization.cpp.
References ComponentInterface::GetName(), EffectBase::inputTracks(), EqualizationCurvesList::mCurves, mCurvesList, EqualizationFilter::mHiFreq, mOptions, mParameters, EffectBase::mProjectRate, Parameters(), EffectParameterMethods::Reset(), and EffectBase::SetLinearEffectFlag().
Referenced by Parameters().
|
virtual |
Definition at line 131 of file Equalization.cpp.
OptionalMessage EffectEqualization::DoLoadFactoryDefaults | ( | EffectSettings & | settings | ) |
Definition at line 228 of file Equalization.cpp.
References EqualizationParameters::LoadDefaults(), Effect::LoadFactoryDefaults(), mOptions, mParameters, and settings().
Referenced by LoadFactoryDefaults().
|
inlinestatic |
|
overridevirtual |
Implements ComponentInterface.
Definition at line 146 of file Equalization.cpp.
References XO().
|
overridevirtual |
Report names of factory presets.
Implements EffectSettingsManager.
Definition at line 262 of file Equalization.cpp.
References FactoryPresets, kEqOptionGraphic, mOptions, name, names, and TranslatableString::Translation().
|
overridevirtual |
Implements ComponentInterface.
Definition at line 137 of file Equalization.cpp.
References kEqOptionCurve, kEqOptionGraphic, mOptions, Symbol, EffectEqualizationCurve::Symbol, and EffectEqualizationGraphic::Symbol.
|
overridevirtual |
Type determines how it behaves.
Implements EffectDefinitionInterface.
Definition at line 163 of file Equalization.cpp.
References EffectTypeProcess.
|
overridevirtual |
Default implementation does nothing, returns true
Reimplemented from StatefulEffectBase.
Definition at line 313 of file Equalization.cpp.
References EqualizationFilter::CalcFilter(), EffectUIServices::DoMessageBox(), EffectBase::FindProject(), TrackList::Get(), anonymous_namespace{TimeTrack.cpp}::GetRate(), EqualizationUI::Init(), EqualizationFilter::loFreqI, EqualizationParameters::mCurveName, EqualizationFilter::mHiFreq, EqualizationParameters::mLin, EqualizationFilter::mLoFreq, mParameters, mUI, project, TrackList::Selected(), EqualizationUI::setCurve(), and XO().
|
overridevirtual |
Change settings back to "factory default"
Implements EffectSettingsManager.
Definition at line 219 of file Equalization.cpp.
References DoLoadFactoryDefaults(), and settings().
|
overridevirtual |
Change settings to the preset whose name is GetFactoryPresets()[id]
Implements EffectSettingsManager.
Definition at line 277 of file Equalization.cpp.
References FactoryPresets, kEqOptionGraphic, mOptions, params, S, settings(), and VisitSettings().
|
overridevirtual |
Name of a page in the Audacity alpha manual, default is empty.
Reimplemented from EffectDefinitionInterface.
Definition at line 151 of file Equalization.cpp.
References kEqOptionCurve, kEqOptionGraphic, and mOptions.
|
overrideprivatevirtual |
Reimplemented from Effect.
Definition at line 46 of file Equalization.cpp.
References EffectEqualization(), EqualizationParameters::FilterLength, EqualizationParameters::InterpLin, EqualizationParameters::InterpMeth, EqualizationParameters::nInterpolations, and params.
Referenced by EffectEqualization().
|
overridevirtual |
Add controls to effect panel; always succeeds.
Reimplemented from StatefulEffectUIServices.
Definition at line 460 of file Equalization.cpp.
References mUI, mUIParent, EqualizationUI::PopulateOrExchange(), and S.
|
overridevirtual |
Implements StatefulEffectBase.
Definition at line 404 of file Equalization.cpp.
References PackedArray::begin(), EqualizationFilter::CalcFilter(), CollectClipData(), PackedArray::end(), floatSample, EqualizationParameters::mM, mParameters, EffectBase::mT0, EffectBase::mT1, EffectBase::mTracks, PasteOverPreservingClips(), ProcessOne(), and EqualizationFilter::windowSize.
|
private |
Definition at line 478 of file Equalization.cpp.
References EffectEqualization::Task::AccumulateSamples(), EffectEqualization::Task::buffer, EqualizationFilter::Filter(), WaveChannel::GetFloats(), EffectEqualization::Task::idealBlockLen, EffectEqualization::Task::lastWindow, limitSampleBufferSize(), EqualizationParameters::mM, mParameters, EffectEqualization::Task::output, anonymous_namespace{NoteTrack.cpp}::swap(), EffectEqualization::Task::thisWindow, Effect::TrackProgress(), EffectEqualization::Task::window1, EffectEqualization::Task::window2, and EqualizationFilter::windowSize.
Referenced by Process().
|
overridevirtual |
Update controls for the settings; default does nothing, returns true
Reimplemented from StatefulEffectUIServices.
Definition at line 471 of file Equalization.cpp.
References mUI, settings(), and EqualizationUI::TransferDataToWindow().
|
overridevirtual |
Reimplemented from BasicEffectUIServices.
Definition at line 304 of file Equalization.cpp.
References mUI, settings(), and EqualizationUI::ValidateUI().
|
overridevirtual |
Visit settings (read-only), if defined. false means no defined settings. Default implementation returns false
Reimplemented from EffectSettingsManager.
Definition at line 168 of file Equalization.cpp.
References SettingsVisitorBase< Const >::Define(), EqualizationCurvesList::mCurves, mCurvesList, settings(), and Effect::VisitSettings().
|
overridevirtual |
Visit settings (and maybe change them), if defined. false means no defined settings. Default implementation returns false
Reimplemented from EffectSettingsManager.
Definition at line 191 of file Equalization.cpp.
References SettingsVisitorBase< Const >::Define(), EqualizationCurvesList::mCurves, mCurvesList, mUI, EqualizationUI::setCurve(), settings(), and Effect::VisitSettings().
Referenced by LoadFactoryPreset().
|
private |
Definition at line 77 of file Equalization.h.
Referenced by EffectEqualization(), and VisitSettings().
|
private |
Definition at line 78 of file Equalization.h.
Referenced by DoLoadFactoryDefaults(), EffectEqualization(), GetFactoryPresets(), GetSymbol(), LoadFactoryPreset(), and ManualPage().
|
private |
Definition at line 76 of file Equalization.h.
Referenced by DoLoadFactoryDefaults(), EffectEqualization(), FetchParameters(), Init(), Process(), and ProcessOne().
|
private |
Definition at line 79 of file Equalization.h.
Referenced by Init(), PopulateOrExchange(), TransferDataToWindow(), ValidateUI(), and VisitSettings().
|
private |
Definition at line 75 of file Equalization.h.
Referenced by PopulateOrExchange().
|
static |