![]() |
Audacity 3.2.0
|
An Effect to bring the peak level up to a chosen level. More...
#include <Normalize.h>
Public Member Functions | |
EffectNormalize () | |
virtual | ~EffectNormalize () |
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... | |
EffectType | GetType () const override |
Type determines how it behaves. More... | |
bool | CheckWhetherSkipEffect (const EffectSettings &settings) const override |
After Init(), tell whether Process() should be skipped. More... | |
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 |
bool | TransferDataFromWindow (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) |
Re-invoke DoEffect on another Effect object that implements the work. More... | |
![]() | |
EffectBase () | |
~EffectBase () override | |
void | SetTracks (TrackList *pTracks) |
bool | DoEffect (EffectSettings &settings, const InstanceFinder &finder, double projectRate, TrackList *list, WaveTrackFactory *factory, NotifyingSelectedRegion &selectedRegion, unsigned flags, const EffectSettingsAccessPtr &pAccess) override |
![]() | |
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 void | Preview (EffectSettingsAccess &access, std::function< void()> updateUI, bool dryOnly)=0 |
Calculate temporary tracks of limited length with effect applied and play. More... | |
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 (EffectPlugin &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 EffectNormalize * | FetchParameters (EffectNormalize &e, EffectSettings &) |
![]() | |
static Effect * | FetchParameters (Effect &e, EffectSettings &) |
static void | IncEffectCounter () |
![]() | |
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("Normalize") } |
![]() | |
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 (WaveTrack *t, const TranslatableString &msg, double &progress, float offset) |
bool | AnalyseTrack (const WaveTrack *track, const TranslatableString &msg, double &progress, float &offset, float &extent) |
bool | AnalyseTrackData (const WaveTrack *track, const TranslatableString &msg, double &progress, float &offset) |
void | AnalyseDataDC (float *buffer, size_t len) |
void | ProcessData (float *buffer, size_t len, float offset) |
void | OnUpdateUI (wxCommandEvent &evt) |
void | UpdateUI () |
const EffectParameterMethods & | Parameters () const override |
Private Attributes | |
wxWeakRef< wxWindow > | mUIParent {} |
double | mPeakLevel |
bool | mGain |
bool | mDC |
bool | mStereoInd |
double | mCurT0 |
double | mCurT1 |
float | mMult |
double | mSum |
wxCheckBox * | mGainCheckBox |
wxCheckBox * | mDCCheckBox |
wxTextCtrl * | mLevelTextCtrl |
wxStaticText * | mLeveldB |
wxStaticText * | mWarning |
wxCheckBox * | mStereoIndCheckBox |
bool | mCreating |
Static Private Attributes | |
static constexpr EffectParameter | PeakLevel |
static constexpr EffectParameter | RemoveDC |
static constexpr EffectParameter | ApplyGain |
static constexpr EffectParameter | StereoInd |
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 } |
![]() | |
TrackList * | mTracks {} |
![]() | |
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, const WaveTrack *pRight, sampleCount *start, sampleCount *len) |
void | CopyInputTracks (bool allSyncLockSelected=false) |
Track * | AddToOutputTracks (const std::shared_ptr< Track > &t) |
![]() | |
virtual std::any | BeginPreview (const EffectSettings &settings) |
Called when Preview() starts, to allow temporary effect state changes. More... | |
void | Preview (EffectSettingsAccess &access, std::function< void()> updateUI, bool dryOnly) final |
Calculate temporary tracks of limited length with effect applied and play. More... | |
virtual bool | CheckWhetherSkipEffect (const EffectSettings &settings) const =0 |
After Init(), tell whether Process() should be skipped. More... | |
virtual double | CalcPreviewInputLength (const EffectSettings &settings, double previewLength) const =0 |
void | SetLinearEffectFlag (bool linearEffectFlag) |
void | SetPreviewFullSelectionFlag (bool previewDurationFlag) |
bool | IsPreviewing () const |
void | IncludeNotSelectedPreviewTracks (bool includeNotSelected) |
void | ReplaceProcessedTracks (const bool bGoodResult) |
const TrackList * | inputTracks () const |
const AudacityProject * | FindProject () const |
![]() | |
BasicUI::ProgressDialog * | mProgress {} |
double | mProjectRate {} |
WaveTrackFactory * | mFactory {} |
std::shared_ptr< TrackList > | mOutputTracks |
double | mT0 {} |
double | mT1 {} |
wxArrayString | mPresetNames |
unsigned | mUIFlags { 0 } |
![]() | |
static int | nEffectsDone = 0 |
An Effect to bring the peak level up to a chosen level.
Definition at line 25 of file Normalize.h.
EffectNormalize::EffectNormalize | ( | ) |
Definition at line 51 of file Normalize.cpp.
Referenced by Parameters().
|
virtual |
Definition at line 57 of file Normalize.cpp.
|
private |
Definition at line 449 of file Normalize.cpp.
References mSum.
Referenced by AnalyseTrackData().
|
private |
Definition at line 290 of file Normalize.cpp.
References AnalyseTrackData(), WaveTrack::GetMinMax(), mCurT0, mCurT1, mDC, mGain, and min().
Referenced by Process().
|
private |
Definition at line 329 of file Normalize.cpp.
References AnalyseDataDC(), sampleCount::as_double(), PackedArray::end(), fillZero, WaveTrack::GetBestBlockSize(), SampleTrack::GetFloats(), WaveTrack::GetMaxBlockSize(), Effect::GetNumWaveTracks(), limitSampleBufferSize(), mCurT0, mCurT1, mSum, SampleTrack::TimeToLongSamples(), and Effect::TotalProgress().
Referenced by AnalyseTrack().
|
overridevirtual |
After Init(), tell whether Process() should be skipped.
Implements EffectBase.
Definition at line 87 of file Normalize.cpp.
|
inlinestatic |
Definition at line 29 of file Normalize.h.
|
overridevirtual |
Implements ComponentInterface.
Definition at line 68 of file Normalize.cpp.
References XO().
|
overridevirtual |
Implements ComponentInterface.
Definition at line 63 of file Normalize.cpp.
References Symbol.
|
overridevirtual |
Type determines how it behaves.
Implements EffectDefinitionInterface.
Definition at line 80 of file Normalize.cpp.
References EffectTypeProcess.
|
overridevirtual |
Name of a page in the Audacity alpha manual, default is empty.
Reimplemented from EffectDefinitionInterface.
Definition at line 73 of file Normalize.cpp.
|
private |
Definition at line 463 of file Normalize.cpp.
References UpdateUI().
|
overrideprivatevirtual |
Reimplemented from Effect.
Definition at line 33 of file Normalize.cpp.
References ApplyGain, EffectNormalize(), PeakLevel, RemoveDC, and StereoInd.
|
overridevirtual |
Add controls to effect panel; always succeeds.
Reimplemented from StatefulEffectUIServices.
Definition at line 211 of file Normalize.cpp.
References EffectParameter< Structure, Member, Type, Value >::max, mCreating, mDC, mDCCheckBox, mGain, mGainCheckBox, EffectParameter< Structure, Member, Type, Value >::min, mLeveldB, mLevelTextCtrl, mPeakLevel, mStereoInd, mStereoIndCheckBox, mUIParent, mWarning, PeakLevel, S, XO(), and XXO().
|
overridevirtual |
Implements StatefulEffectBase.
Definition at line 92 of file Normalize.cpp.
References AnalyseTrack(), Track::Any(), TrackList::Channels(), Effect::CopyInputTracks(), DB_TO_LINEAR, Track::IsLeader(), EffectParameter< Structure, Member, Type, Value >::max, mCurT0, mCurT1, mDC, mGain, EffectParameter< Structure, Member, Type, Value >::min, mMult, EffectBase::mOutputTracks, mPeakLevel, mStereoInd, EffectBase::mT0, EffectBase::mT1, PeakLevel, ProcessOne(), EffectBase::ReplaceProcessedTracks(), TrackList::SingletonRange(), size, and XO().
|
private |
Definition at line 455 of file Normalize.cpp.
References mMult.
Referenced by ProcessOne().
|
private |
Definition at line 394 of file Normalize.cpp.
References PackedArray::end(), floatSample, WaveTrack::GetBestBlockSize(), SampleTrack::GetFloats(), WaveTrack::GetMaxBlockSize(), Effect::GetNumWaveTracks(), limitSampleBufferSize(), mCurT0, mCurT1, ProcessData(), WaveTrack::Set(), SampleTrack::TimeToLongSamples(), and Effect::TotalProgress().
Referenced by Process().
|
overridevirtual |
Update the given settings from controls; default does nothing, returns true
Reimplemented from StatefulEffectUIServices.
Definition at line 278 of file Normalize.cpp.
References mUIParent.
|
overridevirtual |
Update controls for the settings; default does nothing, returns true
Reimplemented from StatefulEffectUIServices.
Definition at line 266 of file Normalize.cpp.
References mUIParent, and UpdateUI().
|
private |
Definition at line 468 of file Normalize.cpp.
References _, EffectEditor::EnableApply(), mDC, mGain, mLeveldB, mLevelTextCtrl, mStereoIndCheckBox, mUIParent, mWarning, and wxT().
Referenced by OnUpdateUI(), and TransferDataToWindow().
|
staticconstexprprivate |
Definition at line 98 of file Normalize.h.
Referenced by Parameters().
|
private |
Definition at line 89 of file Normalize.h.
Referenced by PopulateOrExchange().
|
private |
Definition at line 78 of file Normalize.h.
Referenced by AnalyseTrack(), AnalyseTrackData(), Process(), and ProcessOne().
|
private |
Definition at line 79 of file Normalize.h.
Referenced by AnalyseTrack(), AnalyseTrackData(), Process(), and ProcessOne().
|
private |
Definition at line 75 of file Normalize.h.
Referenced by AnalyseTrack(), CheckWhetherSkipEffect(), PopulateOrExchange(), Process(), and UpdateUI().
|
private |
Definition at line 84 of file Normalize.h.
Referenced by PopulateOrExchange().
|
private |
Definition at line 74 of file Normalize.h.
Referenced by AnalyseTrack(), CheckWhetherSkipEffect(), PopulateOrExchange(), Process(), and UpdateUI().
|
private |
Definition at line 83 of file Normalize.h.
Referenced by PopulateOrExchange().
|
private |
Definition at line 86 of file Normalize.h.
Referenced by PopulateOrExchange(), and UpdateUI().
|
private |
Definition at line 85 of file Normalize.h.
Referenced by PopulateOrExchange(), and UpdateUI().
|
private |
Definition at line 80 of file Normalize.h.
Referenced by Process(), and ProcessData().
|
private |
Definition at line 73 of file Normalize.h.
Referenced by PopulateOrExchange(), and Process().
|
private |
Definition at line 76 of file Normalize.h.
Referenced by PopulateOrExchange(), and Process().
|
private |
Definition at line 88 of file Normalize.h.
Referenced by PopulateOrExchange(), and UpdateUI().
|
private |
Definition at line 81 of file Normalize.h.
Referenced by AnalyseDataDC(), and AnalyseTrackData().
|
private |
Definition at line 71 of file Normalize.h.
Referenced by PopulateOrExchange(), TransferDataFromWindow(), TransferDataToWindow(), and UpdateUI().
|
private |
Definition at line 87 of file Normalize.h.
Referenced by PopulateOrExchange(), and UpdateUI().
|
staticconstexprprivate |
Definition at line 94 of file Normalize.h.
Referenced by Parameters(), PopulateOrExchange(), and Process().
|
staticconstexprprivate |
Definition at line 96 of file Normalize.h.
Referenced by Parameters().
|
staticconstexprprivate |
Definition at line 100 of file Normalize.h.
Referenced by Parameters().
|
static |
Definition at line 30 of file Normalize.h.
Referenced by GetSymbol().