Audio FX
 
Loading...
Searching...
No Matches
utils.h
1#ifndef UTILS_H
2#define UTILS_H
3
4#include <vector>
5#include <cmath>
6#include "fft.h"
7#include "params.h"
8
9using namespace std;
10
11
17class Utils
18{
19public:
25 static void applyWindow(vector<double> &v);
26
27
33 static vector<double> generateWindow(int s);
34
35
41 static double sinc(double x);
42
48 static void normalize(vector<vector<double>> &v);
49
50
56 static void normalize(vector<double> &v);
63 static void gain(vector<vector<double>> &v, double g);
64
71 static void convolve(vector<double>& v1, const vector<double>& v2);
72
78 static int nextPowerOfTwo(int n);
79
80
87 static vector<complex<double>> scaleComplex(const vector<complex<double>>& v, double k);
88
95 static vector<complex<double>> addComplex(const vector<complex<double>>& u, const vector<complex<double>>& v);
96
97
98};
99
100#endif
helper functions
Definition utils.h:18
static double sinc(double x)
sinc(x) = sin(pi * x) / (pi * x)
static void normalize(vector< vector< double > > &v)
Apply normalization factor, result is stored in v.
static void gain(vector< vector< double > > &v, double g)
Apply gain to vector, result is stored in v.
static vector< double > generateWindow(int s)
Generate hamming window of size s.
static vector< complex< double > > scaleComplex(const vector< complex< double > > &v, double k)
Perform scalar multiplication on each complex value.
static void normalize(vector< double > &v)
Apply normalization factor, result is stored in v.
static vector< complex< double > > addComplex(const vector< complex< double > > &u, const vector< complex< double > > &v)
Perform element wise addition on complex numbers This method assumes u.size() == v....
static void applyWindow(vector< double > &v)
Apply hamming window to v.
static int nextPowerOfTwo(int n)
Get the next power of 2 that is >= n.
static void convolve(vector< double > &v1, const vector< double > &v2)
Convolve v1 and v2 using FFT. Result is stored in v1.