Audacity 3.2.0
|
An Effect that can generate a sine, square or sawtooth wave. An extended mode of ToneGenBase supports 'chirps' where the frequency changes smoothly during the tone. More...
#include <ToneGenBase.h>
Public Member Functions | |
ToneGenBase (bool isChirp) | |
virtual | ~ToneGenBase () |
EffectType | GetType () const override |
Type determines how it behaves. More... | |
unsigned | GetAudioOutCount () const override |
How many output buffers to allocate at once. More... | |
bool | ProcessInitialize (EffectSettings &settings, double sampleRate, ChannelNames chanMap) override |
size_t | ProcessBlock (EffectSettings &settings, const float *const *inBlock, float *const *outBlock, size_t blockLen) override |
Called for destructive effect computation. 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 |
Static Public Member Functions | |
static ToneGenBase * | FetchParameters (ToneGenBase &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... | |
Protected Types | |
enum | kWaveforms { kSine , kSquare , kSawtooth , kSquareNoAlias , kTriangle , nWaveforms } |
enum | kInterpolations { kLinear , kLogarithmic , nInterpolations } |
Protected Attributes | |
double | mSampleRate {} |
const bool | mChirp |
int | mWaveform |
int | mInterpolation |
double | mFrequency0 |
double | mFrequency1 |
double | mAmplitude0 |
double | mAmplitude1 |
Protected Attributes inherited from PerTrackEffect | |
sampleCount | mSampleCnt {} |
Protected Attributes inherited from EffectBase | |
double | mF0 {} |
double | mF1 {} |
wxArrayString | mPresetNames |
unsigned | mUIFlags { 0 } |
Static Protected Attributes | |
static const EnumValueSymbol | kWaveStrings [nWaveforms] |
static const EnumValueSymbol | kInterStrings [nInterpolations] |
static constexpr EffectParameter | StartFreq |
static constexpr EffectParameter | EndFreq |
static constexpr EffectParameter | StartAmp |
static constexpr EffectParameter | EndAmp |
static constexpr EffectParameter | Frequency |
static constexpr EffectParameter | Amplitude |
static constexpr EnumParameter | Waveform |
static constexpr EnumParameter | Interp |
Private Member Functions | |
void | PostSet () |
const EffectParameterMethods & | Parameters () const override |
Private Attributes | |
sampleCount | mSample |
double | mPositionInCycles |
double | mLogFrequency [2] |
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 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 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 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 |
An Effect that can generate a sine, square or sawtooth wave. An extended mode of ToneGenBase supports 'chirps' where the frequency changes smoothly during the tone.
Definition at line 21 of file ToneGenBase.h.
|
protected |
Enumerator | |
---|---|
kLinear | |
kLogarithmic | |
nInterpolations |
Definition at line 83 of file ToneGenBase.h.
|
protected |
Enumerator | |
---|---|
kSine | |
kSquare | |
kSawtooth | |
kSquareNoAlias | |
kTriangle | |
nWaveforms |
Definition at line 71 of file ToneGenBase.h.
ToneGenBase::ToneGenBase | ( | bool | isChirp | ) |
Definition at line 60 of file ToneGenBase.cpp.
References kInterStrings, kWaveStrings, nInterpolations, nWaveforms, Parameters(), EffectParameterMethods::Reset(), and EffectBase::SetLinearEffectFlag().
Referenced by Parameters().
|
virtual |
Definition at line 76 of file ToneGenBase.cpp.
|
inlinestatic |
Definition at line 24 of file ToneGenBase.h.
|
overridevirtual |
How many output buffers to allocate at once.
The result is not necessarily well defined before RealtimeInitialize
Default implementation returns 0
Reimplemented from StatefulEffectBase.
Definition at line 87 of file ToneGenBase.cpp.
|
overridevirtual |
Type determines how it behaves.
Implements EffectDefinitionInterface.
Definition at line 82 of file ToneGenBase.cpp.
References EffectTypeGenerate.
|
overrideprivatevirtual |
Reimplemented from Effect.
Definition at line 40 of file ToneGenBase.cpp.
References Amplitude, EndAmp, EndFreq, Frequency, Interp, mChirp, StartAmp, StartFreq, ToneGenBase(), and Waveform.
Referenced by ToneGenBase().
|
private |
Definition at line 213 of file ToneGenBase.cpp.
References mAmplitude0, mAmplitude1, mChirp, mFrequency0, and mFrequency1.
|
overridevirtual |
Called for destructive effect computation.
Implements StatefulPerTrackEffect.
Definition at line 101 of file ToneGenBase.cpp.
References sampleCount::as_double(), kLogarithmic, kSawtooth, kSine, kSquare, kSquareNoAlias, kTriangle, M_PI, mAmplitude0, mAmplitude1, mFrequency0, mFrequency1, mInterpolation, mLogFrequency, mPositionInCycles, mSample, PerTrackEffect::mSampleCnt, mSampleRate, and mWaveform.
|
overridevirtual |
Called at start of destructive processing, for each (mono/stereo) track Default implementation does nothing, returns true
chanMap | null or array terminated with ChannelNameEOL. Do not retain the pointer |
GetAudioInCount()
and GetAudioOutCount()
are well defined Reimplemented from StatefulEffectBase.
Definition at line 92 of file ToneGenBase.cpp.
References mPositionInCycles, mSample, mSampleRate, and anonymous_namespace{ClipSegmentTest.cpp}::sampleRate.
|
staticconstexprprotected |
Definition at line 108 of file ToneGenBase.h.
Referenced by Parameters(), and EffectToneGen::PopulateOrExchange().
|
staticconstexprprotected |
Definition at line 102 of file ToneGenBase.h.
Referenced by Parameters(), and EffectToneGen::PopulateOrExchange().
|
staticconstexprprotected |
Definition at line 96 of file ToneGenBase.h.
Referenced by Parameters(), and EffectToneGen::PopulateOrExchange().
|
staticconstexprprotected |
Definition at line 105 of file ToneGenBase.h.
Referenced by Parameters(), and EffectToneGen::PopulateOrExchange().
|
staticconstexprprotected |
Definition at line 119 of file ToneGenBase.h.
Referenced by Parameters().
|
staticprotected |
Definition at line 90 of file ToneGenBase.h.
Referenced by EffectToneGen::PopulateOrExchange(), and ToneGenBase().
|
staticprotected |
Definition at line 81 of file ToneGenBase.h.
Referenced by EffectToneGen::PopulateOrExchange(), and ToneGenBase().
|
protected |
Definition at line 60 of file ToneGenBase.h.
Referenced by EffectToneGen::PopulateOrExchange(), PostSet(), ProcessBlock(), and EffectToneGen::TransferDataFromWindow().
|
protected |
Definition at line 61 of file ToneGenBase.h.
Referenced by EffectToneGen::PopulateOrExchange(), PostSet(), ProcessBlock(), and EffectToneGen::TransferDataFromWindow().
|
protected |
Definition at line 45 of file ToneGenBase.h.
Referenced by EffectToneGen::GetDescription(), EffectToneGen::ManualPage(), Parameters(), EffectToneGen::PopulateOrExchange(), PostSet(), and EffectToneGen::TransferDataFromWindow().
|
protected |
Definition at line 58 of file ToneGenBase.h.
Referenced by EffectToneGen::PopulateOrExchange(), PostSet(), ProcessBlock(), and EffectToneGen::TransferDataFromWindow().
|
protected |
Definition at line 59 of file ToneGenBase.h.
Referenced by EffectToneGen::PopulateOrExchange(), PostSet(), ProcessBlock(), and EffectToneGen::TransferDataFromWindow().
|
protected |
Definition at line 57 of file ToneGenBase.h.
Referenced by EffectToneGen::PopulateOrExchange(), and ProcessBlock().
|
private |
Definition at line 64 of file ToneGenBase.h.
Referenced by ProcessBlock().
|
private |
Definition at line 51 of file ToneGenBase.h.
Referenced by ProcessBlock(), and ProcessInitialize().
|
private |
Definition at line 50 of file ToneGenBase.h.
Referenced by ProcessBlock(), and ProcessInitialize().
|
protected |
Definition at line 44 of file ToneGenBase.h.
Referenced by ProcessBlock(), and ProcessInitialize().
|
protected |
Definition at line 56 of file ToneGenBase.h.
Referenced by EffectToneGen::PopulateOrExchange(), and ProcessBlock().
|
staticconstexprprotected |
Definition at line 99 of file ToneGenBase.h.
Referenced by Parameters(), and EffectToneGen::PopulateOrExchange().
|
staticconstexprprotected |
Definition at line 93 of file ToneGenBase.h.
Referenced by Parameters(), and EffectToneGen::PopulateOrExchange().
|
staticconstexprprotected |
Definition at line 111 of file ToneGenBase.h.
Referenced by Parameters().