35#define phaserlfoshape 4.0
38#define lfoskipsamples 20
48 return std::make_shared<Instance>(*
this);
69 return XO(
"Combines phase-shifted signals with the original signal");
110 float*
const* outBlock,
size_t blockLen)
112 return InstanceProcess(
settings,
mState, inBlock, outBlock, blockLen);
129 mSlaves.push_back(slave);
143 float*
const* outbuf,
size_t numSamples)
145 if (group >= mSlaves.size())
147 return InstanceProcess(
160 for (
int j = 0; j < ms.mStages; j++)
176 const float*
const* inBlock,
float*
const* outBlock,
size_t blockLen)
180 const float* ibuf = inBlock[0];
181 float* obuf = outBlock[0];
183 for (
int j = data.
laststages; j < ms.mStages; j++)
193 for (
decltype(blockLen) i = 0; i < blockLen; i++)
198 in + data.
fbout * ms.mFeedback /
213 data.
gain = 1.0 - data.
gain / 255.0 * ms.mDepth;
217 for (
int j = 0; j < ms.mStages; j++)
219 double tmp = data.
old[j];
220 data.
old[j] = data.
gain * tmp + m;
221 m = tmp - data.
gain * data.
old[j];
226 (float)(data.
outgain * (m * ms.mDryWet + in * (255 - ms.mDryWet)) / 255);
static Settings & settings()
Generates EffectParameterMethods overrides from variadic template arguments.
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
void SetLinearEffectFlag(bool linearEffectFlag)
RealtimeSince
In which versions of Audacity was an effect realtime capable?
Hold values to send to effect output meters.
Interface for manipulations of an Effect's settings.
static EffectPhaserSettings & GetSettings(EffectSettings &settings)
Assume settings originated from MakeSettings() and copies thereof.
An Effect that changes frequencies in a time varying manner.
static constexpr EffectParameter Depth
const EffectParameterMethods & Parameters() const override
TranslatableString GetDescription() const override
static constexpr EffectParameter DryWet
std::shared_ptr< EffectInstance > MakeInstance() const override
Make an object maintaining short-term state of an Effect.
RealtimeSince RealtimeSupport() const override
Since which version of Audacity has the effect supported realtime?
static constexpr EffectParameter Feedback
static constexpr EffectParameter Freq
static constexpr EffectParameter Phase
static const ComponentInterfaceSymbol Symbol
static constexpr EffectParameter Stages
static constexpr EffectParameter OutGain
ManualPageID ManualPage() const override
Name of a page in the Audacity alpha manual, default is empty.
ComponentInterfaceSymbol GetSymbol() const override
EffectType GetType() const override
Type determines how it behaves.
Holds a msgid for the translation catalog; may also bind format arguments.
constexpr auto sampleRate
Externalized state of a plug-in.
bool RealtimeAddProcessor(EffectSettings &settings, EffectOutputs *pOutputs, unsigned numChannels, float sampleRate) override
bool RealtimeFinalize(EffectSettings &settings) noexcept override
unsigned GetAudioInCount() const override
How many input buffers to allocate at once.
bool RealtimeInitialize(EffectSettings &settings, double) override
bool ProcessInitialize(EffectSettings &settings, double sampleRate, ChannelNames chanMap) override
void InstanceInit(EffectSettings &settings, EffectPhaserState &data, float sampleRate)
size_t ProcessBlock(EffectSettings &settings, const float *const *inBlock, float *const *outBlock, size_t blockLen) override
Called for destructive effect computation.
unsigned GetAudioOutCount() const override
How many output buffers to allocate at once.
size_t RealtimeProcess(size_t group, EffectSettings &settings, const float *const *inbuf, float *const *outbuf, size_t numSamples) override
size_t InstanceProcess(EffectSettings &settings, EffectPhaserState &data, const float *const *inBlock, float *const *outBlock, size_t blockLen)