Audacity 3.2.0
Noise.h
Go to the documentation of this file.
1/**********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 Noise.h
6
7 Dominic Mazzoni
8
9 An effect to add white noise.
10
11**********************************************************************/
12
13#ifndef __AUDACITY_EFFECT_NOISE__
14#define __AUDACITY_EFFECT_NOISE__
15
17#include "ShuttleAutomation.h"
18#include <wx/weakref.h>
19
20class NumericTextCtrl;
21class ShuttleGui;
22
24{
25public:
26 static inline EffectNoise *
29
31 virtual ~EffectNoise();
32
33 // ComponentInterface implementation
34
35 ComponentInterfaceSymbol GetSymbol() const override;
36 TranslatableString GetDescription() const override;
37 ManualPageID ManualPage() const override;
38
39 // EffectDefinitionInterface implementation
40
41 EffectType GetType() const override;
42
43 unsigned GetAudioOutCount() const override;
45 ChannelNames chanMap) override;
47 const float *const *inBlock, float *const *outBlock, size_t blockLen)
48 override;
49
50 // Effect implementation
51
52 std::unique_ptr<EffectEditor> PopulateOrExchange(
53 ShuttleGui & S, EffectInstance &instance,
54 EffectSettingsAccess &access, const EffectOutputs *pOutputs) override;
55 bool TransferDataToWindow(const EffectSettings &settings) override;
57
58private:
59 // EffectNoise implementation
60
61 wxWeakRef<wxWindow> mUIParent{};
62
63 double mSampleRate{};
64 int mType;
65 double mAmp;
66
67 float y, z, buf0, buf1, buf2, buf3, buf4, buf5, buf6;
68
70
71 const EffectParameterMethods& Parameters() const override;
72
73 enum kTypes
74 {
78 nTypes
79 };
81
83 L"Type", kWhite, 0, nTypes - 1, 1, kTypeStrings, nTypes };
85 L"Amplitude", 0.8, 0.0, 1.0, 1 };
86};
87
88#endif
EffectType
ChannelName
#define S(N)
Definition: ToChars.cpp:64
static Settings & settings()
Definition: TrackInfo.cpp:69
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
Performs effect computation.
An effect to add white noise.
Definition: Noise.h:24
TranslatableString GetDescription() const override
Definition: Noise.cpp:80
static constexpr EffectParameter Amp
Definition: Noise.h:84
float buf3
Definition: Noise.h:67
@ nTypes
Definition: Noise.h:78
@ kPink
Definition: Noise.h:76
@ kBrownian
Definition: Noise.h:77
@ kWhite
Definition: Noise.h:75
size_t ProcessBlock(EffectSettings &settings, const float *const *inBlock, float *const *outBlock, size_t blockLen) override
Called for destructive effect computation.
Definition: Noise.cpp:109
bool TransferDataFromWindow(EffectSettings &settings) override
Definition: Noise.cpp:224
ManualPageID ManualPage() const override
Name of a page in the Audacity alpha manual, default is empty.
Definition: Noise.cpp:85
static const EnumValueSymbol kTypeStrings[nTypes]
Definition: Noise.h:80
static constexpr EnumParameter Type
Definition: Noise.h:82
float y
Definition: Noise.h:67
float buf0
Definition: Noise.h:67
double mSampleRate
Definition: Noise.h:63
const EffectParameterMethods & Parameters() const override
Definition: Noise.cpp:42
std::unique_ptr< EffectEditor > PopulateOrExchange(ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) override
Add controls to effect panel; always succeeds.
Definition: Noise.cpp:177
float buf4
Definition: Noise.h:67
double mAmp
Definition: Noise.h:65
float buf2
Definition: Noise.h:67
NumericTextCtrl * mNoiseDurationT
Definition: Noise.h:69
float buf6
Definition: Noise.h:67
float buf5
Definition: Noise.h:67
unsigned GetAudioOutCount() const override
How many output buffers to allocate at once.
Definition: Noise.cpp:97
ComponentInterfaceSymbol GetSymbol() const override
Definition: Noise.cpp:75
wxWeakRef< wxWindow > mUIParent
Definition: Noise.h:61
static const ComponentInterfaceSymbol Symbol
Definition: Noise.h:28
bool TransferDataToWindow(const EffectSettings &settings) override
Definition: Noise.cpp:213
float z
Definition: Noise.h:67
float buf1
Definition: Noise.h:67
static EffectNoise * FetchParameters(EffectNoise &e, EffectSettings &)
Definition: Noise.h:27
int mType
Definition: Noise.h:64
EffectType GetType() const override
Type determines how it behaves.
Definition: Noise.cpp:92
EffectNoise()
Definition: Noise.cpp:60
bool ProcessInitialize(EffectSettings &settings, double sampleRate, ChannelNames chanMap) override
Definition: Noise.cpp:102
virtual ~EffectNoise()
Definition: Noise.cpp:69
Hold values to send to effect output meters.
Interface for manipulations of an Effect's settings.
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
Definition: ShuttleGui.h:640
Base class for many of the effects in Audacity.
Holds a msgid for the translation catalog; may also bind format arguments.
Externalized state of a plug-in.