Skip to content

Class daisy::AnalogControl

ClassList > daisy > AnalogControl

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

  • #include <ctrl.h>

Public Functions

Type Name
AnalogControl ()
float GetRawFloat ()
uint16_t GetRawValue ()
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 ()
void SetCoeff (float val)
void SetOffset (const float offset)
void SetSampleRate (float sample_rate)
void SetScale (const float scale)
float Value () const
~AnalogControl ()

Detailed Description

Author:

Stephen Hensley

Date:

November 2019

Public Functions Documentation

function AnalogControl

inline daisy::AnalogControl::AnalogControl () 

Constructor


function GetRawFloat

inline float daisy::AnalogControl::GetRawFloat () 

Returns a normalized float value representing the current ADC value.


function GetRawValue

inline uint16_t daisy::AnalogControl::GetRawValue () 

Returns the raw unsigned 16-bit value from the ADC


function Init

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

Initializes the control

Parameters:

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

function 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

Parameters:

  • *adcptr Pointer to analog digital converter
  • sr Audio engine sample rate

function 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


function SetCoeff

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

Directly set the Coefficient of the one pole smoothing filter.

Parameters:

  • val Value to set coefficient to. Max of 1, min of 0.

function SetOffset

inline void daisy::AnalogControl::SetOffset (
    const  float offset
) 

Directly set the offset used by the process function Normally this will be set during initialization, but the can be used when calibartion data is used to adjust the control.


function SetSampleRate

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

Set a new sample rate after the ctrl has been initialized

Parameters:

  • sample_rate New update rate for the switch in hz

function SetScale

inline void daisy::AnalogControl::SetScale (
    const  float scale
) 

Directly set the scaling factor used by the process function Normally this will be set during initialization, but the can be used when calibartion data is used to adjust the control.


function Value

inline float daisy::AnalogControl::Value () const

Returns the current stored value, without reprocessing


function ~AnalogControl

inline daisy::AnalogControl::~AnalogControl () 

destructor



The documentation for this class was generated from the following file external-docs/libDaisy/src/hid/ctrl.h