2023-03-28 12:44:46 +00:00
|
|
|
#pragma once
|
|
|
|
#include "../shape/Vector2.h"
|
|
|
|
#include <JuceHeader.h>
|
|
|
|
|
2023-07-11 12:32:52 +00:00
|
|
|
struct EffectDetails {
|
|
|
|
juce::String name;
|
|
|
|
juce::String id;
|
2023-07-16 19:54:41 +00:00
|
|
|
double value = 0.0;
|
|
|
|
double min = 0.0;
|
|
|
|
double max = 1.0;
|
|
|
|
double step = 0.001;
|
|
|
|
bool smoothValueChange = true;
|
2023-07-11 12:32:52 +00:00
|
|
|
};
|
|
|
|
|
2023-03-28 12:44:46 +00:00
|
|
|
class EffectApplication {
|
|
|
|
public:
|
|
|
|
EffectApplication() {};
|
|
|
|
|
2023-07-14 14:34:24 +00:00
|
|
|
virtual Vector2 apply(int index, Vector2 input, const std::vector<double>& values, double sampleRate) = 0;
|
2023-03-28 13:33:56 +00:00
|
|
|
|
|
|
|
void resetPhase();
|
|
|
|
double nextPhase(double frequency, double sampleRate);
|
|
|
|
private:
|
|
|
|
double phase = 0.0;
|
2023-03-28 12:44:46 +00:00
|
|
|
};
|