Krotos Modules 3
Loading...
Searching...
No Matches
TimeDomainAnalysisFramework.h
Go to the documentation of this file.
1//=====================================================================================
7//=====================================================================================
8
9#pragma once
10
11#include <vector>
12#include <cmath>
13
14//=====================================================================================
15namespace krotos
16{
18 {
19 public:
20 //=====================================================================================
26 TimeDomainAnalysisFramework(int analysisFrameSize, int sampleRate);
27
28 //=====================================================================================
29 // Mutators
30
34 void setSamplingFrequency(int fs);
35
36 // void setSignalFrameTimeDomain(vector<float> signalFrame);
37
42 void setSignalEnvelopeSmoothingFactor(float smoothingFactor);
43
44 //=====================================================================================
45 // Accessors
46
49
50 //=====================================================================================
51 // Audio frame processing
52
56 void setSignalFrame(std::vector<float> spectralFrame);
57
58 //=====================================================================================
59 // Energy based methods
60
62 float getPeakEnergy();
63
65 float getPitchMcLeod();
66
70
72 float getRMS();
73
75 float getSignalEnvelope();
76
78 float getEnergyDifference();
79
80 private:
84
86
88
89 std::vector<float> m_signalFrame;
90
93
97
99
102
103 float m_pitchMcLeod{0.0f};
105 };
106} // namespace krotos
Definition Autocorrelation.h:16
Definition LowpassFilter.h:18
An implementation of the 'McLeod Pitch Method': http://miracle.otago.ac.nz/tartini/papers/A_Smarter_W...
Definition McLeod.h:24
Definition TimeDomainAnalysisFramework.h:18
LowpassFilter m_lowpassFilter
Definition TimeDomainAnalysisFramework.h:98
int m_samplingFrequency
Definition TimeDomainAnalysisFramework.h:85
bool m_rmsCalculated
Definition TimeDomainAnalysisFramework.h:91
void setSignalEnvelopeSmoothingFactor(float smoothingFactor)
Definition TimeDomainAnalysisFramework.cpp:111
float m_energyDifferenceValue
Definition TimeDomainAnalysisFramework.h:95
float getPeakEnergy()
Definition TimeDomainAnalysisFramework.cpp:61
Autocorrelation m_pitchTrackerAutocorrelation
Definition TimeDomainAnalysisFramework.h:101
float getSignalEnvelope()
Definition TimeDomainAnalysisFramework.cpp:124
float m_pitchMcLeod
Definition TimeDomainAnalysisFramework.h:103
float getRMS()
Definition TimeDomainAnalysisFramework.cpp:85
TimeDomainAnalysisFramework(int analysisFrameSize, int sampleRate)
Definition TimeDomainAnalysisFramework.cpp:13
float m_pitchAutocorrelation
Definition TimeDomainAnalysisFramework.h:104
bool m_energyDifferenceCalculated
Definition TimeDomainAnalysisFramework.h:94
float m_previousEnergyDifferenceValue
Definition TimeDomainAnalysisFramework.h:96
float getPitchMcLeod()
Definition TimeDomainAnalysisFramework.cpp:79
std::vector< float > m_signalFrame
Definition TimeDomainAnalysisFramework.h:89
float getEnergyDifference()
Definition TimeDomainAnalysisFramework.cpp:132
float m_rmsValue
Definition TimeDomainAnalysisFramework.h:92
int getSamplingFrequency()
Definition TimeDomainAnalysisFramework.cpp:33
void setSamplingFrequency(int fs)
Definition TimeDomainAnalysisFramework.cpp:23
void setSignalFrame(std::vector< float > spectralFrame)
Definition TimeDomainAnalysisFramework.cpp:40
void initialisePitchTrackingAlgorithms()
Definition TimeDomainAnalysisFramework.cpp:26
int m_signalFrameSize
Definition TimeDomainAnalysisFramework.h:87
float getPitchAutocorrelation()
Definition TimeDomainAnalysisFramework.cpp:82
McLeod m_pitchTrackerMcLeod
Definition TimeDomainAnalysisFramework.h:100
Definition AirAbsorptionFilter.cpp:2