Add dywapitchtracker

Improvements for PtAKF (finer resolution at end)
Bugfix for WavFile
This commit is contained in:
Flamefire committed 2014-04-11 22:59:01 +02:00
1 parent d584206a7f
commit 7c380f62f1
18 files changed
+1075 -140

No files matched your search

+35 -6
View File
@@ -58,23 +58,23 @@ bool Analyzer_OutputFloat(Analyzer* analyzer, float* data, int sampleCt, float r
return analyzer->output(data, data + sampleCt, rate);
}
DllExport PtAKF* PtAKF_Create(unsigned step){
PtAKF* PtAKF_Create(unsigned step){
return new PtAKF(step);
}
DllExport void PtAKF_Free(PtAKF* analyzer){
void PtAKF_Free(PtAKF* analyzer){
if(analyzer)
delete analyzer;
}
DllExport int PtAKF_GetNumHalfTones(){
int PtAKF_GetNumHalfTones(){
return PtAKF::GetNumHalfTones();
}
DllExport void PtAKF_InputByte(PtAKF* analyzer, char* data, int sampleCt){
void PtAKF_InputByte(PtAKF* analyzer, char* data, int sampleCt){
if(sampleCt <= 0 || !analyzer)
return;
short* dataShort = static_cast<short*>(static_cast<void*>(data));
//short* dataShort = static_cast<short*>(static_cast<void*>(data));
float* dataFloat = short2FloatArray(static_cast<short*>(static_cast<void*>(data)), sampleCt);
analyzer->input(dataFloat, dataFloat + sampleCt);
freeFloatArray(dataFloat);
@@ -82,12 +82,41 @@ DllExport void PtAKF_InputByte(PtAKF* analyzer, char* data, int sampleCt){
//analyzer->input(dataShort, dataShort + sampleCt);
}
DllExport int PtAKF_GetNote(PtAKF* analyzer, double* maxVolume, float* weights){
int PtAKF_GetNote(PtAKF* analyzer, double* maxVolume, float* weights){
if(!analyzer)
return -1;
return analyzer->GetNote(maxVolume, weights);
}
PtDyWa* PtDyWa_Create(unsigned step){
return new PtDyWa(step);
}
void PtDyWa_Free(PtDyWa* analyzer){
if(analyzer)
delete analyzer;
}
void PtDyWa_InputByte(PtDyWa* analyzer, char* data, int sampleCt){
if(sampleCt <= 0 || !analyzer)
return;
float* dataFloat = short2FloatArray(static_cast<short*>(static_cast<void*>(data)), sampleCt);
analyzer->input(dataFloat, dataFloat + sampleCt);
freeFloatArray(dataFloat);
}
void PtDyWa_Process(PtDyWa* analyzer){
if(!analyzer)
return;
analyzer->Process();
}
double PtDyWa_GetNote(PtDyWa* analyzer){
if(!analyzer)
return -1;
return analyzer->GetNote();
}
/*
namespace Native{
namespace PitchTracking{