Mercurial > hg > svcore
comparison data/model/FFTModel.h @ 1837:1b688ab5f1b3
Unify various vectors to our base floatvec_t type; store columns in fft model cache at their desired height so we can return a reference (speeding up the peak-frequency spectrogram in particular)
author | Chris Cannam |
---|---|
date | Thu, 09 Apr 2020 11:22:55 +0100 |
parents | 21c792334c2e |
children |
comparison
equal
deleted
inserted
replaced
1835:804dd0c06f0e | 1837:1b688ab5f1b3 |
---|---|
191 startFrame -= m_windowSize / 2; | 191 startFrame -= m_windowSize / 2; |
192 endFrame -= m_windowSize / 2; | 192 endFrame -= m_windowSize / 2; |
193 return { startFrame, endFrame }; | 193 return { startFrame, endFrame }; |
194 } | 194 } |
195 | 195 |
196 typedef std::vector<float, breakfastquay::StlAllocator<float>> fvec; | 196 const complexvec_t &getFFTColumn(int column) const; |
197 typedef std::vector<std::complex<float>, | 197 floatvec_t getSourceSamples(int column) const; |
198 breakfastquay::StlAllocator<std::complex<float>>> cvec; | 198 floatvec_t getSourceData(std::pair<sv_frame_t, sv_frame_t>) const; |
199 | 199 floatvec_t getSourceDataUncached(std::pair<sv_frame_t, sv_frame_t>) const; |
200 cvec getFFTColumn(int column) const; | |
201 fvec getSourceSamples(int column) const; | |
202 fvec getSourceData(std::pair<sv_frame_t, sv_frame_t>) const; | |
203 fvec getSourceDataUncached(std::pair<sv_frame_t, sv_frame_t>) const; | |
204 | 200 |
205 struct SavedSourceData { | 201 struct SavedSourceData { |
206 std::pair<sv_frame_t, sv_frame_t> range; | 202 std::pair<sv_frame_t, sv_frame_t> range; |
207 fvec data; | 203 floatvec_t data; |
208 }; | 204 }; |
209 mutable SavedSourceData m_savedData; | 205 mutable SavedSourceData m_savedData; |
210 | 206 |
211 struct SavedColumn { | 207 struct SavedColumn { |
212 int n; | 208 int n; |
213 cvec col; | 209 complexvec_t col; |
214 }; | 210 }; |
215 mutable std::vector<SavedColumn> m_cached; | 211 mutable std::vector<SavedColumn> m_cached; |
216 mutable size_t m_cacheWriteIndex; | 212 mutable size_t m_cacheWriteIndex; |
217 size_t m_cacheSize; | 213 size_t m_cacheSize; |
214 | |
215 void clearCaches(); | |
218 }; | 216 }; |
219 | 217 |
220 #endif | 218 #endif |