summaryrefslogtreecommitdiff
path: root/passadesgui/src/AudioPlotter.h
diff options
context:
space:
mode:
authorTim Redfern <tim@getdrop.com>2022-09-29 21:12:40 +0100
committerTim Redfern <tim@getdrop.com>2022-09-29 21:12:40 +0100
commita2c919f85c366e02cdc71f0fb46f4ebd4e4afebe (patch)
treeba1b88607e8de35b0b49683648d7f64ac8259fe1 /passadesgui/src/AudioPlotter.h
parent8c43a654fdc0a0fd822fd0bd9462cdadf6d96456 (diff)
revert to working single plugin chaos
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