Chris@23: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ matthiasm@0: Chris@35: /* Chris@35: NNLS-Chroma / Chordino matthiasm@0: Chris@35: Audio feature extraction plugins for chromagram and chord Chris@35: estimation. Chris@35: Chris@35: Centre for Digital Music, Queen Mary University of London. Chris@35: This file copyright 2008-2010 Matthias Mauch and QMUL. Chris@35: Chris@35: This program is free software; you can redistribute it and/or Chris@35: modify it under the terms of the GNU General Public License as Chris@35: published by the Free Software Foundation; either version 2 of the Chris@35: License, or (at your option) any later version. See the file Chris@35: COPYING included with this distribution for more information. Chris@35: */ Chris@35: Chris@35: #ifndef _CHORDINO_ Chris@35: #define _CHORDINO_ Chris@35: Chris@35: #include "NNLSBase.h" Chris@35: matthiasm@0: using namespace std; matthiasm@0: matthiasm@0: Chris@35: class Chordino : public NNLSBase matthiasm@0: { matthiasm@0: public: Chris@35: Chordino(float inputSampleRate); Chris@35: virtual ~Chordino(); matthiasm@0: matthiasm@0: string getIdentifier() const; matthiasm@0: string getName() const; matthiasm@0: string getDescription() const; matthiasm@0: matthiasm@50: ParameterList getParameterDescriptors() const; matthiasm@0: OutputList getOutputDescriptors() const; matthiasm@0: Chris@35: FeatureSet process(const float *const *inputBuffers, Chris@35: Vamp::RealTime timestamp); Chris@35: FeatureSet getRemainingFeatures(); Chris@35: matthiasm@0: bool initialise(size_t channels, size_t stepSize, size_t blockSize); matthiasm@0: void reset(); matthiasm@0: matthiasm@0: protected: Chris@35: mutable int m_outputChords; matthiasm@86: mutable int m_outputChordnotes; Chris@35: mutable int m_outputHarmonicChange; matthiasm@107: mutable int m_outputLoglikelihood; matthiasm@86: vector m_chorddict; matthiasm@86: vector > m_chordnotes; matthiasm@86: vector m_chordnames; matthiasm@0: }; matthiasm@0: matthiasm@0: matthiasm@0: matthiasm@0: #endif