summaryrefslogtreecommitdiff
path: root/passadesgui/src/AudioPlotter.h
diff options
context:
space:
mode:
Diffstat (limited to 'passadesgui/src/AudioPlotter.h')
-rw-r--r--passadesgui/src/AudioPlotter.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/passadesgui/src/AudioPlotter.h b/passadesgui/src/AudioPlotter.h
new file mode 100644
index 0000000..9cd37ae
--- /dev/null
+++ b/passadesgui/src/AudioPlotter.h
@@ -0,0 +1,57 @@
+#include "ofMain.h"
+#include "ofxAChaoslib.h"
+
+#include "lineTransformer.h"
+
+class Audioplotter{
+ //store and draw a numbr of audio samples
+ //how best to handle transforms - maybe pass in a transform to be added to 2nd and subsequent
+ //how best to handle length of history data - fixed number that can be set, or line budget?
+public:
+ Audioplotter(int _size=1,bool _joined=true,bool _bars=false,int _width=2){
+ setup(_size,_joined,_bars,_width);
+ }
+ void setup(int _size=1,bool _joined=true,bool _bars=false,int _width=2){
+ history_size=_size;
+ joined=_joined;
+ bars=_bars;
+ width=_width;
+ startColour=ofColor(255,255,255);
+ endColour=ofColor(0,0,0);
+ attractor.setup();
+ }
+ colourPolyline compute_chaos(colourPolyline& poly,float colourFade=1.0f);
+ vector <colourPolyline> output(float scale=1.0f,float decay=-1.0f);
+ void addpoints(vector <float> &audio);
+ void blankframe();
+ int numpoints();
+
+ ofParameter<bool> random;
+ ofParameter<bool> joined;
+ ofParameter<bool> bars;
+ ofParameter<bool> mirror;
+ ofParameter<int> width;
+ ofParameter<int> history_size;
+ ofParameter<int> num_points;
+
+//feedback transformation
+ ofParameter<ofVec2f> translate;
+ ofParameter<float> rotate;
+ ofParameter<ofVec2f> scale;
+
+ ofParameter<ofColor> startColour;
+ ofParameter<ofColor> endColour;
+
+ ofParameter<bool> usechaos;
+ ofParameter<float> chaosamount;
+ ofParameter<float> chaosscale;
+ ofParameter<float> chaos_a;
+ ofParameter<float> chaos_b;
+ ofParameter<float> chaos_k;
+ ofParameter<float> chaos_p;
+
+private:
+ vector < vector<colourPolyline>> data;
+ AChaosIkeda attractor;
+
+}; \ No newline at end of file