summaryrefslogtreecommitdiff
path: root/gui/src/AudioPlotter.h
diff options
context:
space:
mode:
Diffstat (limited to 'gui/src/AudioPlotter.h')
-rw-r--r--gui/src/AudioPlotter.h37
1 files changed, 26 insertions, 11 deletions
diff --git a/gui/src/AudioPlotter.h b/gui/src/AudioPlotter.h
index 716a1dd..c5774ff 100644
--- a/gui/src/AudioPlotter.h
+++ b/gui/src/AudioPlotter.h
@@ -6,31 +6,45 @@
class AChaosplugin{
public:
AChaosBase* plugin;
- vector <REAL> params;
+ vector <ofParameter <float>> params;
string name;
AChaosplugin(AChaosBase* _plugin,string _name,vector <REAL> _params={0,0,0,0,0,0}){
plugin=_plugin;
- params=_params;
name=_name;
+ //plugin.setup();
+ load_defaults();
+ ofLog()<<"constructor "<<name;
+ }
+ void load_defaults(){
+ params.clear();
+ for (auto i:plugin->iv){
+ ofLog()<<"iv: "<<i;
+ params.push_back(ofParameter <float>().set(ofToString(i),i,0,i*5));
+ }
}
};
class Chaos{
public:
- vector <AChaosplugin> plugins;
+ vector <AChaosplugin*> plugins;
vector <vector <REAL>> params;
int whichplugin;
ofParameter <string> name;
Chaos(){
- plugins.push_back(AChaosplugin(new AChaosBaker(),"Baker"));
- plugins.push_back(AChaosplugin(new AChaosClifford(),"Clifford"));
- plugins.push_back(AChaosplugin(new AChaosCollatz(),"Collatz"));
- plugins.push_back(AChaosplugin(new AChaosDuffing(),"Duffing"));
- plugins.push_back(AChaosplugin(new AChaosGinger(),"Ginger"));
- plugins.push_back(AChaosplugin(new AChaosHenon(),"Henon"));
+ //can only use those that have 2 output params?
+ //or just make it 1 dimensional? only affect the x axis?
+ plugins.push_back(new AChaosplugin(new AChaosBaker(),"Baker"));
+ plugins.push_back(new AChaosplugin(new AChaosClifford(),"Clifford"));
+ plugins.push_back(new AChaosplugin(new AChaosCollatz(),"Collatz"));
+ plugins.push_back(new AChaosplugin(new AChaosDuffing(),"Duffing"));
+ plugins.push_back(new AChaosplugin(new AChaosGinger(),"Ginger"));
+ plugins.push_back(new AChaosplugin(new AChaosHenon(),"Henon"));
whichplugin=0;
update_name();
}
+ AChaosplugin &get(){
+ return *plugins[whichplugin];
+ }
void next(){
whichplugin=(whichplugin+1)%plugins.size();
update_name();
@@ -43,10 +57,11 @@ class Chaos{
update_name();
}
void update_name(){
- name=plugins[whichplugin].name;
+ name=plugins[whichplugin]->name;
+ //save old params & load new
}
std::string &get_name(){
- return plugins[whichplugin].name;
+ return plugins[whichplugin]->name;
}
};