Aviate Audio Multiverse Library
Classes | Namespaces | Enumerations | Functions | Variables
LibBasicFunctions.h File Reference
#include <cstddef>
#include <new>
#include <atomic>
#include <cmath>
#include <arm_math.h>
#include "sysPlatform/SysTypes.h"
#include "sysPlatform/AudioStream.h"
#include "Aviate/Aviate.h"
#include "Aviate/AviateTypes.h"
#include "Aviate/ForwardDeclares.h"
Include dependency graph for LibBasicFunctions.h:

Go to the source code of this file.

Classes

struct  Aviate::QueuePosition
 QueuePosition is used for storing the index (in an array of queues) and the offset within an audio_block_t data buffer. More...
 
class  Aviate::AudioDelay
 Audio delays are a very common function in audio processing. More...
 
class  Aviate::IirBiQuadFilter
 IIR BiQuad Filter - Direct Form I
y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2]
Some design tools (like Matlab assume the feedback coefficients 'a' are negated. More...
 
class  Aviate::IirBiQuadFilterHQ
 A High-precision version of IirBiQuadFilter often necessary for complex, multistage filters. More...
 
class  Aviate::IirBiQuadFilterFloat
 A single-precision floating-point biquad using CMSIS-DSP hardware instructions. More...
 
class  Aviate::ParameterAutomation< T >
 The class will automate a parameter using a trigger from a start value to an end value, using either a preprogrammed function or a user-provided LUT. More...
 
class  Aviate::ParameterAutomationSequence< T >
 This class allows you to create a sequence of automations where each stage has it's own configuration of start, end, function values. More...
 
class  Aviate::LowFrequencyOscillatorVector< T >
 The LFO is commonly used on modulation effects where some parameter (delay, volume, etc.) is modulated via waveform at a frequency below 20 Hz. More...
 
class  Aviate::Compressor
 Simple Compressor. More...
 

Namespaces

 Aviate
 The Aviate library/namespace provides the primary API for working with Multiverse.
 

Enumerations

enum class  Aviate::Waveform : unsigned {
  Aviate::SINE , Aviate::TRIANGLE , Aviate::SQUARE , Aviate::SAWTOOTH ,
  Aviate::RANDOM , Aviate::NUM_WAVEFORMS
}
 Supported LFO waveforms. More...
 

Functions

QueuePosition AVIATE_API Aviate::calcQueuePosition (float milliseconds)
 Calculate the exact sample position in an array of audio blocks that corresponds to a particular offset given as time. More...
 
QueuePosition AVIATE_API Aviate::calcQueuePosition (size_t numSamples)
 Calculate the exact sample position in an array of audio blocks that corresponds to a particular offset given as a number of samples. More...
 
size_t AVIATE_API Aviate::calcAudioSamples (float milliseconds)
 Calculate the number of audio samples (rounded up) that correspond to a given length of time. More...
 
float AVIATE_API Aviate::calcAudioTimeMs (size_t numSamples)
 Calculate a length of time in milliseconds from the number of audio samples. More...
 
size_t AVIATE_API Aviate::calcOffset (QueuePosition position)
 Calculate the number of audio samples (usually an offset) from a queue position. More...
 
void AVIATE_API Aviate::clearAudioBlock (audio_block_t *block)
 Clear the contents of an audio block to zero. More...
 
void AVIATE_API Aviate::alphaBlend (audio_block_t *out, audio_block_t *dry, audio_block_t *wet, float mix)
 Perform an alpha blend between to audio blocks. Performs
out = dry*(1-mix) + wet*(mix) More...
 
void AVIATE_API Aviate::gainAdjust (audio_block_t *out, audio_block_t *in, float vol, int coeffShift=0)
 Applies a gain to the audio via fixed-point scaling according to
out = int * (vol * 2^coeffShift) More...
 
void AVIATE_API Aviate::combine (audio_block_t *out, audio_block_t *in0, audio_block_t *in1)
 Combine two audio blocks through vector addition out[n] = in0[n] + in1[n]. More...
 
float AVIATE_API Aviate::calcVolumeExp (float volumeIn)
 Calculate an exponential volume from a linear volume. E.g. convert a linear volume curve to an exponentional one that better matches human loudness perception. More...
 
float AVIATE_API Aviate::convertLinearToLogPow (float inputValue, float midpoint=0.8f)
 Apply a non-linear taper to a normalized control. Input value must be between [0.0, 1.0]. Return value will be between [0.0, 1.0]. Recommend midpoint=0.8f for a pseudo-logarithmic curve (i.e. volume taper) and mdipoint 0.2f for an exponential taper. More...
 
float AVIATE_API Aviate::log2Fast (float input)
 Fast log2() implementation. More...
 
float AVIATE_API Aviate::log10Fast (float input)
 Fast log10() implementation. More...
 
float AVIATE_API Aviate::dbfsFast (int16_t inputAbs)
 Fast convert 16-bit positive audio sample to dbFS value (decibal fullscale) More...
 
float Aviate::dbfsFast (float inputAbs)
 Fast convert positive float value to dbFS value (decibal fullscale) More...
 
uint16_t AVIATE_API Aviate::getPeakAbsIntegerValue (const int16_t *audioDataPtr)
 get the peak absolute value as from an audio block More...
 
template<typename T >
T AVIATE_API Aviate::saturate (T val, T min, T max)
 min/max function More...
 

Variables

const size_t Aviate::AUDIO_BLOCK_SIZE_BYTES
 size of an audio block in bytes
 
constexpr int Aviate::MAX_PARAMETER_SEQUENCES = 32
 Maximum number of automation sequences.
 

Detailed Description

Author
Steve Lascos
Blackaddr Audio

LibBasicFunctions is a collection of helpful functions and classes that make it easier to perform common tasks in Audio applications.