#include <deque>
+#include "Types.h"
+
class Notes : public Vamp::Plugin
{
public:
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:
fvec_t *m_ibuf;
- cvec_t *m_fftgrain;
fvec_t *m_onset;
- aubio_pvoc_t *m_pv;
- aubio_pickpeak_t *m_peakpick;
- aubio_onsetdetection_t *m_onsetdet;
- aubio_onsetdetection_type m_onsettype;
- aubio_pitchdetection_t *m_pitchdet;
- aubio_pitchdetection_type m_pitchtype;
- aubio_pitchdetection_mode m_pitchmode;
+ fvec_t *m_pitch;
+ aubio_onset_t *m_onsetdet;
+ OnsetType m_onsettype;
+ aubio_pitch_t *m_pitchdet;
+ PitchType m_pitchtype;
float m_threshold;
float m_silence;
+ float m_minioi;
size_t m_median;
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_lastTimeStamp;
float m_currentLevel;
bool m_haveCurrent;
+ int m_prevPitch;
void pushNote(FeatureSet &, const Vamp::RealTime &);
};