Hardware Library for Daisy
daisy::AnalogControl Class Reference

Hardware Interface for control inputs
Primarily designed for ADC input controls such as
potentiometers, and control voltage.
. More...

Detailed Description

Hardware Interface for control inputs
Primarily designed for ADC input controls such as
potentiometers, and control voltage.

Stephen Hensley
November 2019

#include <ctrl.h>

Public Member Functions

 AnalogControl ()
 ~AnalogControl ()
void Init (uint16_t *adcptr, float sr, bool flip=false, bool invert=false, float slew_seconds=0.002f)
void InitBipolarCv (uint16_t *adcptr, float sr)
float Process ()
float Value () const
void SetCoeff (float val)
uint16_t GetRawValue ()
float GetRawFloat ()
void SetSampleRate (float sample_rate)

Constructor & Destructor Documentation

◆ AnalogControl()

daisy::AnalogControl::AnalogControl ( )


◆ ~AnalogControl()

daisy::AnalogControl::~AnalogControl ( )


Member Function Documentation

◆ GetRawFloat()

float daisy::AnalogControl::GetRawFloat ( )

Returns a normalized float value representing the current ADC value.

◆ GetRawValue()

uint16_t daisy::AnalogControl::GetRawValue ( )

Returns the raw unsigned 16-bit value from the ADC

◆ Init()

void daisy::AnalogControl::Init ( uint16_t *  adcptr,
float  sr,
bool  flip = false,
bool  invert = false,
float  slew_seconds = 0.002f 

Initializes the control

*adcptris a pointer to the raw adc read value – This can be acquired with dsy_adc_get_rawptr(), or dsy_adc_get_mux_rawptr()
sris the samplerate in Hz that the Process function will be called at.
flipdetermines whether the input is flipped (i.e. 1.f - input) or not before being processed.1
invertdetermines whether the input is inverted (i.e. -1.f * input) or note before being processed.
slew_secondsis the slew time in seconds that it takes for the control to change to a new value.

◆ InitBipolarCv()

void daisy::AnalogControl::InitBipolarCv ( uint16_t *  adcptr,
float  sr 

This Initializes the AnalogControl for a -5V to 5V inverted input All of the Init details are the same otherwise

*adcptrPointer to analog digital converter
srAudio engine sample rate

◆ Process()

float daisy::AnalogControl::Process ( )

Filters, and transforms a raw ADC read into a normalized range. this should be called at the rate of specified by samplerate at Init time.
Default Initializations will return 0.0 -> 1.0 Bi-polar CV inputs will return -1.0 -> 1.0

◆ SetCoeff()

void daisy::AnalogControl::SetCoeff ( float  val)

Directly set the Coefficient of the one pole smoothing filter.

valValue to set coefficient to. Max of 1, min of 0.

◆ SetSampleRate()

void daisy::AnalogControl::SetSampleRate ( float  sample_rate)

Set a new sample rate after the ctrl has been initialized

sample_rateNew update rate for the switch in hz

◆ Value()

float daisy::AnalogControl::Value ( ) const

Returns the current stored value, without reprocessing

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