comparison layer/SpectrogramLayer.cpp @ 860:4a5d144bd5d0 tonioni

Merge from default branch
author Chris Cannam
date Tue, 09 Sep 2014 16:36:21 +0100
parents d7f6f60a8b30
children 1986c9b0d9c3 0fe1f4407261
comparison
equal deleted inserted replaced
842:8432d2551fb2 860:4a5d144bd5d0
1443 1443
1444 for (int s = s0i; s <= s1i; ++s) { 1444 for (int s = s0i; s <= s1i; ++s) {
1445 1445
1446 if (!fft->isColumnAvailable(s)) continue; 1446 if (!fft->isColumnAvailable(s)) continue;
1447 1447
1448 float binfreq = (sr * q) / m_windowSize; 1448 float binfreq = (float(sr) * q) / m_windowSize;
1449 if (q == q0i) freqMin = binfreq; 1449 if (q == q0i) freqMin = binfreq;
1450 if (q == q1i) freqMax = binfreq; 1450 if (q == q1i) freqMax = binfreq;
1451 1451
1452 if (peaksOnly && !fft->isLocalPeak(s, q)) continue; 1452 if (peaksOnly && !fft->isLocalPeak(s, q)) continue;
1453 1453
2477 FFTModel *fft = getFFTModel(v); 2477 FFTModel *fft = getFFTModel(v);
2478 if (!fft) return false; 2478 if (!fft) return false;
2479 2479
2480 FFTModel::PeakSet peakfreqs; 2480 FFTModel::PeakSet peakfreqs;
2481 2481
2482 int px = -1, psx = -1; 2482 int psx = -1;
2483 2483
2484 #ifdef __GNUC__ 2484 #ifdef __GNUC__
2485 float values[maxbin - minbin + 1]; 2485 float values[maxbin - minbin + 1];
2486 #else 2486 #else
2487 float *values = (float *)alloca((maxbin - minbin + 1) * sizeof(float)); 2487 float *values = (float *)alloca((maxbin - minbin + 1) * sizeof(float));
2498 if (sx0 < 0) continue; 2498 if (sx0 < 0) continue;
2499 if (sx1 <= sx0) sx1 = sx0 + 1; 2499 if (sx1 <= sx0) sx1 = sx0 + 1;
2500 2500
2501 for (int sx = sx0; sx < sx1; ++sx) { 2501 for (int sx = sx0; sx < sx1; ++sx) {
2502 2502
2503 if (x == px && sx == psx) continue;
2504 if (sx < 0 || sx >= int(fft->getWidth())) continue; 2503 if (sx < 0 || sx >= int(fft->getWidth())) continue;
2505 2504
2506 if (!m_synchronous) { 2505 if (!m_synchronous) {
2507 if (!fft->isColumnAvailable(sx)) { 2506 if (!fft->isColumnAvailable(sx)) {
2508 #ifdef DEBUG_SPECTROGRAM_REPAINT 2507 #ifdef DEBUG_SPECTROGRAM_REPAINT
2929 if (!m_model) return false; 2928 if (!m_model) return false;
2930 2929
2931 // SVDEBUG << "SpectrogramLayer::setDisplayExtents: " << min << "->" << max << endl; 2930 // SVDEBUG << "SpectrogramLayer::setDisplayExtents: " << min << "->" << max << endl;
2932 2931
2933 if (min < 0) min = 0; 2932 if (min < 0) min = 0;
2934 if (max > m_model->getSampleRate()/2) max = m_model->getSampleRate()/2; 2933 if (max > m_model->getSampleRate()/2.f) max = m_model->getSampleRate()/2.f;
2935 2934
2936 int minf = lrintf(min); 2935 int minf = lrintf(min);
2937 int maxf = lrintf(max); 2936 int maxf = lrintf(max);
2938 2937
2939 if (m_minFrequency == minf && m_maxFrequency == maxf) return true; 2938 if (m_minFrequency == minf && m_maxFrequency == maxf) return true;