From 9b8bf39271a8da97f5896831108086b7549e5f4d Mon Sep 17 00:00:00 2001 From: Dave Griffiths Date: Fri, 10 Jul 2015 00:11:12 +0100 Subject: [PATCH] added fftwack --- samplebrain/src/block.cpp | 26 +++++++++++++++++--------- samplebrain/src/block.h | 2 +- samplebrain/src/brain.cpp | 16 ++++++++-------- samplebrain/src/brain.h | 4 ++-- samplebrain/src/main.cpp | 2 ++ samplebrain/src/renderer.cpp | 5 ++++- 6 files changed, 34 insertions(+), 21 deletions(-) diff --git a/samplebrain/src/block.cpp b/samplebrain/src/block.cpp index b2855ac..7312c3b 100644 --- a/samplebrain/src/block.cpp +++ b/samplebrain/src/block.cpp @@ -68,12 +68,20 @@ void block::init_fft(u32 block_size) #define FFT_BIAS 200 -double block::compare(const block &other, float ratio) const { +double block::compare(const block &other, float ratio, int fftwack) const { double mfcc_acc=0; double fft_acc=0; +/* s32 fft_start = fftwack-10; + s32 fft_end = fftwack+10; + if (fft_start<0) fft_start=0; + if (fft_end>m_fft.get_length()) fft_end=m_fft.get_length(); +*/ + s32 fft_start = 0; + s32 fft_end = m_fft.get_length(); + if (ratio==0) { - for (u32 i=0; i::const_iterator i=m_blocks.begin(); i!=m_blocks.end(); ++i) { - double diff = target.compare(*i,ratio); + double diff = target.compare(*i,ratio,fftwack); if (diff::iterator i=m_blocks.begin(); i!=m_blocks.end(); ++i) { cerr<<'\r'; cerr<<"searching: "<=m_target.get_num_blocks()) { m_render_time=0; m_render_blocks.clear(); @@ -38,7 +41,7 @@ void renderer::process(u32 nframes, float *buf) { // get indices for current buffer for (u32 tgt_index = tgt_start; tgt_index<=tgt_end; tgt_index++) { u32 time=tgt_index*tgt_shift; - u32 src_index = m_source.search(m_target.get_block(tgt_index), m_ratio); + u32 src_index = m_source.search(m_target.get_block(tgt_index), m_ratio, fftwack); // put them in the index list m_render_blocks.push_back(render_block(src_index,time)); }