26#define lfoskipsamples 30
36 return std::make_shared<Instance>(*
this);
58 "Rapid tone quality variations, like that guitar sound so popular in the 1970's");
89 float*
const* outBlock,
size_t blockLen)
91 return InstanceProcess(
settings,
mState, inBlock, outBlock, blockLen);
108 mSlaves.push_back(slave);
122 float*
const* outbuf,
size_t numSamples)
124 if (group >= mSlaves.size())
126 return InstanceProcess(
151 data.
depth = ms.mDepth / 100.0;
152 data.
freqofs = ms.mFreqOfs / 100.0;
159 const float*
const* inBlock,
float*
const* outBlock,
size_t blockLen)
163 const float* ibuf = inBlock[0];
164 float* obuf = outBlock[0];
165 double frequency, omega, sn, cs, alpha;
169 data.
depth = ms.mDepth / 100.0;
170 data.
freqofs = ms.mFreqOfs / 100.0;
175 for (
decltype(blockLen) i = 0; i < blockLen; i++)
177 in = (double)ibuf[i];
183 frequency = exp((frequency - 1) * 6);
184 omega =
M_PI * frequency;
187 alpha = sn / (2 * ms.mRes);
188 data.
b0 = (1 - cs) / 2;
190 data.
b2 = (1 - cs) / 2;
195 out = (data.
b0 * in + data.
b1 * data.
xn1 + data.
b2 * data.
xn2 -
204 obuf[i] = (
float)out;
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 EffectWahwahSettings & GetSettings(EffectSettings &settings)
Assume settings originated from MakeSettings() and copies thereof.
Holds a msgid for the translation catalog; may also bind format arguments.
EffectType GetType() const override
Type determines how it behaves.
ManualPageID ManualPage() const override
Name of a page in the Audacity alpha manual, default is empty.
static constexpr EffectParameter OutGain
static constexpr EffectParameter FreqOfs
static constexpr EffectParameter Phase
static constexpr EffectParameter Freq
RealtimeSince RealtimeSupport() const override
Since which version of Audacity has the effect supported realtime?
static constexpr EffectParameter Depth
std::shared_ptr< EffectInstance > MakeInstance() const override
Make an object maintaining short-term state of an Effect.
static const ComponentInterfaceSymbol Symbol
TranslatableString GetDescription() const override
const EffectParameterMethods & Parameters() const override
static constexpr EffectParameter Res
ComponentInterfaceSymbol GetSymbol() const override
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
size_t RealtimeProcess(size_t group, EffectSettings &settings, const float *const *inbuf, float *const *outbuf, size_t numSamples) override
unsigned GetAudioInCount() const override
How many input buffers to allocate at once.
void InstanceInit(EffectSettings &settings, EffectWahwahState &data, float sampleRate)
size_t InstanceProcess(EffectSettings &settings, EffectWahwahState &data, const float *const *inBlock, float *const *outBlock, size_t blockLen)
size_t ProcessBlock(EffectSettings &settings, const float *const *inBlock, float *const *outBlock, size_t blockLen) override
Called for destructive effect computation.
bool ProcessInitialize(EffectSettings &settings, double sampleRate, ChannelNames chanMap) override
unsigned GetAudioOutCount() const override
How many output buffers to allocate at once.
bool RealtimeInitialize(EffectSettings &settings, double) override