Mercurial > hg > tony
comparison src/Analyser.cpp @ 399:ffd1a89a68fa cxx11-types
Build fixes etc
author | Chris Cannam |
---|---|
date | Wed, 11 Mar 2015 11:54:29 +0000 |
parents | fc0c4cfad044 |
children | a0eedd10dee3 |
comparison
equal
deleted
inserted
replaced
352:7178bb4dcdfb | 399:ffd1a89a68fa |
---|---|
156 m_currentCandidate = -1; | 156 m_currentCandidate = -1; |
157 m_reAnalysingSelection = Selection(); | 157 m_reAnalysingSelection = Selection(); |
158 } | 158 } |
159 | 159 |
160 bool | 160 bool |
161 Analyser::getDisplayFrequencyExtents(float &min, float &max) | 161 Analyser::getDisplayFrequencyExtents(double &min, double &max) |
162 { | 162 { |
163 if (!m_layers[Spectrogram]) return false; | 163 if (!m_layers[Spectrogram]) return false; |
164 return m_layers[Spectrogram]->getDisplayExtents(min, max); | 164 return m_layers[Spectrogram]->getDisplayExtents(min, max); |
165 } | 165 } |
166 | 166 |
167 bool | 167 bool |
168 Analyser::setDisplayFrequencyExtents(float min, float max) | 168 Analyser::setDisplayFrequencyExtents(double min, double max) |
169 { | 169 { |
170 if (!m_layers[Spectrogram]) return false; | 170 if (!m_layers[Spectrogram]) return false; |
171 m_layers[Spectrogram]->setDisplayExtents(min, max); | 171 m_layers[Spectrogram]->setDisplayExtents(min, max); |
172 return true; | 172 return true; |
173 } | 173 } |
475 (base + out, m_fileModel->getSampleRate()); | 475 (base + out, m_fileModel->getSampleRate()); |
476 t.setStepSize(256); | 476 t.setStepSize(256); |
477 t.setBlockSize(2048); | 477 t.setBlockSize(2048); |
478 | 478 |
479 if (range.isConstrained()) { | 479 if (range.isConstrained()) { |
480 t.setParameter("minfreq", range.min); | 480 t.setParameter("minfreq", float(range.min)); |
481 t.setParameter("maxfreq", range.max); | 481 t.setParameter("maxfreq", float(range.max)); |
482 t.setBlockSize(4096); | 482 t.setBlockSize(4096); |
483 } | 483 } |
484 | 484 |
485 // get time stamps that align with the 256-sample grid of the original extraction | 485 // get time stamps that align with the 256-sample grid of the original extraction |
486 int startSample = ceil(sel.getStartFrame()*1.0/256) * 256; | 486 const sv_frame_t grid = 256; |
487 int endSample = ceil(sel.getEndFrame()*1.0/256) * 256; | 487 sv_frame_t startSample = (sel.getStartFrame() / grid) * grid; |
488 if (startSample < sel.getStartFrame()) startSample += grid; | |
489 sv_frame_t endSample = (sel.getEndFrame() / grid) * grid; | |
490 if (endSample < sel.getEndFrame()) endSample += grid; | |
488 if (!range.isConstrained()) { | 491 if (!range.isConstrained()) { |
489 startSample -= 4*256; // 4*256 is for 4 frames offset due to timestamp shift | 492 startSample -= 4*grid; // 4*256 is for 4 frames offset due to timestamp shift |
490 endSample -= 4*256; | 493 endSample -= 4*grid; |
491 } else { | 494 } else { |
492 endSample -= 9*256; // MM says: not sure what the CHP plugin does there | 495 endSample -= 9*grid; // MM says: not sure what the CHP plugin does there |
493 } | 496 } |
494 RealTime start = RealTime::frame2RealTime(startSample, m_fileModel->getSampleRate()); | 497 RealTime start = RealTime::frame2RealTime(startSample, m_fileModel->getSampleRate()); |
495 RealTime end = RealTime::frame2RealTime(endSample, m_fileModel->getSampleRate()); | 498 RealTime end = RealTime::frame2RealTime(endSample, m_fileModel->getSampleRate()); |
496 | 499 |
497 RealTime duration; | 500 RealTime duration; |
771 | 774 |
772 myLayer->paste(m_pane, clip, 0, false); | 775 myLayer->paste(m_pane, clip, 0, false); |
773 } | 776 } |
774 | 777 |
775 void | 778 void |
776 Analyser::getEnclosingSelectionScope(size_t f, size_t &f0, size_t &f1) | 779 Analyser::getEnclosingSelectionScope(sv_frame_t f, sv_frame_t &f0, sv_frame_t &f1) |
777 { | 780 { |
778 FlexiNoteLayer *flexiNoteLayer = | 781 FlexiNoteLayer *flexiNoteLayer = |
779 qobject_cast<FlexiNoteLayer *>(m_layers[Notes]); | 782 qobject_cast<FlexiNoteLayer *>(m_layers[Notes]); |
780 | 783 |
781 int f0i = f, f1i = f; | 784 sv_frame_t f0i = f, f1i = f; |
782 size_t res = 1; | 785 int res = 1; |
783 | 786 |
784 if (!flexiNoteLayer) { | 787 if (!flexiNoteLayer) { |
785 f0 = f1 = f; | 788 f0 = f1 = f; |
786 return; | 789 return; |
787 } | 790 } |