| Chris@23 | 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */ | 
| matthiasm@0 | 2 | 
| Chris@35 | 3 /* | 
| Chris@35 | 4   NNLS-Chroma / Chordino | 
| Chris@35 | 5 | 
| Chris@35 | 6   Audio feature extraction plugins for chromagram and chord | 
| Chris@35 | 7   estimation. | 
| Chris@35 | 8 | 
| Chris@35 | 9   Centre for Digital Music, Queen Mary University of London. | 
| Chris@35 | 10   This file copyright 2008-2010 Matthias Mauch and QMUL. | 
| Chris@35 | 11 | 
| Chris@35 | 12   This program is free software; you can redistribute it and/or | 
| Chris@35 | 13   modify it under the terms of the GNU General Public License as | 
| Chris@35 | 14   published by the Free Software Foundation; either version 2 of the | 
| Chris@35 | 15   License, or (at your option) any later version.  See the file | 
| Chris@35 | 16   COPYING included with this distribution for more information. | 
| Chris@35 | 17 */ | 
| Chris@35 | 18 | 
| matthiasm@0 | 19 #ifndef _NNLS_CHROMA_ | 
| matthiasm@0 | 20 #define _NNLS_CHROMA_ | 
| matthiasm@0 | 21 | 
| Chris@35 | 22 #include "NNLSBase.h" | 
| Chris@35 | 23 | 
| matthiasm@0 | 24 using namespace std; | 
| matthiasm@0 | 25 | 
| matthiasm@0 | 26 | 
| Chris@35 | 27 class NNLSChroma : public NNLSBase | 
| matthiasm@0 | 28 { | 
| matthiasm@0 | 29 public: | 
| matthiasm@0 | 30     NNLSChroma(float inputSampleRate); | 
| matthiasm@0 | 31     virtual ~NNLSChroma(); | 
| matthiasm@0 | 32 | 
| matthiasm@0 | 33     string getIdentifier() const; | 
| matthiasm@0 | 34     string getName() const; | 
| matthiasm@0 | 35     string getDescription() const; | 
| matthiasm@0 | 36 | 
| matthiasm@0 | 37     OutputList getOutputDescriptors() const; | 
| matthiasm@0 | 38 | 
| Chris@35 | 39     FeatureSet process(const float *const *inputBuffers, | 
| Chris@35 | 40                        Vamp::RealTime timestamp); | 
| Chris@35 | 41     FeatureSet getRemainingFeatures(); | 
| Chris@35 | 42 | 
| matthiasm@0 | 43     bool initialise(size_t channels, size_t stepSize, size_t blockSize); | 
| matthiasm@0 | 44     void reset(); | 
| matthiasm@0 | 45 | 
| matthiasm@0 | 46 protected: | 
| mail@117 | 47     mutable int m_outputLogfreqspec; | 
| mail@117 | 48     mutable int m_outputTunedlogfreqspec; | 
| mail@117 | 49     mutable int m_outputSemitonespectrum; | 
| Chris@35 | 50     mutable int m_outputChroma; | 
| mail@117 | 51     mutable int m_outputBasschroma; | 
| mail@117 | 52     mutable int m_outputBothchroma; | 
| matthiasm@0 | 53 }; | 
| matthiasm@0 | 54 | 
| matthiasm@0 | 55 | 
| matthiasm@0 | 56 | 
| matthiasm@0 | 57 #endif |