summaryrefslogtreecommitdiff
path: root/NT/src/nodes_audio_analysis.h
diff options
context:
space:
mode:
Diffstat (limited to 'NT/src/nodes_audio_analysis.h')
-rw-r--r--NT/src/nodes_audio_analysis.h21
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";