![]() |
Audacity 3.2.0
|
Base class for many of the effects in Audacity. More...
#include <Effect.h>
Public Member Functions | |
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 |
Static Public Member Functions | |
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... | |
Protected Member Functions | |
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 |
Private Member Functions | |
wxString | GetSavedStateGroup () |
Private Attributes | |
bool | mIsBatch { false } |
Additional Inherited Members | |
![]() | |
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... | |
![]() | |
std::shared_ptr< TrackList > | mTracks {} |
int | mNumTracks {} |
BasicUI::ProgressDialog * | mProgress {} |
double | mProjectRate {} |
WaveTrackFactory * | mFactory {} |
double | mT0 {} |
double | mT1 {} |
bool | mIsPreview { false } |
![]() | |
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>") |
![]() | |
wxArrayString | mPresetNames |
unsigned | mUIFlags { 0 } |
Effect::Effect | ( | ) |
Definition at line 34 of file Effect.cpp.
|
virtual |
Definition at line 38 of file Effect.cpp.
|
overrideprotectedvirtual |
Default implementation returns previewLength
Implements EffectBase.
Definition at line 391 of file Effect.cpp.
Referenced by PerTrackEffect::ProcessPass().
|
overridevirtual |
Whether the effect supports export of presets to files, and importing too.
Implements EffectPlugin.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 177 of file Effect.cpp.
|
overrideprotectedvirtual |
Default implementation returns false.
Implements EffectBase.
Definition at line 386 of file Effect.cpp.
bool Effect::Delegate | ( | Effect & | delegate, |
EffectSettings & | settings, | ||
InstanceFinder | finder = {} |
||
) |
Re-invoke DoEffect on another Effect object that implements the work.
Definition at line 328 of file Effect.cpp.
References EffectBase::DefaultInstanceFinder(), EffectBase::DoEffect(), EffectBase::mFactory, EffectBase::mProjectRate, EffectBase::mT0, EffectBase::mT1, EffectBase::mTracks, EffectBase::mUIFlags, NotifyingSelectedRegion::setTimes(), and settings().
Referenced by NyquistEffect::Process().
|
inlinestatic |
|
protected |
track.IsLeader()
Definition at line 369 of file Effect.cpp.
References PackedArray::end(), WaveTrack::GetEndTime(), WaveTrack::GetStartTime(), WaveTrack::IsLeader(), min(), EffectBase::mT0, EffectBase::mT1, and WideSampleSequence::TimeToLongSamples().
Referenced by VampEffect::Process(), and PerTrackEffect::ProcessPass().
|
overridevirtual |
Implements EffectPlugin.
Definition at line 189 of file Effect.cpp.
Referenced by LoadUserPreset(), EffectChangeSpeed::OnChoice_Vinyl(), EffectChangeSpeed::PopulateOrExchange(), SaveUserPreset(), EffectChangeSpeed::TransferDataFromWindow(), and EffectChangeSpeed::Update_Vinyl().
|
overridevirtual |
Implements ComponentInterface.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 64 of file Effect.cpp.
|
overridevirtual |
Report names of factory presets.
Implements EffectSettingsManager.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 162 of file Effect.cpp.
Referenced by LoadSettingsFromString().
|
overridevirtual |
Report identifier and user-visible name of the effect protocol.
Implements EffectDefinitionInterface.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 76 of file Effect.cpp.
|
inlineprotected |
Definition at line 140 of file Effect.h.
References EffectBase::mNumGroups.
Referenced by NyquistEffect::Process(), and VampEffect::Process().
|
inlineprotected |
Definition at line 139 of file Effect.h.
References EffectBase::mNumTracks.
Referenced by EffectTruncSilence::Analyze(), EffectAutoDuck::ApplyDuckFade(), EffectAutoDuck::Process(), EffectNormalize::Process(), EffectTwoPassSimpleMono::ProcessOne(), EffectNormalize::ProcessOne(), EffectNoiseRemoval::ShowHostInterface(), and EffectLoudness::UpdateProgress().
|
overridevirtual |
Implements ComponentInterface.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 44 of file Effect.cpp.
References BUILTIN_EFFECT_PREFIX, GetSymbol(), and ComponentInterfaceSymbol::Internal().
|
private |
Definition at line 201 of file Effect.cpp.
References wxT().
Referenced by SetBatchProcessing(), and UnsetBatchProcessing().
|
virtual |
Definition at line 194 of file Effect.cpp.
References EffectBase::FindProject(), ProjectNumericFormats::Get(), ProjectNumericFormats::GetSelectionFormat(), NumericConverterFormats::HoursMinsSecondsFormat(), and IsBatchProcessing().
Referenced by NyquistEffect::BuildEffectWindow(), and EffectRepeat::DisplayNewTime().
|
overridevirtual |
Implements ComponentInterface.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 49 of file Effect.cpp.
Referenced by GetPath().
|
overridevirtual |
Type determines how it behaves.
Implements EffectDefinitionInterface.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 71 of file Effect.cpp.
References EffectTypeNone.
Referenced by PerTrackEffect::ProcessPass().
|
overridevirtual |
Implements ComponentInterface.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 54 of file Effect.cpp.
References XO().
|
overridevirtual |
Implements ComponentInterface.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 59 of file Effect.cpp.
|
overridevirtual |
Whether there are preferences applying to the effect's family, for which a UI may be needed to change them
Implements EffectPlugin.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 182 of file Effect.cpp.
|
overridevirtual |
Implements EffectPlugin.
Definition at line 301 of file Effect.cpp.
References mIsBatch.
Referenced by NyquistEffect::DoLoadSettings(), GetSelectionFormat(), EffectAmplify::Parameters(), EffectAmplify::PopulateOrExchange(), NyquistEffect::Process(), EffectNoiseReduction::ShowHostInterface(), and NyquistEffect::ShowHostInterface().
|
overridevirtual |
Whether the effect sorts "above the line" in the menus.
Implements EffectDefinitionInterface.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 88 of file Effect.cpp.
|
overridevirtual |
Whether the effect needs a dialog for entry of settings.
Implements EffectDefinitionInterface.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 83 of file Effect.cpp.
|
overridevirtual |
Change settings back to "factory default"
Implements EffectSettingsManager.
Definition at line 172 of file Effect.cpp.
References FactoryDefaultsGroup(), LoadUserPreset(), and settings().
Referenced by EffectChangeSpeed::DoLoadFactoryDefaults(), and EffectEqualization::DoLoadFactoryDefaults().
|
overridevirtual |
Change settings to the preset whose name is GetFactoryPresets()[id]
Implements EffectSettingsManager.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 167 of file Effect.cpp.
Referenced by LoadSettingsFromString().
|
overridevirtual |
Restore settings from keys and values.
Implements EffectSettingsManager.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 129 of file Effect.cpp.
Referenced by EffectTruncSilence::LoadSettings(), and LoadSettingsFromString().
|
overridevirtual |
Implements EffectPlugin.
Definition at line 226 of file Effect.cpp.
References BasicUI::MessageBoxOptions::Caption(), CurrentSettingsGroup(), FactoryDefaultsGroup(), GetFactoryPresets(), ComponentInterface::GetName(), EffectPlugin::kCurrentSettingsIdent, EffectPlugin::kFactoryDefaultsIdent, EffectPlugin::kFactoryPresetIdent, EffectPlugin::kUserPresetIdent, LoadFactoryPreset(), LoadSettings(), LoadUserPreset(), make_iterator_range(), preset, S, settings(), BasicUI::ShowMessageBox(), UserPresetsGroup(), VisitSettings(), and XO().
Referenced by LoadUserPreset().
|
overridevirtual |
Change settings to a user-named preset
Implements EffectSettingsManager.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 137 of file Effect.cpp.
References PluginSettings::GetConfig(), GetDefinition(), LoadSettingsFromString(), name, PluginSettings::Private, settings(), and wxT().
Referenced by LoadFactoryDefaults(), LoadSettingsFromString(), and UnsetBatchProcessing().
|
virtual |
Reimplemented in EffectAmplify, EffectAutoDuck, EffectBassTreble, EffectChangeSpeed, EffectClickRemoval, EffectCompressor, EffectDistortion, EffectDtmf, EffectEcho, EffectEqualization, EffectFindClipping, EffectLoudness, EffectNoise, EffectNormalize, EffectPaulstretch, EffectPhaser, EffectRepeat, EffectReverb, EffectScienFilter, EffectTimeScale, EffectToneGen, EffectTruncSilence, and EffectWahwah.
Definition at line 103 of file Effect.cpp.
Referenced by SaveSettings(), EffectNoiseReduction::TrackProgress(), and VisitSettings().
|
overridevirtual |
Since which version of Audacity has the effect supported realtime?
Implements EffectDefinitionInterface.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 93 of file Effect.cpp.
References EffectDefinitionInterface::Never.
|
overridevirtual |
Store settings as keys and values.
The override may assume parms
is initially empty
Implements EffectSettingsManager.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 122 of file Effect.cpp.
References EffectParameterMethods::Get(), Parameters(), and settings().
Referenced by SaveSettingsAsString().
|
overridevirtual |
Implements EffectPlugin.
Definition at line 208 of file Effect.cpp.
References CommandParameters::GetParameters(), S, SaveSettings(), settings(), and VisitSettings().
Referenced by SaveUserPreset().
|
overridevirtual |
Save settings in the configuration file as a user-named preset.
Implements EffectSettingsManager.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 150 of file Effect.cpp.
References GetDefinition(), name, PluginSettings::Private, SaveSettingsAsString(), PluginSettings::SetConfig(), settings(), and wxT().
Referenced by SetBatchProcessing().
|
overridevirtual |
Implements EffectPlugin.
Definition at line 306 of file Effect.cpp.
References GetSavedStateGroup(), EffectSettingsManager::MakeSettings(), mIsBatch, and SaveUserPreset().
Referenced by NyquistEffect::ShowHostInterface().
|
overridevirtual |
Whether the effect has any automatable controls.
Implements EffectDefinitionInterface.
Reimplemented in LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.
Definition at line 98 of file Effect.cpp.
unsigned Effect::TestUIFlags | ( | unsigned | mask | ) |
Definition at line 297 of file Effect.cpp.
References EffectBase::mUIFlags.
Referenced by NyquistEffect::ShowHostInterface().
|
protected |
Definition at line 341 of file Effect.cpp.
References EffectBase::mProgress, BasicUI::ProgressDialog::Poll(), and BasicUI::Success.
Referenced by EffectTruncSilence::Analyze(), EffectAutoDuck::ApplyDuckFade(), EffectTruncSilence::DoRemoval(), EffectAutoDuck::Process(), EffectNormalize::Process(), NyquistEffect::Process(), EffectStereoToMono::ProcessOne(), EffectTwoPassSimpleMono::ProcessOne(), EffectNormalize::ProcessOne(), and EffectLoudness::UpdateProgress().
|
protected |
Definition at line 359 of file Effect.cpp.
References EffectBase::mNumGroups, EffectBase::mProgress, BasicUI::ProgressDialog::Poll(), and BasicUI::Success.
Referenced by VampEffect::Process(), NyquistEffect::ProcessOne(), and PerTrackEffect::ProcessPass().
|
protected |
Definition at line 349 of file Effect.cpp.
References EffectBase::mNumTracks, EffectBase::mProgress, BasicUI::ProgressDialog::Poll(), and BasicUI::Success.
Referenced by EffectRepeat::Process(), EffectReverse::Process(), EffectSBSMS::Process(), VampEffect::Process(), EffectPaulstretch::ProcessOne(), EffectChangeSpeed::ProcessOne(), EffectClickRemoval::ProcessOne(), EffectRepair::ProcessOne(), EffectNoiseRemoval::ProcessOne(), EffectFindClipping::ProcessOne(), NyquistEffect::ProcessOne(), EffectEqualization::ProcessOne(), and PerTrackEffect::ProcessPass().
|
overridevirtual |
Implements EffectPlugin.
Definition at line 317 of file Effect.cpp.
References GetSavedStateGroup(), LoadUserPreset(), EffectSettingsManager::MakeSettings(), and mIsBatch.
|
overridevirtual |
Visit settings (read-only), if defined. false means no defined settings. Default implementation returns false
Reimplemented from EffectSettingsManager.
Definition at line 115 of file Effect.cpp.
References Parameters(), settings(), and EffectParameterMethods::Visit().
|
overridevirtual |
Visit settings (and maybe change them), if defined. false means no defined settings. Default implementation returns false
Reimplemented from EffectSettingsManager.
Definition at line 109 of file Effect.cpp.
References Parameters(), settings(), and EffectParameterMethods::Visit().
Referenced by LoadSettingsFromString(), SaveSettingsAsString(), and EffectEqualization::VisitSettings().
|
private |
Definition at line 151 of file Effect.h.
Referenced by IsBatchProcessing(), SetBatchProcessing(), and UnsetBatchProcessing().