From f4170d6bfb763ad0af4002277a37dcd1692534d5 Mon Sep 17 00:00:00 2001 From: Comment Date: Fri, 26 Jul 2013 22:46:17 +0100 Subject: tidy files --- rotord/src/nodes_audio_analysis.h | 47 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 rotord/src/nodes_audio_analysis.h (limited to 'rotord/src/nodes_audio_analysis.h') diff --git a/rotord/src/nodes_audio_analysis.h b/rotord/src/nodes_audio_analysis.h new file mode 100644 index 0000000..e6c1e65 --- /dev/null +++ b/rotord/src/nodes_audio_analysis.h @@ -0,0 +1,47 @@ +#ifndef ROTOR_NODES_AUDIO_ANALYSIS +#define ROTOR_NODES_AUDIO_ANALYSIS + +#include "rotor.h" +#include "vampHost.h" + +namespace Rotor { + class Audio_analysis: public Base_audio_processor { + public: + Audio_analysis(){}; + Audio_analysis(map &settings) { + base_settings(settings); + soname=find_setting(settings,"soname"); + id=find_setting(settings,"id"); + outputNo=find_setting(settings,"outputNo",0); + }; + Audio_analysis* clone(map &_settings) { return new Audio_analysis(_settings);}; + bool init(int _channels,int _bits,int _samples,int _rate); + void cleanup(); + void set_parameter(const std::string &key,const std::string &value){params[key]=ofToFloat(value);}; + int process_frame(uint8_t *data,int samples_in_frame); + const float output(const Time_spec &time) { + if (analyser.features.size()) { + auto i=analyser.features.upper_bound(time.time); //the first element in the container whose key is considered to go after k + if (i!=analyser.features.end()){ + float uk=i->first; + i--; + float lk=i->first; + int ln=i->second; + return (((time.time-lk)/(uk-lk))+ln); + } + } + return 0.0f; + } + void print_features(); + void print_summary(){ + cerr<<"vamp plugin "< params; + }; +} + +#endif \ No newline at end of file -- cgit v1.2.3