From 4c597cb4f895e35d171a7b8a75d6dd3e6ecc8cac Mon Sep 17 00:00:00 2001 From: Flamefire Date: Sat, 29 Mar 2014 22:54:37 +0100 Subject: [PATCH] Better structure --- PitchTracker/Helper.h | 5 +- PitchTracker/License.txt | 2 - PitchTracker/PitchTracker.vcxproj | 14 +++--- PitchTracker/PitchTracker.vcxproj.filters | 47 +++++++++++-------- PitchTracker/PitchWrapper.cpp | 16 +++---- PitchTracker/PitchWrapper.h | 2 +- PitchTracker/{pitchTracker.cpp => pdaAKF.cpp} | 4 +- PitchTracker/{pitchTracker.h => pdaAKF.h} | 3 +- PitchTracker/performous/License.txt | 3 ++ PitchTracker/{ => performous}/Performous.txt | 0 PitchTracker/{ => performous}/libda/fft.hpp | 0 .../{ => performous}/libda/sample.hpp | 0 PitchTracker/{ => performous}/pitch.cc | 0 PitchTracker/{ => performous}/pitch.hh | 2 +- PitchTracker/{ => performous}/util.hh | 0 15 files changed, 54 insertions(+), 44 deletions(-) delete mode 100644 PitchTracker/License.txt rename PitchTracker/{pitchTracker.cpp => pdaAKF.cpp} (98%) rename PitchTracker/{pitchTracker.h => pdaAKF.h} (74%) create mode 100644 PitchTracker/performous/License.txt rename PitchTracker/{ => performous}/Performous.txt (100%) rename PitchTracker/{ => performous}/libda/fft.hpp (100%) rename PitchTracker/{ => performous}/libda/sample.hpp (100%) rename PitchTracker/{ => performous}/pitch.cc (100%) rename PitchTracker/{ => performous}/pitch.hh (99%) rename PitchTracker/{ => performous}/util.hh (100%) diff --git a/PitchTracker/Helper.h b/PitchTracker/Helper.h index 27c18e8b..ae13e309 100644 --- a/PitchTracker/Helper.h +++ b/PitchTracker/Helper.h @@ -1,5 +1,4 @@ #pragma once -#include "pitch.hh" #include "PitchWrapper.h" #include #include @@ -40,8 +39,8 @@ void freeDoubleArray(double* floats){ free(floats); } -double ToneToNote(const Tone* tone){ - return 12.0 * std::log(tone->freq / 127.09) / std::log(2.0) + 27.5 - 16; // 16 = C2 +double FreqToNote(double freq){ + return 12.0 * std::log(freq / 127.09) / std::log(2.0) + 27.5 - 16; // 16 = C2 } /* diff --git a/PitchTracker/License.txt b/PitchTracker/License.txt deleted file mode 100644 index 0db6541a..00000000 --- a/PitchTracker/License.txt +++ /dev/null @@ -1,2 +0,0 @@ -Some code is taken from Performous: https://github.com/performous/performous/tree/master/game -From 25.03.2014 \ No newline at end of file diff --git a/PitchTracker/PitchTracker.vcxproj b/PitchTracker/PitchTracker.vcxproj index c77885a1..a2053137 100644 --- a/PitchTracker/PitchTracker.vcxproj +++ b/PitchTracker/PitchTracker.vcxproj @@ -168,21 +168,21 @@ - - + + - - - + + + - - + + diff --git a/PitchTracker/PitchTracker.vcxproj.filters b/PitchTracker/PitchTracker.vcxproj.filters index f122cd3f..821a397b 100644 --- a/PitchTracker/PitchTracker.vcxproj.filters +++ b/PitchTracker/PitchTracker.vcxproj.filters @@ -13,47 +13,56 @@ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + {a47c9d33-78d2-453d-bb59-e5724cd85f67} + + + {4c72400a-ff2c-4842-8c20-54deb5df606d} + + + {d71782a0-47fc-4fe1-8569-0a0ce8fe9b45} + - - Quelldateien - - - Quelldateien - Quelldateien Quelldateien + + Quelldateien\performous + + + Quelldateien + - - Headerdateien - - - Headerdateien - Headerdateien - - Headerdateien - Headerdateien Headerdateien + + Headerdateien\performous\libda + + + Headerdateien\performous\libda + + + Headerdateien + - - Headerdateien + + Headerdateien\performous - - Headerdateien + + Headerdateien\performous \ No newline at end of file diff --git a/PitchTracker/PitchWrapper.cpp b/PitchTracker/PitchWrapper.cpp index ffe6bfac..31271e82 100644 --- a/PitchTracker/PitchWrapper.cpp +++ b/PitchTracker/PitchWrapper.cpp @@ -1,13 +1,13 @@ #include "PitchWrapper.h" -#include "pitchTracker.h" +#include "pdaAKF.h" #include "Helper.h" AnalyzerExt::AnalyzerExt(double baseToneFrequency, int minHalfTone, int maxHalfTone, unsigned step): Analyzer(44100., "", step){ - PitchTracker::Init(baseToneFrequency, minHalfTone, maxHalfTone); + PitchTrackerAKF::Init(baseToneFrequency, minHalfTone, maxHalfTone); } AnalyzerExt::~AnalyzerExt(){ - PitchTracker::DeInit(); + PitchTrackerAKF::DeInit(); } int AnalyzerExt::GetNoteFast(double* maxVolume, float* weights){ @@ -17,22 +17,22 @@ int AnalyzerExt::GetNoteFast(double* maxVolume, float* weights){ m_fastAnalysisBuf.pop(size - m_SampleCt); if(!m_fastAnalysisBuf.read(AnaylsisBuf, AnaylsisBuf + m_SampleCt)) return -1; - return PitchTracker::GetTone(AnaylsisBuf, m_SampleCt, maxVolume, weights); + return PitchTrackerAKF::GetTone(AnaylsisBuf, m_SampleCt, maxVolume, weights); } void PtFast_Init(double baseToneFrequency, int minHalfTone, int maxHalfTone){ - PitchTracker::Init(baseToneFrequency, minHalfTone, maxHalfTone); + PitchTrackerAKF::Init(baseToneFrequency, minHalfTone, maxHalfTone); } void PtFast_DeInit(){ - PitchTracker::DeInit(); + PitchTrackerAKF::DeInit(); } int PtFast_GetTone(short* samples, int sampleCt, double* maxVolume, float* weights){ if(sampleCt <= 0) return -1; double* dataDouble = short2DoubleArray(samples, sampleCt, false); - int result = PitchTracker::GetTone(dataDouble, sampleCt, maxVolume, weights, true); + int result = PitchTrackerAKF::GetTone(dataDouble, sampleCt, maxVolume, weights, true); freeDoubleArray(dataDouble); return result; } @@ -84,7 +84,7 @@ double Analyzer_FindNote(AnalyzerExt* analyzer, double minFreq, double maxFreq){ if(!analyzer) return -1; const Tone* tone = analyzer->findTone(minFreq, maxFreq); - return (tone == NULL) ? -1 : ToneToNote(tone); + return (tone == NULL) ? -1 : FreqToNote(tone->freq); } int Analyzer_GetNoteFast(AnalyzerExt* analyzer, double* maxVolume, float* weights){ diff --git a/PitchTracker/PitchWrapper.h b/PitchTracker/PitchWrapper.h index bd9374fc..f22771ba 100644 --- a/PitchTracker/PitchWrapper.h +++ b/PitchTracker/PitchWrapper.h @@ -1,6 +1,6 @@ #pragma once -#include "pitch.hh" +#include "performous/pitch.hh" #define DllExport extern "C" __declspec(dllexport) diff --git a/PitchTracker/pitchTracker.cpp b/PitchTracker/pdaAKF.cpp similarity index 98% rename from PitchTracker/pitchTracker.cpp rename to PitchTracker/pdaAKF.cpp index 85e8bebd..460a74b9 100644 --- a/PitchTracker/pitchTracker.cpp +++ b/PitchTracker/pdaAKF.cpp @@ -13,13 +13,13 @@ // You should have received a copy of the GNU General Public License // along with Vocaluxe. If not, see . -#include "pitchTracker.h" +#include "pdaAKF.h" #include #include #include #include -namespace PitchTracker{ +namespace PitchTrackerAKF{ static void doLog(const char* msg,...){ va_list argptr = NULL; diff --git a/PitchTracker/pitchTracker.h b/PitchTracker/pdaAKF.h similarity index 74% rename from PitchTracker/pitchTracker.h rename to PitchTracker/pdaAKF.h index 3d3c2de0..6341e973 100644 --- a/PitchTracker/pitchTracker.h +++ b/PitchTracker/pdaAKF.h @@ -1,6 +1,7 @@ #pragma once -namespace PitchTracker{ +// A pitch detection that is based on the AKF and AMDF (initially from original Vocaluxe/USDx) +namespace PitchTrackerAKF{ void Init(double baseToneFrequency, int minHalfTone, int maxHalfTone); void DeInit(); template int GetTone(T *samples, int sampleCt, double* maxVolume, float *weights, bool scale = false); diff --git a/PitchTracker/performous/License.txt b/PitchTracker/performous/License.txt new file mode 100644 index 00000000..9a031336 --- /dev/null +++ b/PitchTracker/performous/License.txt @@ -0,0 +1,3 @@ +code is based on Performous: https://github.com/performous/performous/tree/master/game +Some modifications were made to make it compile with VS2012, fix warnings and make it suitable for our needs +From 25.03.2014 \ No newline at end of file diff --git a/PitchTracker/Performous.txt b/PitchTracker/performous/Performous.txt similarity index 100% rename from PitchTracker/Performous.txt rename to PitchTracker/performous/Performous.txt diff --git a/PitchTracker/libda/fft.hpp b/PitchTracker/performous/libda/fft.hpp similarity index 100% rename from PitchTracker/libda/fft.hpp rename to PitchTracker/performous/libda/fft.hpp diff --git a/PitchTracker/libda/sample.hpp b/PitchTracker/performous/libda/sample.hpp similarity index 100% rename from PitchTracker/libda/sample.hpp rename to PitchTracker/performous/libda/sample.hpp diff --git a/PitchTracker/pitch.cc b/PitchTracker/performous/pitch.cc similarity index 100% rename from PitchTracker/pitch.cc rename to PitchTracker/performous/pitch.cc diff --git a/PitchTracker/pitch.hh b/PitchTracker/performous/pitch.hh similarity index 99% rename from PitchTracker/pitch.hh rename to PitchTracker/performous/pitch.hh index ff3d982e..1108e0b9 100644 --- a/PitchTracker/pitch.hh +++ b/PitchTracker/performous/pitch.hh @@ -5,7 +5,7 @@ #include #include #include -#include "compatibility.h" +#include "../compatibility.h" /// struct to represent tones struct Tone { diff --git a/PitchTracker/util.hh b/PitchTracker/performous/util.hh similarity index 100% rename from PitchTracker/util.hh rename to PitchTracker/performous/util.hh