Audacity 3.2.0
Reverb.h
Go to the documentation of this file.
1/**********************************************************************
2
3 Audacity: A Digital Audio Editor
4 Audacity(R) is copyright (c) 1999-2013 Audacity Team.
5 License: GPL v2 or later. See License.txt.
6
7 Reverb.h
8 Rob Sykes, Vaughan Johnson
9
10**********************************************************************/
11
12#ifndef __AUDACITY_EFFECT_REVERB__
13#define __AUDACITY_EFFECT_REVERB__
14
16#include "ShuttleAutomation.h"
17
18
19struct Reverb_priv_t;
20
22{
23 static constexpr double roomSizeDefault = 75.0;
24 static constexpr double preDelayDefault = 10.0;
25 static constexpr double reverberanceDefault = 50.0;
26 static constexpr double hfDampingDefault = 50.0;
27 static constexpr double toneLowDefault = 100.0;
28 static constexpr double toneHighDefault = 100.0;
29 static constexpr double wetGainDefault = -1.0;
30 static constexpr double dryGainDefault = -1.0;
31 static constexpr double stereoWidthDefault = 100.0;
32 static constexpr bool wetOnlyDefault = false;
33
44
45 friend bool operator==(const EffectReverbSettings& a, const EffectReverbSettings& b);
46
48};
49
50
51class EffectReverb final : public EffectWithSettings<
52 EffectReverbSettings, StatelessPerTrackEffect
53>
54{
55public:
56
57
59
61 virtual ~EffectReverb();
62
63 // ComponentInterface implementation
64
65 ComponentInterfaceSymbol GetSymbol() const override;
66 TranslatableString GetDescription() const override;
67 ManualPageID ManualPage() const override;
68
69 // EffectDefinitionInterface implementation
70
71 EffectType GetType() const override;
72 RegistryPaths GetFactoryPresets() const override;
74 const override;
75
76 RealtimeSince RealtimeSupport() const override;
77
78 // Effect implementation
79
80 std::unique_ptr<EffectEditor> MakeEditor(
81 ShuttleGui & S, EffectInstance &instance,
82 EffectSettingsAccess &access, const EffectOutputs *pOutputs)
83 const override;
84
85 struct Editor;
86
87 struct Instance;
88
89 std::shared_ptr<EffectInstance> MakeInstance() const override;
90
91private:
92 // EffectReverb implementation
93
94
95private:
96
97 const EffectParameterMethods& Parameters() const override;
98
101
104
107
110
113
116
119
122
125
127 EffectReverbSettings::wetOnlyDefault, false, true, 1 };
128};
129
130#endif
EffectType
std::optional< std::unique_ptr< EffectSettingsAccess::Message > > OptionalMessage
std::vector< RegistryPath > RegistryPaths
Definition: Identifier.h:219
#define S(N)
Definition: ToChars.cpp:64
static Settings & settings()
Definition: TrackInfo.cpp:51
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
RealtimeSince
In which versions of Audacity was an effect realtime capable?
Performs effect computation.
Hold values to send to effect output meters.
Interface for manipulations of an Effect's settings.
A reverberation effect.
Definition: Reverb.h:54
const EffectParameterMethods & Parameters() const override
Definition: Reverb.cpp:32
RealtimeSince RealtimeSupport() const override
Since which version of Audacity has the effect supported realtime?
Definition: Reverb.cpp:355
virtual ~EffectReverb()
Definition: Reverb.cpp:327
OptionalMessage LoadFactoryPreset(int id, EffectSettings &settings) const override
Definition: Reverb.cpp:499
EffectType GetType() const override
Type determines how it behaves.
Definition: Reverb.cpp:350
static constexpr EffectParameter ToneLow
Definition: Reverb.h:111
static constexpr EffectParameter PreDelay
Definition: Reverb.h:102
std::unique_ptr< EffectEditor > MakeEditor(ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) const override
Called only from PopulateUI, to add controls to effect panel.
Definition: Reverb.cpp:512
static constexpr EffectParameter RoomSize
Definition: Reverb.h:99
ComponentInterfaceSymbol GetSymbol() const override
Definition: Reverb.cpp:333
static constexpr EffectParameter StereoWidth
Definition: Reverb.h:123
static const ComponentInterfaceSymbol Symbol
Definition: Reverb.h:58
static constexpr EffectParameter Reverberance
Definition: Reverb.h:105
static constexpr EffectParameter WetGain
Definition: Reverb.h:117
static constexpr EffectParameter HfDamping
Definition: Reverb.h:108
static constexpr EffectParameter ToneHigh
Definition: Reverb.h:114
static constexpr EffectParameter WetOnly
Definition: Reverb.h:126
TranslatableString GetDescription() const override
Definition: Reverb.cpp:338
ManualPageID ManualPage() const override
Name of a page in the Audacity alpha manual, default is empty.
Definition: Reverb.cpp:343
static constexpr EffectParameter DryGain
Definition: Reverb.h:120
std::shared_ptr< EffectInstance > MakeInstance() const override
Make an object maintaining short-term state of an Effect.
Definition: Reverb.cpp:316
RegistryPaths GetFactoryPresets() const override
Report names of factory presets.
Definition: Reverb.cpp:485
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
Definition: ShuttleGui.h:640
Holds a msgid for the translation catalog; may also bind format arguments.
static constexpr double preDelayDefault
Definition: Reverb.h:24
static constexpr bool wetOnlyDefault
Definition: Reverb.h:32
static constexpr double hfDampingDefault
Definition: Reverb.h:26
friend bool operator==(const EffectReverbSettings &a, const EffectReverbSettings &b)
Definition: Reverb.cpp:632
static constexpr double roomSizeDefault
Definition: Reverb.h:23
static constexpr double toneLowDefault
Definition: Reverb.h:27
double mStereoWidth
Definition: Reverb.h:42
double mReverberance
Definition: Reverb.h:36
double mHfDamping
Definition: Reverb.h:37
static constexpr double reverberanceDefault
Definition: Reverb.h:25
double mRoomSize
Definition: Reverb.h:34
static constexpr double wetGainDefault
Definition: Reverb.h:29
double mPreDelay
Definition: Reverb.h:35
friend bool OnlySimpleParametersChanged(const EffectReverbSettings &a, const EffectReverbSettings &b)
Definition: Reverb.cpp:647
static constexpr double dryGainDefault
Definition: Reverb.h:30
static constexpr double toneHighDefault
Definition: Reverb.h:28
double mToneHigh
Definition: Reverb.h:39
static constexpr double stereoWidthDefault
Definition: Reverb.h:31
Externalized state of a plug-in.