Aviate Audio Multiverse Library
|
#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"
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. | |
LibBasicFunctions is a collection of helpful functions and classes that make it easier to perform common tasks in Audio applications.