diff options
Diffstat (limited to 'NT/src/nodes_audio_analysis.h')
| -rw-r--r-- | NT/src/nodes_audio_analysis.h | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/NT/src/nodes_audio_analysis.h b/NT/src/nodes_audio_analysis.h index aa4abeb..e239e87 100644 --- a/NT/src/nodes_audio_analysis.h +++ b/NT/src/nodes_audio_analysis.h @@ -49,7 +49,7 @@ namespace Rotor { //base class for vamp plugin hosts public: Vamp_node(){ - create_attribute("mode","Data output mode","Mode","timeline",{"timeline","timesteps","valueline","values"}); + mode=create_attribute("mode","Data output mode","Mode",Enum({"timeline","timesteps","valueline","values"},0)); }; bool init(int _channels,int _bits,int _samples,int _rate); void cleanup(); @@ -61,7 +61,7 @@ namespace Rotor { double v1,v2; v1=v2=0.0; if (i==features.end()) { - uk=time.duration; + uk=frame.duration; } else { uk=i->first; @@ -71,20 +71,20 @@ namespace Rotor { double lk=i->first; int ln=i->second.number; if (i->second.values.size()) v1=i->second.values[0]; - switch (attributes["mode"]->intVal){ + switch (mode->get().get_value()){ case VAMPHOST_Timeline: - return (((frame.time-lk)/(uk-lk))+ln); + value= (((frame.time-lk-lk)/(uk-lk))+ln); case VAMPHOST_Timesteps: - return (double)ln; + value= (double)ln; case VAMPHOST_Valueline: - return ((frame.time-lk)/(uk-lk))+v1; //((((time.time-lk)/(uk-lk))*(v2-v1))+v1); + value= ((frame.time-lk)/(uk-lk))+v1; //((((time.time-lk)/(uk-lk))*(v2-v1))+v1); case VAMPHOST_Values: - return v1; + value= v1; } //} //return (--features.end())->second.values[0]; } - return 0.0; + return value; } string get_features(); void print_summary(){ @@ -96,7 +96,8 @@ namespace Rotor { map <string,float> params; map<double,vampHost::feature> features; private: - vampHost::Analyser analyser; + vampHost::Analyser analyser; + Variable_type<Enum> *mode; }; class Audio_analysis: public Vamp_node { //vamp node that allows the user to choose a plugin @@ -105,7 +106,7 @@ namespace Rotor { //create_attribute("soname","Plugin library to use","Plugin library","vamp-example-plugins"); //create_attribute("id","ID of Plugin to use","Plugin ID","percussiononsets"); //create_attribute("analyser","Analyser Plugin to use","Analyser plugin","barbeattracker",{"barbeattracker","segmenter"}); - create_parameter("outputNo","number","Plugin output to use","Output number",0.0); + create_inlet("outputNo","Plugin output to use","Output number",0.0); //title="Audio analysis"; //description="Analyse audio and output"; NODEID="b769f54e-2d0b-11e3-87dd-f73fc7b1c636"; |
