![]() |
Audacity 3.2.0
|
Public Member Functions | |
Instance (const PerTrackEffect &effect) | |
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... | |
bool | RealtimeInitialize (EffectSettings &settings, double) override |
bool | RealtimeAddProcessor (EffectSettings &settings, EffectOutputs *pOutputs, unsigned numChannels, float sampleRate) override |
bool | RealtimeFinalize (EffectSettings &settings) noexcept override |
size_t | RealtimeProcess (size_t group, EffectSettings &settings, const float *const *inbuf, float *const *outbuf, size_t numSamples) override |
void | InstanceInit (EffectDistortionState &data, EffectSettings &settings, float sampleRate) |
size_t | InstanceProcess (EffectSettings &settings, EffectDistortionState &data, const float *const *inBlock, float *const *outBlock, size_t blockLen) |
void | MakeTable (EffectDistortionState &state, const EffectDistortionSettings &ms) |
void | HardClip (EffectDistortionState &, const EffectDistortionSettings &) |
void | SoftClip (EffectDistortionState &, const EffectDistortionSettings &) |
void | ExponentialTable (const EffectDistortionSettings &) |
void | LogarithmicTable (const EffectDistortionSettings &) |
void | HalfSinTable (const EffectDistortionSettings &) |
void | CubicTable (const EffectDistortionSettings &) |
void | EvenHarmonicTable (const EffectDistortionSettings &) |
void | SineTable (const EffectDistortionSettings &) |
void | Leveller (const EffectDistortionSettings &) |
void | Rectifier (const EffectDistortionSettings &) |
void | HardLimiter (EffectDistortionState &state, const EffectDistortionSettings &) |
void | CopyHalfTable () |
float | LogCurve (double threshold, float value, double ratio) |
double | Cubic (const EffectDistortionSettings &, double x) |
float | WaveShaper (float sample, EffectDistortionSettings &ms) |
float | DCFilter (EffectDistortionState &data, float sample) |
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... | |
![]() | |
Instance (const PerTrackEffect &processor) | |
~Instance () override | |
bool | Process (EffectSettings &settings) final |
Uses the other virtual functions of this class. More... | |
bool | ProcessInitialize (EffectSettings &settings, double sampleRate, ChannelNames chanMap) override |
bool | ProcessFinalize () noexcept override |
![]() | |
virtual bool | Init () |
Call once to set up state for whole list of tracks to be processed. More... | |
virtual bool | Process (EffectSettings &settings)=0 |
Actually do the effect here. More... | |
~EffectInstanceEx () override | |
![]() | |
virtual | ~EffectInstance () |
virtual size_t | GetBlockSize () const =0 |
virtual size_t | SetBlockSize (size_t maxBlockSize)=0 |
virtual unsigned | GetAudioInCount () const =0 |
How many input buffers to allocate at once. More... | |
virtual unsigned | GetAudioOutCount () const =0 |
How many output buffers to allocate at once. More... | |
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 std::unique_ptr< Message > | MakeMessage () const |
Called on the main thread, in which the result may be cloned. More... | |
virtual bool | UsesMessages () const noexcept |
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 | GetTailSize () const |
virtual SampleCount | GetLatency (const EffectSettings &settings, double sampleRate) const |
virtual bool | NeedsDither () const |
virtual bool | ProcessInitialize (EffectSettings &settings, double sampleRate, ChannelNames chanMap)=0 |
virtual bool | ProcessFinalize () noexcept=0 |
virtual size_t | ProcessBlock (EffectSettings &settings, const float *const *inBlock, float *const *outBlock, size_t blockLen)=0 |
Called for destructive effect computation. More... | |
![]() | |
~EffectInstanceWithBlockSize () override | |
size_t | GetBlockSize () const override |
size_t | SetBlockSize (size_t maxBlockSize) override |
Public Attributes | |
double | mTable [TABLESIZE] |
EffectDistortionState | mMaster |
std::vector< EffectDistortionState > | mSlaves |
Additional Inherited Members | |
![]() | |
using | Message = EffectSettingsAccess::Message |
using | SampleCount = uint64_t |
![]() | |
const PerTrackEffect & | mProcessor |
![]() | |
size_t | mBlockSize { 0 } |
Definition at line 234 of file Distortion.cpp.
|
inlineexplicit |
Definition at line 238 of file Distortion.cpp.
void EffectDistortion::Instance::CopyHalfTable | ( | ) |
Definition at line 1490 of file Distortion.cpp.
|
inline |
Definition at line 1359 of file Distortion.cpp.
References EffectDistortionSettings::mParam1.
void EffectDistortion::Instance::CubicTable | ( | const EffectDistortionSettings & | ms | ) |
Definition at line 1333 of file Distortion.cpp.
References min(), EffectDistortionSettings::mParam1, EffectDistortionSettings::mRepeats, staffpad::audio::simd::sqrt(), STEPS, and TABLESIZE.
float EffectDistortion::Instance::DCFilter | ( | EffectDistortionState & | data, |
float | sample | ||
) |
Definition at line 1531 of file Distortion.cpp.
References EffectDistortionState::queuesamples, EffectDistortionState::queuetotal, and EffectDistortionState::samplerate.
void EffectDistortion::Instance::EvenHarmonicTable | ( | const EffectDistortionSettings & | ms | ) |
Definition at line 1368 of file Distortion.cpp.
References EffectDistortionSettings::mParam1, EffectDistortionSettings::mParam2, STEPS, and TABLESIZE.
void EffectDistortion::Instance::ExponentialTable | ( | const EffectDistortionSettings & | ms | ) |
Definition at line 1281 of file Distortion.cpp.
References DB_TO_LINEAR, min(), EffectDistortionSettings::mParam1, STEPS, and TABLESIZE.
|
overridevirtual |
How many input buffers to allocate at once.
If the instance processes channels independently, this can return 1 The result is not necessarily well defined before RealtimeInitialize
Implements EffectInstance.
Definition at line 361 of file Distortion.cpp.
|
overridevirtual |
How many output buffers to allocate at once.
The result is not necessarily well defined before RealtimeInitialize
Implements EffectInstance.
Definition at line 366 of file Distortion.cpp.
void EffectDistortion::Instance::HalfSinTable | ( | const EffectDistortionSettings & | ms | ) |
Definition at line 1315 of file Distortion.cpp.
References M_PI_2, EffectDistortionSettings::mParam1, STEPS, and TABLESIZE.
void EffectDistortion::Instance::HardClip | ( | EffectDistortionState & | state, |
const EffectDistortionSettings & | ms | ||
) |
Definition at line 1230 of file Distortion.cpp.
References DB_TO_LINEAR, EffectDistortionState::mMakeupGain, EffectDistortionSettings::mThreshold_dB, STEPS, and TABLESIZE.
void EffectDistortion::Instance::HardLimiter | ( | EffectDistortionState & | state, |
const EffectDistortionSettings & | settings | ||
) |
Definition at line 1479 of file Distortion.cpp.
References settings().
void EffectDistortion::Instance::InstanceInit | ( | EffectDistortionState & | data, |
EffectSettings & | settings, | ||
float | sampleRate | ||
) |
Definition at line 655 of file Distortion.cpp.
References EffectDistortionState::dcblock, EffectWithSettings< EffectDistortionSettings, StatelessPerTrackEffect >::GetSettings(), EffectDistortionState::noisefloor, EffectDistortionState::param1, EffectDistortionState::param2, EffectDistortionState::queuesamples, EffectDistortionState::queuetotal, EffectDistortionState::repeats, anonymous_namespace{ClipSegmentTest.cpp}::sampleRate, EffectDistortionState::samplerate, settings(), EffectDistortionState::skipcount, EffectDistortionState::tablechoiceindx, and EffectDistortionState::threshold.
size_t EffectDistortion::Instance::InstanceProcess | ( | EffectSettings & | settings, |
EffectDistortionState & | data, | ||
const float *const * | inBlock, | ||
float *const * | outBlock, | ||
size_t | blockLen | ||
) |
Definition at line 681 of file Distortion.cpp.
References EffectWithSettings< EffectDistortionSettings, StatelessPerTrackEffect >::GetSettings(), EffectDistortion::kCubic, EffectDistortion::kEvenHarmonics, EffectDistortion::kExpCurve, EffectDistortion::kHalfSinCurve, EffectDistortion::kHardClip, EffectDistortion::kHardLimiter, EffectDistortion::kLeveller, EffectDistortion::kLogCurve, EffectDistortion::kRectifier, EffectDistortion::kSinCurve, EffectDistortion::kSoftClip, EffectDistortionState::mMakeupGain, EffectDistortionState::noisefloor, EffectDistortionState::param1, EffectDistortionState::param2, EffectDistortionState::repeats, settings(), EffectDistortionState::skipcount, skipsamples, EffectDistortionState::tablechoiceindx, and EffectDistortionState::threshold.
void EffectDistortion::Instance::Leveller | ( | const EffectDistortionSettings & | ms | ) |
Definition at line 1402 of file Distortion.cpp.
References DB_TO_LINEAR, EffectDistortionSettings::mNoiseFloor, EffectDistortionSettings::mParam1, EffectDistortionSettings::mRepeats, STEPS, and TABLESIZE.
void EffectDistortion::Instance::LogarithmicTable | ( | const EffectDistortionSettings & | ms | ) |
Definition at line 1294 of file Distortion.cpp.
References EffectDistortionSettings::mParam1, STEPS, and TABLESIZE.
|
inline |
Definition at line 1276 of file Distortion.cpp.
void EffectDistortion::Instance::MakeTable | ( | EffectDistortionState & | state, |
const EffectDistortionSettings & | ms | ||
) |
Definition at line 1181 of file Distortion.cpp.
References EffectDistortion::kCubic, EffectDistortion::kEvenHarmonics, EffectDistortion::kExpCurve, EffectDistortion::kHalfSinCurve, EffectDistortion::kHardClip, EffectDistortion::kHardLimiter, EffectDistortion::kLeveller, EffectDistortion::kLogCurve, EffectDistortion::kRectifier, EffectDistortion::kSinCurve, EffectDistortion::kSoftClip, and EffectDistortionSettings::mTableChoiceIndx.
|
overridevirtual |
Called for destructive effect computation.
Implements EffectInstance.
Definition at line 378 of file Distortion.cpp.
References settings().
|
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 Implements EffectInstance.
Definition at line 371 of file Distortion.cpp.
References anonymous_namespace{ClipSegmentTest.cpp}::sampleRate, and settings().
|
overridevirtual |
Reimplemented from EffectInstance.
Definition at line 391 of file Distortion.cpp.
References anonymous_namespace{ClipSegmentTest.cpp}::sampleRate, and settings().
|
overridevirtualnoexcept |
Reimplemented from EffectInstance.
Definition at line 403 of file Distortion.cpp.
|
overridevirtual |
GetAudioInCount()
and GetAudioOutCount()
are well definedDefault implementation does nothing, returns false (so assume realtime is not supported). Other member functions related to realtime return true or zero, but will not be called, unless a derived class overrides RealtimeInitialize.
Reimplemented from EffectInstance.
Definition at line 384 of file Distortion.cpp.
|
overridevirtual |
Reimplemented from EffectInstance.
Definition at line 410 of file Distortion.cpp.
References settings().
void EffectDistortion::Instance::Rectifier | ( | const EffectDistortionSettings & | ms | ) |
Definition at line 1459 of file Distortion.cpp.
References EffectDistortionSettings::mParam1, and STEPS.
void EffectDistortion::Instance::SineTable | ( | const EffectDistortionSettings & | ms | ) |
Definition at line 1384 of file Distortion.cpp.
References M_PI, M_PI_2, EffectDistortionSettings::mParam1, STEPS, and TABLESIZE.
void EffectDistortion::Instance::SoftClip | ( | EffectDistortionState & | state, |
const EffectDistortionSettings & | ms | ||
) |
Definition at line 1253 of file Distortion.cpp.
References DB_TO_LINEAR, EffectDistortionState::mMakeupGain, EffectDistortionSettings::mParam1, EffectDistortionSettings::mThreshold_dB, STEPS, and TABLESIZE.
float EffectDistortion::Instance::WaveShaper | ( | float | sample, |
EffectDistortionSettings & | ms | ||
) |
Definition at line 1501 of file Distortion.cpp.
References EffectDistortion::kHardClip, EffectDistortionSettings::mParam1, EffectDistortionSettings::mTableChoiceIndx, and STEPS.
EffectDistortionState EffectDistortion::Instance::mMaster |
Definition at line 304 of file Distortion.cpp.
std::vector<EffectDistortionState> EffectDistortion::Instance::mSlaves |
Definition at line 305 of file Distortion.cpp.
double EffectDistortion::Instance::mTable[TABLESIZE] |
Definition at line 302 of file Distortion.cpp.