class Notes : public Vamp::Plugin
{
public:
- Notes(float inputSampleRate);
+ Notes(float inputSampleRate, unsigned int apiVersion);
virtual ~Notes();
bool initialise(size_t channels, size_t stepSize, size_t blockSize);
InputDomain getInputDomain() const { return TimeDomain; }
+ std::string getIdentifier() const;
std::string getName() const;
std::string getDescription() const;
std::string getMaker() const;
OutputList getOutputDescriptors() const;
- FeatureSet process(float **inputBuffers, Vamp::RealTime timestamp);
+ FeatureSet process(const float *const *inputBuffers,
+ Vamp::RealTime timestamp);
FeatureSet getRemainingFeatures();
protected:
+ int m_apiVersion;
fvec_t *m_ibuf;
cvec_t *m_fftgrain;
fvec_t *m_onset;
size_t m_stepSize;
size_t m_blockSize;
size_t m_channelCount;
+ int m_minpitch;
+ int m_maxpitch;
+ bool m_wrapRange;
+ bool m_avoidLeaps;
std::deque<float> m_notebuf;
size_t m_count;
+ Vamp::RealTime m_delay;
Vamp::RealTime m_currentOnset;
Vamp::RealTime m_lastTimeStamp;
float m_currentLevel;
bool m_haveCurrent;
+ int m_prevPitch;
void pushNote(FeatureSet &, const Vamp::RealTime &);
};