Krotos Modules 3
Loading...
Searching...
No Matches
krotos::KwidgetProcessor_XyPad Class Reference

#include <KwidgetProcessor_XyPad.h>

Inheritance diagram for krotos::KwidgetProcessor_XyPad:
krotos::KwidgetProcessor

Public Types

enum  CurveMode { Linear , Exponential }
 
using Parameters = Kwidget_XyPad::Parameters
 

Public Member Functions

 KwidgetProcessor_XyPad (Kwidget &owner)
 
void prepare (double sampleRate, int samplesPerBlock) override
 
void process (AudioBuffer< float > &buffer) override
 
- Public Member Functions inherited from krotos::KwidgetProcessor
 KwidgetProcessor (Kwidget &owner)
 
 ~KwidgetProcessor () override=default
 
void prepareToPlay (double, int) override final
 
void processBlock (AudioBuffer< float > &buffer, MidiBuffer &) override final
 
virtual void noteOn (int midiNoteNumber, float velocity, int voiceIndex=-1)
 
virtual void noteOff (float velocity)
 
virtual bool isActive ()
 
virtual void noteCleared ()
 
std::shared_ptr< KAttachmentgetAttachment (const String &paramID)
 
int getNumModulators () const
 
ModulatorgetModulator (int index)
 
const String & getKwidgetType () const
 
const String & getKwidgetID () const
 
void updateAttachments ()
 

Static Public Member Functions

static float mapToCurve (const float *incomingValue, const float depth)
 
static float mapToLine (const float *incomingValue, const float depth)
 
static float mapToDistanceTL (const float *incomingValues, const float depth)
 
static float mapToDistanceTR (const float *incomingValues, const float depth)
 
static float mapToDistanceBL (const float *incomingValues, const float depth)
 
static float mapToDistanceBR (const float *incomingValues, const float depth)
 
static float mapToDistance (const float *incomingValues, const float depth, const Point< float > corner)
 
static float constPower (float val)
 
static float mapToDistDecreasing (const float *incomingValues, const float depth)
 
static float mapToDistBranched (const float *incomingValues, const float depth)
 
static float mapToDistIncreasing (const float *incomingValues, const float depth)
 
static float attenuationCurve (float val)
 
static float increaseCurve (float val)
 
static float distanceYTop (const float *incomingValues)
 
static float mapToRadiusDecreasing (const float *incomingValues, const float depth)
 
static float mapToRadiusIncreasing (const float *incomingValues, const float depth)
 

Private Types

enum  ModulatorIndex { posX = 0 , posY = 1 , posX2 = 2 , posY2 = 3 }
 

Private Attributes

OwnedArray< KParameter::AudioListenerObjectm_listenerObjects
 
std::vector< float > m_paramValues
 
CurveMode m_mode
 
int m_indexOfVelocityModulator {0}
 
AudioBuffer< float > m_buffer
 
double m_sampleRate {0.0}
 
int m_samplesPerBlock {0}
 
MouseVelocityExtractor m_puckX
 
MouseVelocityExtractor m_puckY
 

Static Private Attributes

static const Point< float > m_topLeft {0.f, 1.f}
 
static const Point< float > m_topRight {1.f, 1.f}
 
static const Point< float > m_bottomLeft {0.f, 0.f}
 
static const Point< float > m_bottomRight {1.f, 0.f}
 
static const Point< float > m_centre {0.5f, 0.5f}
 
static const float m_topYCoordinate {1.f}
 
static constexpr float m_radius = 0.833f
 
static constexpr float m_cntrDiag = 0.707107f
 

Additional Inherited Members

- Protected Member Functions inherited from krotos::KwidgetProcessor
void nextBlock (int numSamples)
 
void nextSample ()
 
void addModulator (bool useAudioRate)
 
void addParameterAttachments (std::vector< AttachmentInfo >)
 
void addParameterCallback (const String &paramID, std::function< void(float)> callback)
 
KwidgetgetOwner () const
 

Member Typedef Documentation

◆ Parameters

Member Enumeration Documentation

◆ CurveMode

Enumeration to determine the curvature of the mappingFunction in the Peak case.

Enumerator
Linear 
Exponential 

◆ ModulatorIndex

Enumeration used to stylise modulators-fetch in the case of the peakXY.

Enumerator
posX 
posY 
posX2 
posY2 

Constructor & Destructor Documentation

◆ KwidgetProcessor_XyPad()

krotos::KwidgetProcessor_XyPad::KwidgetProcessor_XyPad ( Kwidget & owner)

Member Function Documentation

◆ attenuationCurve()

float krotos::KwidgetProcessor_XyPad::attenuationCurve ( float val)
static

◆ constPower()

float krotos::KwidgetProcessor_XyPad::constPower ( float val)
static

◆ distanceYTop()

float krotos::KwidgetProcessor_XyPad::distanceYTop ( const float * incomingValues)
static

◆ increaseCurve()

float krotos::KwidgetProcessor_XyPad::increaseCurve ( float val)
static

◆ mapToCurve()

float krotos::KwidgetProcessor_XyPad::mapToCurve ( const float * incomingValue,
const float depth )
static

Maps incoming parameterValue to a curve.

◆ mapToDistance()

float krotos::KwidgetProcessor_XyPad::mapToDistance ( const float * incomingValues,
const float depth,
const Point< float > corner )
static

◆ mapToDistanceBL()

float krotos::KwidgetProcessor_XyPad::mapToDistanceBL ( const float * incomingValues,
const float depth )
static

◆ mapToDistanceBR()

float krotos::KwidgetProcessor_XyPad::mapToDistanceBR ( const float * incomingValues,
const float depth )
static

◆ mapToDistanceTL()

float krotos::KwidgetProcessor_XyPad::mapToDistanceTL ( const float * incomingValues,
const float depth )
static

These functions are mapping incoming parameterValues to modulation values depending on the distance from the corners of the XyButton. TL = topLeft, BR = bottom Right etc..

◆ mapToDistanceTR()

float krotos::KwidgetProcessor_XyPad::mapToDistanceTR ( const float * incomingValues,
const float depth )
static

◆ mapToDistBranched()

float krotos::KwidgetProcessor_XyPad::mapToDistBranched ( const float * incomingValues,
const float depth )
static

◆ mapToDistDecreasing()

float krotos::KwidgetProcessor_XyPad::mapToDistDecreasing ( const float * incomingValues,
const float depth )
static

◆ mapToDistIncreasing()

float krotos::KwidgetProcessor_XyPad::mapToDistIncreasing ( const float * incomingValues,
const float depth )
static

◆ mapToLine()

float krotos::KwidgetProcessor_XyPad::mapToLine ( const float * incomingValue,
const float depth )
static

Maps incoming parameterValue to a straight line.

◆ mapToRadiusDecreasing()

float krotos::KwidgetProcessor_XyPad::mapToRadiusDecreasing ( const float * incomingValues,
const float depth )
static

◆ mapToRadiusIncreasing()

float krotos::KwidgetProcessor_XyPad::mapToRadiusIncreasing ( const float * incomingValues,
const float depth )
static

◆ prepare()

void krotos::KwidgetProcessor_XyPad::prepare ( double sampleRate,
int samplesPerBlock )
overridevirtual

Override this method to inform your processor of the sample rate and maximum block size.

Implements krotos::KwidgetProcessor.

◆ process()

void krotos::KwidgetProcessor_XyPad::process ( AudioBuffer< float > & buffer)
overridevirtual

Override this method to process a buffer of audio.

Implements krotos::KwidgetProcessor.

Member Data Documentation

◆ m_bottomLeft

const Point< float > krotos::KwidgetProcessor_XyPad::m_bottomLeft {0.f, 0.f}
staticprivate

◆ m_bottomRight

const Point< float > krotos::KwidgetProcessor_XyPad::m_bottomRight {1.f, 0.f}
staticprivate

◆ m_buffer

AudioBuffer<float> krotos::KwidgetProcessor_XyPad::m_buffer
private

◆ m_centre

const Point< float > krotos::KwidgetProcessor_XyPad::m_centre {0.5f, 0.5f}
staticprivate

◆ m_cntrDiag

float krotos::KwidgetProcessor_XyPad::m_cntrDiag = 0.707107f
staticconstexprprivate

◆ m_indexOfVelocityModulator

int krotos::KwidgetProcessor_XyPad::m_indexOfVelocityModulator {0}
private

◆ m_listenerObjects

OwnedArray<KParameter::AudioListenerObject> krotos::KwidgetProcessor_XyPad::m_listenerObjects
private

◆ m_mode

CurveMode krotos::KwidgetProcessor_XyPad::m_mode
private

◆ m_paramValues

std::vector<float> krotos::KwidgetProcessor_XyPad::m_paramValues
private

◆ m_puckX

MouseVelocityExtractor krotos::KwidgetProcessor_XyPad::m_puckX
private

◆ m_puckY

MouseVelocityExtractor krotos::KwidgetProcessor_XyPad::m_puckY
private

◆ m_radius

float krotos::KwidgetProcessor_XyPad::m_radius = 0.833f
staticconstexprprivate

◆ m_sampleRate

double krotos::KwidgetProcessor_XyPad::m_sampleRate {0.0}
private

◆ m_samplesPerBlock

int krotos::KwidgetProcessor_XyPad::m_samplesPerBlock {0}
private

◆ m_topLeft

const Point< float > krotos::KwidgetProcessor_XyPad::m_topLeft {0.f, 1.f}
staticprivate

◆ m_topRight

const Point< float > krotos::KwidgetProcessor_XyPad::m_topRight {1.f, 1.f}
staticprivate

◆ m_topYCoordinate

const float krotos::KwidgetProcessor_XyPad::m_topYCoordinate {1.f}
staticprivate

The documentation for this class was generated from the following files: