![]() |
Audacity 3.2.0
|
Base class for many of the effects in Audacity. More...
#include <EffectBase.h>
Public Member Functions | |
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 | ReplaceProcessedTracks (const bool bGoodResult) |
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 bool | SaveSettings (const EffectSettings &settings, CommandParameters &parms) const =0 |
Store settings as keys and values. More... | |
virtual bool | LoadSettings (const CommandParameters &parms, EffectSettings &settings) const =0 |
Restore settings from keys and values. More... | |
virtual RegistryPaths | GetFactoryPresets () const =0 |
Report names of factory presets. More... | |
virtual OptionalMessage | LoadUserPreset (const RegistryPath &name, EffectSettings &settings) const =0 |
virtual bool | SaveUserPreset (const RegistryPath &name, const EffectSettings &settings) const =0 |
Save settings in the configuration file as a user-named preset. More... | |
virtual OptionalMessage | LoadFactoryPreset (int id, EffectSettings &settings) const =0 |
virtual OptionalMessage | LoadFactoryDefaults (EffectSettings &settings) const =0 |
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 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... | |
Public Attributes | |
TrackList * | mTracks {} |
int | mNumTracks {} |
BasicUI::ProgressDialog * | mProgress {} |
double | mProjectRate {} |
WaveTrackFactory * | mFactory {} |
double | mT0 {} |
double | mT1 {} |
bool | mIsPreview { false } |
Protected Member Functions | |
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 |
Protected Attributes | |
std::shared_ptr< TrackList > | mOutputTracks |
wxArrayString | mPresetNames |
unsigned | mUIFlags { 0 } |
Static Protected Attributes | |
static int | nEffectsDone = 0 |
Private Member Functions | |
double | GetDefaultDuration () |
Private Attributes | |
bool | mIsLinearEffect { false } |
bool | mPreviewFullSelection { false } |
std::vector< Track * > | mIMap |
std::vector< Track * > | mOMap |
int | mNumGroups {} |
Friends | |
class | Effect |
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... | |
![]() | |
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>") |
Base class for many of the effects in Audacity.
Definition at line 26 of file EffectBase.h.
EffectBase::EffectBase | ( | ) |
Definition at line 34 of file EffectBase.cpp.
References QualitySettings::DefaultSampleRate, mProjectRate, and Setting< T >::ReadWithDefault().
|
overridedefault |
|
virtual |
Called when Preview() starts, to allow temporary effect state changes.
default returns a null
Reimplemented in EffectAmplify, and EffectTimeScale.
Definition at line 316 of file EffectBase.cpp.
Referenced by EffectPreview().
|
pure virtual |
Implemented in Effect, EffectChangeSpeed, EffectPaulstretch, EffectTimeScale, and EffectTruncSilence.
Referenced by EffectPreview().
|
protectedpure virtual |
After Init(), tell whether Process() should be skipped.
Implemented in Effect, EffectBassTreble, EffectChangeSpeed, EffectClickRemoval, EffectNoiseRemoval, and EffectNormalize.
Referenced by DoEffect().
void EffectBase::CountWaveTracks | ( | ) |
Definition at line 310 of file EffectBase.cpp.
References mNumGroups, mNumTracks, mTracks, TrackList::Selected(), TrackList::SelectedLeaders(), and size.
Referenced by DoEffect(), and EffectPreview().
|
static |
Definition at line 331 of file EffectBase.cpp.
Referenced by Effect::Delegate().
|
overridevirtual |
Will only operate on tracks that have the "selected" flag set to true, which is consistent with Audacity's standard UI, and only when finder succeeds
settings | Always given; only for processing |
pAccess | Sometimes given; only for UI |
Implements EffectPlugin.
Definition at line 54 of file EffectBase.cpp.
References TrackList::Add(), CheckWhetherSkipEffect(), TransactionScope::Commit(), CountWaveTracks(), WaveTrackFactory::Create(), CurrentSettingsGroup(), NumericConverterFormats::DefaultSelectionFormat(), NotifyingSelectedRegion::duration(), EffectSettingsExtra::DurationKey(), EffectTypeGenerate, NotifyingSelectedRegion::f0(), NotifyingSelectedRegion::f1(), cloud::factory, FindProject(), PluginSettings::GetConfig(), WaveTrack::GetDefaultAudioTrackNamePreference(), GetDefaultDuration(), EffectPlugin::GetDefinition(), ComponentInterface::GetName(), ComponentInterface::GetPath(), EffectDefinitionInterface::GetType(), EffectDefinitionInterface::IsInteractive(), EffectInstanceFactory::MakeInstance(), BasicUI::MakeProgress(), TrackList::MakeUniqueTrackName(), mFactory, mNumTracks, mOutputTracks, mPresetNames, mProgress, mProjectRate, mT0, mT1, mTracks, mUIFlags, name, NYQUIST_PROMPT_ID, PluginSettings::Private, BasicUI::ProgressShowCancel, QUANTIZED_TIME, TrackList::Remove(), ReplaceProcessedTracks(), NotifyingSelectedRegion::setTimes(), settings(), SetTracks(), NotifyingSelectedRegion::t0(), NotifyingSelectedRegion::t1(), NumericConverterFormats::TimeAndSampleFormat(), SelectedRegion::UndefinedFrequency, updater, valueRestorer(), and XO().
Referenced by Effect::Delegate().
|
static |
Definition at line 321 of file EffectBase.cpp.
Referenced by EffectUIHost::InitializeInstance().
|
protected |
Definition at line 303 of file EffectBase.cpp.
References TrackList::GetOwner(), and inputTracks().
Referenced by Effect::CopyInputTracks(), DoEffect(), Effect::GetSelectionFormat(), EffectEqualization::Init(), NyquistEffect::Init(), Generator::Process(), NyquistEffect::Process(), EffectTwoPassSimpleMono::Process(), EffectTruncSilence::ProcessIndependently(), and PerTrackEffect::ProcessPass().
|
private |
Definition at line 45 of file EffectBase.cpp.
Referenced by DoEffect().
|
inlineprotected |
Definition at line 94 of file EffectBase.h.
Referenced by EffectTruncSilence::CalcPreviewInputLength(), EffectEqualization::EffectEqualization(), FindProject(), EffectAmplify::Init(), EffectAutoDuck::Init(), EffectScienFilter::Init(), VampEffect::Init(), EffectCompressor::InitPass1(), EffectFindClipping::Process(), VampEffect::Process(), EffectTruncSilence::ProcessAll(), EffectTruncSilence::ProcessIndependently(), NyquistEffect::ProcessOne(), and EffectStereoToMono::ProcessOne().
|
inline |
Definition at line 33 of file EffectBase.h.
Referenced by EffectPreview().
|
inlineprotected |
Definition at line 89 of file EffectBase.h.
Referenced by NyquistEffect::Process(), EffectPaulstretch::ProcessOne(), and PerTrackEffect::ProcessPass().
|
inline |
Definition at line 34 of file EffectBase.h.
Referenced by EffectPreview().
void EffectBase::ReplaceProcessedTracks | ( | const bool | bGoodResult | ) |
Definition at line 224 of file EffectBase.cpp.
References TrackList::Add(), mIMap, mOMap, mOutputTracks, mTracks, nEffectsDone, TrackList::Remove(), and TrackList::Replace().
Referenced by DoEffect(), EffectTruncSilence::DoRemoval(), EffectPreview(), EffectTruncSilence::FindSilences(), EffectAutoDuck::Process(), EffectChangeSpeed::Process(), EffectClickRemoval::Process(), EffectEqualization::Process(), Generator::Process(), EffectLoudness::Process(), EffectNoiseReduction::Process(), EffectNoiseRemoval::Process(), EffectNormalize::Process(), NyquistEffect::Process(), EffectPaulstretch::Process(), EffectRepair::Process(), EffectRepeat::Process(), EffectReverse::Process(), EffectSBSMS::Process(), EffectSimpleMono::Process(), EffectStereoToMono::Process(), EffectTruncSilence::Process(), and EffectTwoPassSimpleMono::Process().
|
protected |
Definition at line 211 of file EffectBase.cpp.
References mIsLinearEffect.
Referenced by EffectBassTreble::EffectBassTreble(), EffectDistortion::EffectDistortion(), EffectEcho::EffectEcho(), EffectEqualization::EffectEqualization(), EffectLoudness::EffectLoudness(), EffectNoise::EffectNoise(), EffectPhaser::EffectPhaser(), EffectReverb::EffectReverb(), EffectSilence::EffectSilence(), EffectWahwah::EffectWahwah(), and NyquistEffect::Parse().
|
protected |
Definition at line 216 of file EffectBase.cpp.
References mPreviewFullSelection.
Referenced by NyquistEffect::Parse().
|
inline |
Definition at line 36 of file EffectBase.h.
Referenced by DoEffect(), and EffectManager::PromptUser().
|
friend |
Definition at line 106 of file EffectBase.h.
WaveTrackFactory* EffectBase::mFactory {} |
Definition at line 117 of file EffectBase.h.
Referenced by Effect::Delegate(), DoEffect(), and EffectPreview().
|
private |
Definition at line 135 of file EffectBase.h.
Referenced by Effect::AddToOutputTracks(), Effect::CopyInputTracks(), and ReplaceProcessedTracks().
|
private |
Definition at line 132 of file EffectBase.h.
Referenced by SetLinearEffectFlag().
bool EffectBase::mIsPreview { false } |
Definition at line 120 of file EffectBase.h.
Referenced by EffectPreview().
|
private |
Definition at line 138 of file EffectBase.h.
Referenced by CountWaveTracks(), Effect::GetNumWaveGroups(), and Effect::TrackGroupProgress().
int EffectBase::mNumTracks {} |
Definition at line 113 of file EffectBase.h.
Referenced by CountWaveTracks(), DoEffect(), EffectPreview(), Effect::GetNumWaveTracks(), and Effect::TrackProgress().
|
private |
Definition at line 136 of file EffectBase.h.
Referenced by Effect::AddToOutputTracks(), Effect::CopyInputTracks(), and ReplaceProcessedTracks().
|
protected |
Definition at line 97 of file EffectBase.h.
Referenced by Effect::AddToOutputTracks(), EffectLoudness::AllocBuffers(), Effect::CopyInputTracks(), DoEffect(), EffectTruncSilence::DoRemoval(), EffectAutoDuck::Process(), EffectChangeSpeed::Process(), EffectClickRemoval::Process(), EffectEqualization::Process(), Generator::Process(), EffectLoudness::Process(), EffectNoiseReduction::Process(), EffectNoiseRemoval::Process(), EffectNormalize::Process(), NyquistEffect::Process(), EffectPaulstretch::Process(), EffectRepair::Process(), EffectRepeat::Process(), EffectReverse::Process(), EffectSBSMS::Process(), EffectSimpleMono::Process(), EffectStereoToMono::Process(), EffectTwoPassSimpleMono::Process(), EffectTruncSilence::ProcessAll(), EffectTruncSilence::ProcessIndependently(), NyquistEffect::ProcessOne(), EffectStereoToMono::ProcessOne(), PerTrackEffect::ProcessPass(), and ReplaceProcessedTracks().
|
protected |
Definition at line 102 of file EffectBase.h.
Referenced by DoEffect(), and NyquistEffect::Parse().
|
private |
Definition at line 133 of file EffectBase.h.
Referenced by SetPreviewFullSelectionFlag().
BasicUI::ProgressDialog* EffectBase::mProgress {} |
Definition at line 114 of file EffectBase.h.
Referenced by DoEffect(), EffectPreview(), EffectStereoToMono::Process(), Effect::TotalProgress(), Effect::TrackGroupProgress(), and Effect::TrackProgress().
double EffectBase::mProjectRate {} |
Definition at line 115 of file EffectBase.h.
Referenced by NyquistEffect::BuildEffectWindow(), EffectPaulstretch::CalcPreviewInputLength(), Effect::Delegate(), EffectRepeat::DisplayNewTime(), DoEffect(), EffectBase(), EffectEqualization::EffectEqualization(), EffectPreview(), EffectScienFilter::Init(), VampEffect::Init(), EffectNoiseRemoval::Initialize(), LadspaEffectBase::InitializeControls(), EffectDtmf::MakeEditor(), LadspaEffect::MakeEditor(), EffectChangeSpeed::OnTimeCtrlUpdate(), EffectChangeSpeed::PopulateOrExchange(), EffectNoise::PopulateOrExchange(), EffectRepeat::PopulateOrExchange(), EffectSilence::PopulateOrExchange(), EffectToneGen::PopulateOrExchange(), LV2Effect::PopulateUI(), VSTEffect::PopulateUI(), EffectStereoToMono::Process(), and EffectPaulstretch::ProcessOne().
double EffectBase::mT0 {} |
Definition at line 118 of file EffectBase.h.
Referenced by EffectTruncSilence::Analyze(), EffectAutoDuck::ApplyDuckFade(), EffectTruncSilence::CalcPreviewInputLength(), Effect::Delegate(), EffectRepeat::DisplayNewTime(), DoEffect(), EffectPreview(), EffectTruncSilence::FindSilences(), Effect::GetBounds(), EffectAmplify::Init(), EffectChangeSpeed::Init(), EffectDtmf::MakeInstance(), EffectAutoDuck::Process(), EffectChangeSpeed::Process(), EffectClickRemoval::Process(), EffectEqualization::Process(), EffectFindClipping::Process(), Generator::Process(), EffectLoudness::Process(), EffectNoiseReduction::Process(), EffectNoiseRemoval::Process(), EffectNormalize::Process(), NyquistEffect::Process(), EffectPaulstretch::Process(), EffectRepair::Process(), EffectRepeat::Process(), EffectReverse::Process(), EffectSBSMS::Process(), EffectSimpleMono::Process(), EffectTimeScale::Process(), EffectTwoPassSimpleMono::Process(), EffectChangeSpeed::ProcessLabelTrack(), EffectSBSMS::ProcessLabelTrack(), NyquistEffect::ProcessOne(), EffectPaulstretch::ProcessOne(), EffectTwoPassSimpleMono::ProcessPass(), and PerTrackEffect::ProcessPass().
double EffectBase::mT1 {} |
Definition at line 119 of file EffectBase.h.
Referenced by EffectTruncSilence::Analyze(), EffectAutoDuck::ApplyDuckFade(), EffectTruncSilence::CalcPreviewInputLength(), Effect::Delegate(), EffectRepeat::DisplayNewTime(), DoEffect(), EffectPreview(), EffectTruncSilence::FindSilences(), Effect::GetBounds(), EffectAmplify::Init(), EffectChangeSpeed::Init(), EffectAutoDuck::Process(), EffectChangeSpeed::Process(), EffectClickRemoval::Process(), EffectEqualization::Process(), EffectFindClipping::Process(), Generator::Process(), EffectLoudness::Process(), EffectNoiseReduction::Process(), EffectNoiseRemoval::Process(), EffectNormalize::Process(), NyquistEffect::Process(), EffectPaulstretch::Process(), EffectRepair::Process(), EffectRepeat::Process(), EffectReverse::Process(), EffectSBSMS::Process(), EffectSimpleMono::Process(), EffectTimeScale::Process(), EffectTruncSilence::ProcessAll(), EffectTruncSilence::ProcessIndependently(), EffectChangeSpeed::ProcessLabelTrack(), EffectSBSMS::ProcessLabelTrack(), NyquistEffect::ProcessOne(), EffectTwoPassSimpleMono::ProcessPass(), and PerTrackEffect::ProcessPass().
TrackList* EffectBase::mTracks {} |
Definition at line 112 of file EffectBase.h.
Referenced by AddedAnalysisTrack::AddedAnalysisTrack(), Effect::CopyInputTracks(), CountWaveTracks(), Effect::Delegate(), DoEffect(), EffectPreview(), ModifiedAnalysisTrack::ModifiedAnalysisTrack(), ReplaceProcessedTracks(), AddedAnalysisTrack::~AddedAnalysisTrack(), and ModifiedAnalysisTrack::~ModifiedAnalysisTrack().
|
protected |
Definition at line 103 of file EffectBase.h.
Referenced by Effect::Delegate(), DoEffect(), and Effect::TestUIFlags().
|
staticprotected |
Definition at line 92 of file EffectBase.h.
Referenced by NyquistEffect::Process(), and ReplaceProcessedTracks().