]> Shamusworld >> Repos - wozmaker/blobdiff - src/dsp.h
Move saving code to fileio, add WOZ2 support, misc. DSP tweaks.
[wozmaker] / src / dsp.h
index 030446f76a51daaeba03b4298c9d76abb9c6fadd..0b3e0f2066c073a2de275415d5d60285fc7c7107 100644 (file)
--- a/src/dsp.h
+++ b/src/dsp.h
@@ -4,7 +4,8 @@
 #include <stdint.h>
 #include <stdlib.h>
 
-double StdDeviation(double *, uint32_t, double * mean = NULL);
+double StdDeviation(double *, uint32_t, double * pMean = NULL);
+double StdDeviationWave(uint32_t * sync, uint32_t num, double * pMean = NULL);
 double Largest(double *, uint32_t);
 uint32_t Largest(uint32_t *, uint32_t);
 uint32_t LargestIndex(double *, uint32_t);
@@ -13,37 +14,25 @@ double Smallest(double *, uint32_t);
 uint32_t Smallest(uint32_t *, uint32_t);
 uint32_t SmallestIndex(double *, uint32_t);
 uint32_t SmallestIndex(uint32_t *, uint32_t);
+bool Equal(uint32_t * a1, uint32_t * a2, uint32_t num);
+uint32_t IndexForTime(uint32_t trackNum, uint32_t time);
 
-#if 0
-uint32_t Synthesize(uint32_t * sync, uint32_t num, uint32_t * wave, float * amp);
-bool FindSync(uint32_t, uint32_t, uint32_t &, uint32_t &);
-void FindSyncForStreams(uint32_t * sync, uint32_t num);
-void FindInitialSyncForStreams(uint32_t * sync, uint32_t num);
-void BacktrackInitialSync(uint32_t * sync, uint32_t num);
-void BacktrackInitialSync2(uint32_t * sync, uint32_t num);
-void BacktrackInitialSync3(uint32_t * sync, uint32_t num);
-void BacktrackInitialSync4(uint32_t * sync, uint32_t num);
-void StepBackUntilBad(uint32_t * sync, double * a, uint32_t num);
-bool StepBackThruBad(uint32_t * sync, double * a, uint32_t num);
-void StepBack(uint32_t * sync, double * a, uint32_t num);
-void StepAndAddBack(uint32_t * sync, double * a, uint32_t num);
-void StepAndAddBack(uint32_t & sync, double & a, uint32_t i);
-void StepForward(uint32_t * sync, double * a, uint32_t num);
-void StepAndAddForward(uint32_t * sync, double * a, uint32_t num);
-void StepAndAddForward(uint32_t & sync, double & a, uint32_t i);
-uint32_t Lookahead(uint32_t * sync, uint32_t num, int32_t dir = 1);
-int Resync(uint32_t * sync, double * a, uint32_t num, int32_t dir = 1);
-#endif
+uint32_t LookaheadWave(uint32_t * passedInSync, uint32_t num, int8_t dir = 1, bool * perfect = NULL);
+uint32_t FindSyncBetweenFirstTwo(uint32_t * sync);
 void FindInitialSyncForStreams2(uint32_t * sync, uint32_t num);
 uint32_t Synthesize2(uint32_t * sync, uint32_t num, uint32_t * wave, float * amp);
-
+bool ResyncWave(uint32_t * sync, uint32_t num, int8_t dir = 1);
 bool AttemptToFindStart(uint32_t * sync, uint32_t num);
 bool InitialSync(uint32_t * sync, uint32_t num);
+uint32_t LoopLookahead(uint32_t trackNum, uint32_t start, uint32_t loopPoint, bool * test = NULL);
 void SynthesizeTrack(uint32_t trackNum);
+//void MakeLoop(uint32_t trackNum);
+//uint32_t FindLoopPoint(uint32_t trackNum);
+bool FindLoopPoint(uint32_t trackNum, uint32_t & start, uint32_t & end);
+
 
 // Exported variables
 extern uint32_t sNum[];
-//extern double ratio[];
 extern double initSyncTime[];
 
 #endif // __DSP_H__