X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=sync.cpp;h=d29180858eee42111fb288f2c2c8520b4533913a;hb=08089f496815d725c3bee171bae0e884642ffc05;hp=7e43ec114cf59797daa2718b67615cd1057bc023;hpb=2d875bfb4e11cea397aeb88d9781d8a36079c9a1;p=c64tapwav diff --git a/sync.cpp b/sync.cpp index 7e43ec1..d291808 100644 --- a/sync.cpp +++ b/sync.cpp @@ -2,8 +2,8 @@ // to find the most likely misalignment as it changes throughout the file. #define NUM_THEORIES 200 -#define THEORY_FROM -10.0 /* in samples */ -#define THEORY_TO 10.0 /* in samples */ +#define THEORY_FROM -20.0 /* in samples */ +#define THEORY_TO 20.0 /* in samples */ #define SWITCH_COST 1000.0 /* pretty arbitrary */ #include @@ -41,6 +41,7 @@ struct hypothesis { int main(int argc, char **argv) { + make_lanczos_weight_table(); std::vector pcm; while (!feof(stdin)) { @@ -113,7 +114,7 @@ int main(int argc, char **argv) fprintf(stderr, "Matching blocks... %7.2f", 0.0); hypothesis *prev_hyp = bases; size_t total_end = pcm.size(); - //size_t total_end = 4410000; + //size_t total_end = 441000; for (unsigned i = 0; i < total_end; i += BUFSIZE) { fprintf(stderr, "\b\b\b\b\b\b\b%7.2f", i / 44100.0); size_t end = std::min(i + BUFSIZE, total_end); @@ -182,9 +183,9 @@ int main(int argc, char **argv) std::vector aligned_pcm; std::vector mono_pcm; for (unsigned i = 0; i < total_end; ++i) { - double d = linear_interpolate(best_path, i / double(BUFSIZE)); + double d = lanczos_interpolate(best_path, i / double(BUFSIZE)); int left = pcm[i].left; - int right = linear_interpolate_right(pcm, i + d); + int right = lanczos_interpolate_right(pcm, i + d); stereo_sample ss; ss.left = left;