Krotos Modules 3
Loading...
Searching...
No Matches
Autocorrelation.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 SpectralAutocorrelation.h
5 Created: 9 Nov 2016 2:48:05pm
6 Author: KrotosMacMini
7
8 ==============================================================================
9*/
10
11#pragma once
12
13namespace krotos
14{
16 {
17 public:
19 Autocorrelation(double newSampleRate, int newBufferSize);
21
22 float getPitch(AudioSampleBuffer buffer);
23 void initialise(double newSampleRate, int newBufferSize);
24
25 private:
26 const int MAX_BUFFER_SIZE{1024};
27 const double PI{3.14159265358979323846};
28 const double TWO_PI{2 * PI};
29 const double LOWER_THRESHOLD{0.01};
30 const float MAX_FREQ{1000};
31 const float MIN_FREQ{20};
32 const double DEFAULT_SAMPLE_RATE{44100};
33
34 void getAutocorrelation(std::vector<float> data);
35 void smoothingFilter(std::vector<float> input, float coefficient);
36
37 float getParabolicInterpolation(int estimation);
38
39 std::vector<float> audioFrame;
40 std::vector<float> autocorrelationBuffer;
41 std::vector<float> smoothedAutocorrelation;
42 std::vector<float> window;
43
44 float pitchEstimate{-1.0f};
45 float tauEstimate{-1.0f};
46
47 int position{-1};
48
50 double sampleRate;
51 };
52} // namespace krotos
Definition Autocorrelation.h:16
~Autocorrelation()
Definition Autocorrelation.cpp:19
const float MIN_FREQ
Definition Autocorrelation.h:31
const double DEFAULT_SAMPLE_RATE
Definition Autocorrelation.h:32
std::vector< float > audioFrame
Definition Autocorrelation.h:39
int position
Definition Autocorrelation.h:47
float pitchEstimate
Definition Autocorrelation.h:44
void getAutocorrelation(std::vector< float > data)
Definition Autocorrelation.cpp:93
int bufferSize
Definition Autocorrelation.h:49
const float MAX_FREQ
Definition Autocorrelation.h:30
float getParabolicInterpolation(int estimation)
Definition Autocorrelation.cpp:117
double sampleRate
Definition Autocorrelation.h:50
void initialise(double newSampleRate, int newBufferSize)
Definition Autocorrelation.cpp:21
std::vector< float > autocorrelationBuffer
Definition Autocorrelation.h:40
const int MAX_BUFFER_SIZE
Definition Autocorrelation.h:26
float tauEstimate
Definition Autocorrelation.h:45
const double LOWER_THRESHOLD
Definition Autocorrelation.h:29
void smoothingFilter(std::vector< float > input, float coefficient)
Definition Autocorrelation.cpp:107
float getPitch(AudioSampleBuffer buffer)
Definition Autocorrelation.cpp:41
std::vector< float > window
Definition Autocorrelation.h:42
const double PI
Definition Autocorrelation.h:27
std::vector< float > smoothedAutocorrelation
Definition Autocorrelation.h:41
Autocorrelation()
Definition Autocorrelation.cpp:12
const double TWO_PI
Definition Autocorrelation.h:28
Definition AirAbsorptionFilter.cpp:2