Audacity 3.2.0
|
An Effect that makes a sound louder or softer. More...
#include <Amplify.h>
Public Member Functions | |
std::shared_ptr< EffectInstance > | MakeInstance () const override |
Make an object maintaining short-term state of an Effect. More... | |
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... | |
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 |
bool | TransferDataFromWindow (EffectSettings &settings) override |
void | OnAmpText (wxCommandEvent &evt) |
void | OnPeakText (wxCommandEvent &evt) |
void | OnAmpSlider (wxCommandEvent &evt) |
void | OnClipCheckBox (wxCommandEvent &evt) |
void | CheckClip () |
Public Member Functions inherited from AmplifyBase | |
AmplifyBase () | |
virtual | ~AmplifyBase () override |
ComponentInterfaceSymbol | GetSymbol () const override |
EffectType | GetType () const override |
Type determines how it behaves. More... | |
OptionalMessage | LoadFactoryDefaults (EffectSettings &settings) const override |
OptionalMessage | DoLoadFactoryDefaults (EffectSettings &settings) |
unsigned | GetAudioInCount () const override |
How many input buffers to allocate at once. More... | |
unsigned | GetAudioOutCount () const override |
How many output buffers to allocate at once. More... | |
size_t | ProcessBlock (EffectSettings &settings, const float *const *inBlock, float *const *outBlock, size_t blockLen) override |
Called for destructive effect computation. More... | |
bool | Init () override |
std::any | BeginPreview (const EffectSettings &settings) override |
Called when Preview() starts, to allow temporary effect state changes. More... | |
Public Member Functions inherited from StatefulPerTrackEffect | |
~StatefulPerTrackEffect () override | |
std::shared_ptr< EffectInstance > | MakeInstance () const override |
Make an object maintaining short-term state of an Effect. More... | |
size_t | SetBlockSize (size_t maxBlockSize) override |
size_t | GetBlockSize () const override |
bool | ProcessInitialize (EffectSettings &settings, double sampleRate, ChannelNames chanMap=nullptr) override |
bool | ProcessFinalize () noexcept override |
virtual size_t | ProcessBlock (EffectSettings &settings, const float *const *inBlock, float *const *outBlock, size_t blockLen)=0 |
Called for destructive effect computation. More... | |
Public Member Functions inherited from StatefulEffectBase | |
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 |
Public Member Functions inherited from PerTrackEffect | |
~PerTrackEffect () override | |
Public Member Functions inherited from Effect | |
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 |
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 NumericFormatID | 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... | |
Public Member Functions inherited from EffectBase | |
EffectBase () | |
~EffectBase () override | |
bool | IsLinearEffect () const |
bool | PreviewsFullSelection () const |
void | SetTracks (TrackList *pTracks) |
double | GetDefaultDuration () |
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 () |
Public Member Functions inherited from EffectPlugin | |
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 |
Public Member Functions inherited from EffectInstanceFactory | |
virtual | ~EffectInstanceFactory () |
virtual std::shared_ptr< EffectInstance > | MakeInstance () const =0 |
Make an object maintaining short-term state of an Effect. More... | |
Public Member Functions inherited from EffectSettingsManager | |
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... | |
Public Member Functions inherited from EffectDefinitionInterface | |
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... | |
Public Member Functions inherited from ComponentInterface | |
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 |
Public Member Functions inherited from StatefulEffectUIServices | |
~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) |
Public Member Functions inherited from BasicEffectUIServices | |
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 |
Public Member Functions inherited from EffectUIServices | |
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 |
Private Attributes | |
wxWeakRef< wxWindow > | mUIParent {} |
wxSlider * | mAmpS |
wxTextCtrl * | mAmpT |
wxTextCtrl * | mNewPeakT |
wxCheckBox * | mClip |
Additional Inherited Members | |
Public Types inherited from StatefulEffectBase | |
using | MessagePackage = EffectInstance::MessagePackage |
Public Types inherited from EffectPlugin | |
using | EffectSettingsAccessPtr = std::shared_ptr< EffectSettingsAccess > |
using | InstancePointer = std::shared_ptr< EffectInstanceEx > |
using | InstanceFinder = std::function< std::optional< InstancePointer >(EffectSettings &settings) > |
Public Types inherited from EffectDefinitionInterface | |
enum class | RealtimeSince : unsigned { Never , After_3_1 , Always } |
In which versions of Audacity was an effect realtime capable? More... | |
Public Types inherited from EffectUIServices | |
enum | : long { DefaultMessageBoxStyle = wxOK | wxCENTRE } |
Static Public Member Functions inherited from AmplifyBase | |
static AmplifyBase * | FetchParameters (AmplifyBase &e, EffectSettings &) |
Static Public Member Functions inherited from Effect | |
static Effect * | FetchParameters (Effect &e, EffectSettings &) |
Static Public Member Functions inherited from EffectBase | |
static std::optional< InstancePointer > | FindInstance (EffectPlugin &plugin) |
static InstanceFinder | DefaultInstanceFinder (EffectPlugin &plugin) |
Static Public Member Functions inherited from EffectDefinitionInterface | |
static Identifier | GetSquashedName (const Identifier &ident) |
A utility that strips spaces and CamelCases a name. More... | |
Static Public Member Functions inherited from EffectUIServices | |
static int | DoMessageBox (const EffectPlugin &plugin, const TranslatableString &message, long style=DefaultMessageBoxStyle, const TranslatableString &titleStr={}) |
Public Attributes inherited from EffectBase | |
std::shared_ptr< TrackList > | mTracks {} |
int | mNumTracks {} |
BasicUI::ProgressDialog * | mProgress {} |
double | mProjectRate {} |
WaveTrackFactory * | mFactory {} |
double | mT0 {} |
double | mT1 {} |
bool | mIsPreview { false } |
Static Public Attributes inherited from AmplifyBase | |
static const ComponentInterfaceSymbol | Symbol { XO("Amplify") } |
Static Public Attributes inherited from EffectPlugin | |
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>") |
Protected Member Functions inherited from AmplifyBase | |
void | ClampRatio () |
Protected Member Functions inherited from PerTrackEffect | |
bool | DoPass1 () const |
bool | DoPass2 () const |
bool | Process (EffectInstance &instance, EffectSettings &settings) const |
std::shared_ptr< EffectOutputTracks > | MakeOutputTracks () |
void | DestroyOutputTracks () const |
Protected Member Functions inherited from Effect | |
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) |
Protected Member Functions inherited from EffectBase | |
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 inherited from AmplifyBase | |
double | mPeak = 1.0 |
double | mRatio = 1.0 |
double | mRatioClip |
double | mAmp = 0.0 |
double | mNewPeak = 1.0 |
bool | mCanClip = true |
Protected Attributes inherited from PerTrackEffect | |
sampleCount | mSampleCnt {} |
Protected Attributes inherited from EffectBase | |
double | mF0 {} |
double | mF1 {} |
wxArrayString | mPresetNames |
unsigned | mUIFlags { 0 } |
Static Protected Attributes inherited from AmplifyBase | |
static constexpr EffectParameter | Ratio |
static constexpr EffectParameter | Amp |
static constexpr EffectParameter | Clipping |
An Effect that makes a sound louder or softer.
This rewritten class supports a smart Amplify effect - it calculates the maximum amount of gain that can be applied to all tracks without causing clipping and selects this as the default parameter.
void EffectAmplify::CheckClip | ( | ) |
Definition at line 210 of file Amplify.cpp.
References EffectEditor::EnableApply(), mClip, AmplifyBase::mPeak, AmplifyBase::mRatio, AmplifyBase::mRatioClip, and mUIParent.
Referenced by OnAmpSlider(), OnAmpText(), OnClipCheckBox(), OnPeakText(), and TransferDataToWindow().
|
overridevirtual |
Implements ComponentInterface.
Definition at line 68 of file Amplify.cpp.
References XO().
|
overridevirtual |
|
overridevirtual |
Make an object maintaining short-term state of an Effect.
One effect may have multiple instances extant simultaneously. Instances have state, may be implemented in foreign code, and are temporary, whereas EffectSettings represents persistent effect state that can be saved and reloaded from files.
settings | may be assumed to have a lifetime enclosing the instance's |
true
(no promises that the result isn't null) Implements EffectInstanceFactory.
Definition at line 201 of file Amplify.cpp.
|
overridevirtual |
Name of a page in the Audacity alpha manual, default is empty.
Reimplemented from EffectDefinitionInterface.
Definition at line 74 of file Amplify.cpp.
void EffectAmplify::OnAmpSlider | ( | wxCommandEvent & | evt | ) |
Definition at line 259 of file Amplify.cpp.
References AmplifyBase::Amp, CheckClip(), DB_TO_LINEAR, LINEAR_TO_DB, AmplifyBase::mAmp, mAmpT, EffectParameter< Structure, Member, Type, Value >::max, mClip, EffectParameter< Structure, Member, Type, Value >::min, AmplifyBase::mNewPeak, mNewPeakT, AmplifyBase::mPeak, AmplifyBase::mRatio, and EffectParameter< Structure, Member, Type, Value >::scale.
void EffectAmplify::OnAmpText | ( | wxCommandEvent & | evt | ) |
Definition at line 216 of file Amplify.cpp.
References AmplifyBase::Amp, CheckClip(), DB_TO_LINEAR, EffectEditor::EnableApply(), LINEAR_TO_DB, AmplifyBase::mAmp, mAmpS, mAmpT, EffectParameter< Structure, Member, Type, Value >::max, EffectParameter< Structure, Member, Type, Value >::min, AmplifyBase::mNewPeak, mNewPeakT, AmplifyBase::mPeak, AmplifyBase::mRatio, mUIParent, and EffectParameter< Structure, Member, Type, Value >::scale.
void EffectAmplify::OnClipCheckBox | ( | wxCommandEvent & | evt | ) |
Definition at line 281 of file Amplify.cpp.
References CheckClip().
void EffectAmplify::OnPeakText | ( | wxCommandEvent & | evt | ) |
Definition at line 234 of file Amplify.cpp.
References AmplifyBase::Amp, CheckClip(), DB_TO_LINEAR, EffectEditor::EnableApply(), LINEAR_TO_DB, AmplifyBase::mAmp, mAmpS, mAmpT, EffectParameter< Structure, Member, Type, Value >::max, EffectParameter< Structure, Member, Type, Value >::min, AmplifyBase::mNewPeak, mNewPeakT, AmplifyBase::mPeak, AmplifyBase::mRatio, AmplifyBase::mRatioClip, mUIParent, and EffectParameter< Structure, Member, Type, Value >::scale.
|
overridevirtual |
Add controls to effect panel; always succeeds.
Reimplemented from StatefulEffectUIServices.
Definition at line 81 of file Amplify.cpp.
References AmplifyBase::Amp, AmplifyBase::ClampRatio(), ID_Amp, ID_Clip, ID_Peak, Effect::IsBatchProcessing(), LINEAR_TO_DB, AmplifyBase::mAmp, mAmpS, mAmpT, EffectParameter< Structure, Member, Type, Value >::max, AmplifyBase::mCanClip, mClip, EffectParameter< Structure, Member, Type, Value >::min, AmplifyBase::mNewPeak, mNewPeakT, AmplifyBase::mPeak, AmplifyBase::mRatio, AmplifyBase::mRatioClip, mUIParent, S, EffectParameter< Structure, Member, Type, Value >::scale, XO(), and XXO().
|
overridevirtual |
Update the given settings from controls; default does nothing, returns true
Reimplemented from StatefulEffectUIServices.
Definition at line 180 of file Amplify.cpp.
References AmplifyBase::Amp, AmplifyBase::ClampRatio(), DB_TO_LINEAR, AmplifyBase::mAmp, EffectParameter< Structure, Member, Type, Value >::max, AmplifyBase::mCanClip, mClip, EffectParameter< Structure, Member, Type, Value >::min, AmplifyBase::mPeak, AmplifyBase::mRatio, mUIParent, and EffectParameter< Structure, Member, Type, Value >::scale.
|
overridevirtual |
Update controls for the settings; default does nothing, returns true
Reimplemented from StatefulEffectUIServices.
Definition at line 165 of file Amplify.cpp.
References AmplifyBase::Amp, CheckClip(), AmplifyBase::mAmp, mAmpS, mAmpT, AmplifyBase::mCanClip, mClip, mNewPeakT, and EffectParameter< Structure, Member, Type, Value >::scale.
|
private |
Definition at line 56 of file Amplify.h.
Referenced by OnAmpText(), OnPeakText(), PopulateOrExchange(), and TransferDataToWindow().
|
private |
Definition at line 57 of file Amplify.h.
Referenced by OnAmpSlider(), OnAmpText(), OnPeakText(), PopulateOrExchange(), and TransferDataToWindow().
|
private |
Definition at line 59 of file Amplify.h.
Referenced by CheckClip(), OnAmpSlider(), PopulateOrExchange(), TransferDataFromWindow(), and TransferDataToWindow().
|
private |
Definition at line 58 of file Amplify.h.
Referenced by OnAmpSlider(), OnAmpText(), OnPeakText(), PopulateOrExchange(), and TransferDataToWindow().
|
private |
Definition at line 54 of file Amplify.h.
Referenced by CheckClip(), OnAmpText(), OnPeakText(), PopulateOrExchange(), and TransferDataFromWindow().