Audacity 3.2.0
Paulstretch.h
Go to the documentation of this file.
1/**********************************************************************
2
3 Audacity: A Digital Audio Editor
4 Paulstretch.h
5
6 Nasca Octavian Paul (Paul Nasca)
7
8 **********************************************************************/
9
10#ifndef __AUDACITY_EFFECT_PAULSTRETCH__
11#define __AUDACITY_EFFECT_PAULSTRETCH__
12
13#include "StatefulEffect.h"
14#include "ShuttleAutomation.h"
15#include <float.h> // for FLT_MAX
16#include <wx/weakref.h>
17
18class ShuttleGui;
19class WaveChannel;
20
22{
23public:
24 static inline EffectPaulstretch *
27
29 virtual ~EffectPaulstretch();
30
31 // ComponentInterface implementation
32
33 ComponentInterfaceSymbol GetSymbol() const override;
34 TranslatableString GetDescription() const override;
35 ManualPageID ManualPage() const override;
36
37 // EffectDefinitionInterface implementation
38
39 EffectType GetType() const override;
40
41 // Effect implementation
42
44 const EffectSettings &settings, double previewLength) const override;
45 bool Process(EffectInstance &instance, EffectSettings &settings) override;
46 std::unique_ptr<EffectEditor> PopulateOrExchange(
47 ShuttleGui & S, EffectInstance &instance,
48 EffectSettingsAccess &access, const EffectOutputs *pOutputs) override;
49 bool TransferDataToWindow(const EffectSettings &settings) override;
51
52private:
53 // EffectPaulstretch implementation
54
55 void OnText(wxCommandEvent & evt);
56 size_t GetBufferSize(double rate) const;
57
58 bool ProcessOne(const WaveChannel &track, WaveChannel &outputTrack,
59 double t0, double t1, int count);
60
61 wxWeakRef<wxWindow> mUIParent;
62
63 float mAmount;
64 float mTime_resolution; //seconds
65
66 const EffectParameterMethods& Parameters() const override;
67 DECLARE_EVENT_TABLE()
68
70 L"Stretch Factor", 10.0f, 1.0, FLT_MAX, 1 };
72 L"Time Resolution", 0.25f, 0.00099f, FLT_MAX, 1 };
73};
74
75#endif
76
EffectType
#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.
Hold values to send to effect output meters.
Interface for manipulations of an Effect's settings.
An Extreme Time Stretch and Time Smear effect.
Definition: Paulstretch.h:22
bool TransferDataToWindow(const EffectSettings &settings) override
static constexpr EffectParameter Time
Definition: Paulstretch.h:71
float mTime_resolution
Definition: Paulstretch.h:64
const EffectParameterMethods & Parameters() const override
Definition: Paulstretch.cpp:37
static EffectPaulstretch * FetchParameters(EffectPaulstretch &e, EffectSettings &)
Definition: Paulstretch.h:25
virtual ~EffectPaulstretch()
bool ProcessOne(const WaveChannel &track, WaveChannel &outputTrack, double t0, double t1, int count)
bool TransferDataFromWindow(EffectSettings &settings) override
static const ComponentInterfaceSymbol Symbol
Definition: Paulstretch.h:26
TranslatableString GetDescription() const override
ManualPageID ManualPage() const override
Name of a page in the Audacity alpha manual, default is empty.
double CalcPreviewInputLength(const EffectSettings &settings, double previewLength) const override
EffectType GetType() const override
Type determines how it behaves.
wxWeakRef< wxWindow > mUIParent
Definition: Paulstretch.h:61
std::unique_ptr< EffectEditor > PopulateOrExchange(ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) override
Add controls to effect panel; always succeeds.
void OnText(wxCommandEvent &evt)
bool Process(EffectInstance &instance, EffectSettings &settings) override
size_t GetBufferSize(double rate) const
ComponentInterfaceSymbol GetSymbol() const override
static constexpr EffectParameter Amount
Definition: Paulstretch.h:69
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.
Externalized state of a plug-in.