Audio FX
 
Loading...
Searching...
No Matches
AFX Class Reference

Main class to access library functions. More...

#include <fxaudio.h>

Public Member Functions

vector< vector< double > > autotune (const vector< vector< double > > &samples, double intensity, string note, char scale, int sr)
 Pitch correct vocals to the nearest correct note on musical scale (either major 'M' or minor 'm'). This one isn't very high quality I have been struggling with this one ;/.
 
vector< vector< double > > timeStretch (const vector< vector< double > > &samples, double stretchFactor)
 Use phase vocoder to time stretch/compress audio samples.
 
vector< vector< double > > changeTempo (const vector< vector< double > > &samples, double r)
 Perform sinc interpolation to resample audio samples at a different playback rate.
 
vector< vector< double > > convReverb (vector< vector< double > > &samples, const vector< vector< double > > &irSamples)
 Apply convolution based reverb to audio samples based on an impulse response. They can be found in assets/ir.
 
vector< vector< double > > reverse (vector< vector< double > > &samples)
 Reverse audio samples resulting in audio played backwards.
 
vector< vector< double > > pitchShift (vector< vector< double > > &samples, double semitones)
 Shift pitch using a phase vocoder.
 
vector< vector< double > > layer (vector< vector< double > > samples, double semitones, double g)
 take input samples, shift the pitch and scale amplitudes. Layer on top of existing audio
 
EQ createEQ (int sampleRate=44100)
 create a parametric equalizer with 8 Biquad filters
 

Detailed Description

Main class to access library functions.

The AFX class provides audio effects such as autotune, time stretching, convolution reverb, pitch shifting, and equalization.

Member Function Documentation

◆ autotune()

vector< vector< double > > AFX::autotune ( const vector< vector< double > > & samples,
double intensity,
string note,
char scale,
int sr )

Pitch correct vocals to the nearest correct note on musical scale (either major 'M' or minor 'm'). This one isn't very high quality I have been struggling with this one ;/.

Parameters
samples-> audio samples separated by channel
sr-> sample rate
intensity-> Determines how strong to apply the autotune effect
note-> The musical note to use as the root note
scale-> Category of semitones (major or minor)
Returns
Tuned audio samples

◆ changeTempo()

vector< vector< double > > AFX::changeTempo ( const vector< vector< double > > & samples,
double r )
inline

Perform sinc interpolation to resample audio samples at a different playback rate.

Parameters
samples-> audio samples separated by channel
r-> resampling rate
Returns
Modified audio samples

◆ convReverb()

vector< vector< double > > AFX::convReverb ( vector< vector< double > > & samples,
const vector< vector< double > > & irSamples )
inline

Apply convolution based reverb to audio samples based on an impulse response. They can be found in assets/ir.

Parameters
samples-> audio samples separated by channel
room-> room name of impulse response
Returns
Modified audio samples

◆ createEQ()

EQ AFX::createEQ ( int sampleRate = 44100)
inline

create a parametric equalizer with 8 Biquad filters

Parameters
sampleRate-> sample rate of audio samples default is 44.1kHz
Returns
EQ object instance

◆ layer()

vector< vector< double > > AFX::layer ( vector< vector< double > > samples,
double semitones,
double g )

take input samples, shift the pitch and scale amplitudes. Layer on top of existing audio

Parameters
samples-> audio samples separated by channel
semitones-> number of semitones to shift by
g-> gain to apply to layered audio
Returns
Modified audio samples

◆ pitchShift()

vector< vector< double > > AFX::pitchShift ( vector< vector< double > > & samples,
double semitones )

Shift pitch using a phase vocoder.

Parameters
samples-> audio samples separated by channel
semitones-> number of semitones to shift by
Returns
Modified audio samples

◆ reverse()

vector< vector< double > > AFX::reverse ( vector< vector< double > > & samples)

Reverse audio samples resulting in audio played backwards.

Parameters
samples-> audio samples separated by channel
Returns
Modified audio samples

◆ timeStretch()

vector< vector< double > > AFX::timeStretch ( const vector< vector< double > > & samples,
double stretchFactor )
inline

Use phase vocoder to time stretch/compress audio samples.

Parameters
samples-> audio samples separated by channel
stretchFactor-> > 1 will stretch the audio. < 1 will compress the audio
Returns
Stretched/Compressed audio samples

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