Krotos Modules 3
Loading...
Searching...
No Matches
KwidgetProcessor_XyPad.h
Go to the documentation of this file.
1namespace krotos
2{
4 {
5 public:
7
14
16
17 void prepare(double sampleRate, int samplesPerBlock) override;
18 // Not used
19 void process(AudioBuffer<float>& buffer) override;
20
21 // Peak XY
23 static float mapToCurve(const float* incomingValue, const float depth);
25 static float mapToLine(const float* incomingValue, const float depth);
26
29 // 4 Zone XY
30 static float mapToDistanceTL(const float* incomingValues, const float depth);
31 static float mapToDistanceTR(const float* incomingValues, const float depth);
32 static float mapToDistanceBL(const float* incomingValues, const float depth);
33 static float mapToDistanceBR(const float* incomingValues, const float depth);
34 static float mapToDistance(const float* incomingValues, const float depth, const Point<float> corner);
35 static float constPower(float val);
36 // Distance XY
37 static float mapToDistDecreasing(const float* incomingValues, const float depth);
38 static float mapToDistBranched(const float* incomingValues, const float depth);
39 static float mapToDistIncreasing(const float* incomingValues, const float depth);
40 static float attenuationCurve(float val);
41 static float increaseCurve(float val);
42 static float distanceYTop(const float* incomingValues); // calculate distance from top in Y
43 // Polar XY
44 static float mapToRadiusDecreasing(const float* incomingValues, const float depth);
45 static float mapToRadiusIncreasing(const float* incomingValues, const float depth);
46
47 private:
50 {
51 posX = 0,
52 posY = 1,
53 posX2 = 2,
54 posY2 = 3
55 };
56
57 static const Point<float> m_topLeft;
58 static const Point<float> m_topRight;
59 static const Point<float> m_bottomLeft;
60 static const Point<float> m_bottomRight;
61 static const Point<float> m_centre;
62 static const float m_topYCoordinate;
63
64 // position 0 corresponds to posX, position 1 corresponds to posY
65 OwnedArray<KParameter::AudioListenerObject> m_listenerObjects;
66 std::vector<float> m_paramValues;
67
68 // normalised Value of Radius - 4Zone
69 static constexpr float m_radius = 0.833f;
70 static constexpr float m_cntrDiag = 0.707107f;
72
74 AudioBuffer<float> m_buffer;
75 double m_sampleRate{0.0};
77
80
81 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(KwidgetProcessor_XyPad)
82 };
83} // namespace krotos
Definition Kwidget.h:8
Definition KwidgetProcessor_XyPad.h:4
static float mapToDistDecreasing(const float *incomingValues, const float depth)
Definition KwidgetProcessor_XyPad.cpp:357
static float mapToRadiusDecreasing(const float *incomingValues, const float depth)
Definition KwidgetProcessor_XyPad.cpp:412
static float mapToDistanceTR(const float *incomingValues, const float depth)
Definition KwidgetProcessor_XyPad.cpp:342
int m_indexOfVelocityModulator
Definition KwidgetProcessor_XyPad.h:73
void prepare(double sampleRate, int samplesPerBlock) override
Definition KwidgetProcessor_XyPad.cpp:227
static float mapToLine(const float *incomingValue, const float depth)
Definition KwidgetProcessor_XyPad.cpp:277
static float mapToDistIncreasing(const float *incomingValues, const float depth)
Definition KwidgetProcessor_XyPad.cpp:395
static float attenuationCurve(float val)
Definition KwidgetProcessor_XyPad.cpp:313
CurveMode
Definition KwidgetProcessor_XyPad.h:10
@ Exponential
Definition KwidgetProcessor_XyPad.h:12
@ Linear
Definition KwidgetProcessor_XyPad.h:11
static float mapToDistance(const float *incomingValues, const float depth, const Point< float > corner)
Definition KwidgetProcessor_XyPad.cpp:324
static const Point< float > m_bottomLeft
Definition KwidgetProcessor_XyPad.h:59
std::vector< float > m_paramValues
Definition KwidgetProcessor_XyPad.h:66
static float mapToDistanceBR(const float *incomingValues, const float depth)
Definition KwidgetProcessor_XyPad.cpp:352
static float distanceYTop(const float *incomingValues)
Definition KwidgetProcessor_XyPad.cpp:317
CurveMode m_mode
Definition KwidgetProcessor_XyPad.h:71
static float increaseCurve(float val)
Definition KwidgetProcessor_XyPad.cpp:315
static const Point< float > m_centre
Definition KwidgetProcessor_XyPad.h:61
ModulatorIndex
Definition KwidgetProcessor_XyPad.h:50
@ posY
Definition KwidgetProcessor_XyPad.h:52
@ posY2
Definition KwidgetProcessor_XyPad.h:54
@ posX
Definition KwidgetProcessor_XyPad.h:51
@ posX2
Definition KwidgetProcessor_XyPad.h:53
static const Point< float > m_bottomRight
Definition KwidgetProcessor_XyPad.h:60
void process(AudioBuffer< float > &buffer) override
Definition KwidgetProcessor_XyPad.cpp:248
OwnedArray< KParameter::AudioListenerObject > m_listenerObjects
Definition KwidgetProcessor_XyPad.h:65
MouseVelocityExtractor m_puckY
Definition KwidgetProcessor_XyPad.h:79
static float mapToDistanceBL(const float *incomingValues, const float depth)
Definition KwidgetProcessor_XyPad.cpp:347
static float constPower(float val)
Definition KwidgetProcessor_XyPad.cpp:307
static constexpr float m_radius
Definition KwidgetProcessor_XyPad.h:69
static float mapToDistBranched(const float *incomingValues, const float depth)
Definition KwidgetProcessor_XyPad.cpp:372
static const Point< float > m_topRight
Definition KwidgetProcessor_XyPad.h:58
static float mapToCurve(const float *incomingValue, const float depth)
Definition KwidgetProcessor_XyPad.cpp:265
static const Point< float > m_topLeft
Definition KwidgetProcessor_XyPad.h:57
static float mapToDistanceTL(const float *incomingValues, const float depth)
Definition KwidgetProcessor_XyPad.cpp:337
double m_sampleRate
Definition KwidgetProcessor_XyPad.h:75
static constexpr float m_cntrDiag
Definition KwidgetProcessor_XyPad.h:70
static float mapToRadiusIncreasing(const float *incomingValues, const float depth)
Definition KwidgetProcessor_XyPad.cpp:424
KwidgetProcessor_XyPad(Kwidget &owner)
Definition KwidgetProcessor_XyPad.cpp:3
static const float m_topYCoordinate
Definition KwidgetProcessor_XyPad.h:62
int m_samplesPerBlock
Definition KwidgetProcessor_XyPad.h:76
MouseVelocityExtractor m_puckX
Definition KwidgetProcessor_XyPad.h:78
AudioBuffer< float > m_buffer
Definition KwidgetProcessor_XyPad.h:74
An interface for an audio processor designed for modular use.
Definition KwidgetProcessor.h:8
A class specifically designed to extract some kind of useable velocity value from parameters whose va...
Definition OscillatorUtils.h:220
Definition AirAbsorptionFilter.cpp:2
Definition Kwidget_XyPad.h:32