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 Chris@35: 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: matthiasm@0: #ifndef _NNLS_CHROMA_ matthiasm@0: #define _NNLS_CHROMA_ matthiasm@0: Chris@35: #include "NNLSBase.h" Chris@35: matthiasm@0: using namespace std; matthiasm@0: matthiasm@0: Chris@35: class NNLSChroma : public NNLSBase matthiasm@0: { matthiasm@0: public: matthiasm@0: NNLSChroma(float inputSampleRate); matthiasm@0: virtual ~NNLSChroma(); matthiasm@0: matthiasm@0: string getIdentifier() const; matthiasm@0: string getName() const; matthiasm@0: string getDescription() const; matthiasm@0: 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: mail@117: mutable int m_outputLogfreqspec; mail@117: mutable int m_outputTunedlogfreqspec; mail@117: mutable int m_outputSemitonespectrum; Chris@35: mutable int m_outputChroma; mail@117: mutable int m_outputBasschroma; mail@117: mutable int m_outputBothchroma; matthiasm@0: }; matthiasm@0: matthiasm@0: matthiasm@0: matthiasm@0: #endif