diff options
Diffstat (limited to 'plugin/src/Caelestia/Services/beattracker.cpp')
| -rw-r--r-- | plugin/src/Caelestia/Services/beattracker.cpp | 40 |
1 files changed, 8 insertions, 32 deletions
diff --git a/plugin/src/Caelestia/Services/beattracker.cpp b/plugin/src/Caelestia/Services/beattracker.cpp index 462abb8..549992d 100644 --- a/plugin/src/Caelestia/Services/beattracker.cpp +++ b/plugin/src/Caelestia/Services/beattracker.cpp @@ -6,16 +6,11 @@ namespace caelestia { -BeatProcessor::BeatProcessor(AudioCollector* collector, QObject* parent) - : AudioProcessor(collector, parent) - , m_tempo(nullptr) - , m_in(nullptr) - , m_out(new_fvec(2)) { - if (collector) { - m_tempo = new_aubio_tempo("default", 1024, collector->chunkSize(), collector->sampleRate()); - m_in = new_fvec(collector->chunkSize()); - } -}; +BeatProcessor::BeatProcessor(QObject* parent) + : AudioProcessor(parent) + , m_tempo(new_aubio_tempo("default", 1024, ac::CHUNK_SIZE, ac::SAMPLE_RATE)) + , m_in(new_fvec(ac::CHUNK_SIZE)) + , m_out(new_fvec(2)) {}; BeatProcessor::~BeatProcessor() { if (m_tempo) { @@ -27,31 +22,12 @@ BeatProcessor::~BeatProcessor() { del_fvec(m_out); } -void BeatProcessor::setCollector(AudioCollector* collector) { - AudioProcessor::setCollector(collector); - - if (m_tempo) { - del_aubio_tempo(m_tempo); - } - if (m_in) { - del_fvec(m_in); - } - - if (collector) { - m_tempo = new_aubio_tempo("default", 1024, collector->chunkSize(), collector->sampleRate()); - m_in = new_fvec(collector->chunkSize()); - } else { - m_tempo = nullptr; - m_in = nullptr; - } -} - void BeatProcessor::process() { - if (!m_collector || !m_tempo || !m_in) { + if (!m_tempo || !m_in) { return; } - m_collector->readChunk(m_in->data); + AudioCollector::instance().readChunk(m_in->data); aubio_tempo_do(m_tempo, m_in, m_out); if (!qFuzzyIsNull(m_out->data[0])) { @@ -62,7 +38,7 @@ void BeatProcessor::process() { BeatTracker::BeatTracker(QObject* parent) : AudioProvider(parent) , m_bpm(120) { - m_processor = new BeatProcessor(m_collector); + m_processor = new BeatProcessor(); init(); connect(static_cast<BeatProcessor*>(m_processor), &BeatProcessor::beat, this, &BeatTracker::updateBpm); |