summaryrefslogtreecommitdiff
path: root/passadesgui/src/ofApp.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/ofApp.h
parent8c43a654fdc0a0fd822fd0bd9462cdadf6d96456 (diff)
revert to working single plugin chaos
Diffstat (limited to 'passadesgui/src/ofApp.h')
-rw-r--r--passadesgui/src/ofApp.h243
1 files changed, 243 insertions, 0 deletions
diff --git a/passadesgui/src/ofApp.h b/passadesgui/src/ofApp.h
new file mode 100644
index 0000000..24ab46e
--- /dev/null
+++ b/passadesgui/src/ofApp.h
@@ -0,0 +1,243 @@
+ #pragma once
+
+#include "ofMain.h"
+
+//#include "ofxNDI.h"
+#include "ofxGui.h"
+#include "ofxXmlSettings.h"
+#include "ofxOpenCv.h"
+#include "ofxSVG.h"
+#include "ofxClipper.h"
+#include "ofxMidi.h"
+
+#include "ofxHelios.h"
+#include "lineTransformer.h"
+#include "lineSegmenter.h"
+
+#include "ofxGist.h"
+//This is included only as a way of getting buffer out of loaded sound.
+//There are many other ways you can do that.
+//This player includes a version of kissFFT. You can remove the one included in Gist.
+//https://github.com/borg/ofxOpenALSoundPlayer
+#include "ofxOpenALSoundPlayer.h"
+//Slightly modified to add a dynamic getVariable method to be able to plot based on
+//gist feature list
+//https://github.com/local-projects/ofxHistoryPlot
+#include "ofxHistoryPlot.h"
+#include "Audioplotter.h"
+
+enum Source{
+ TEST,
+// NDI,
+ Player,
+ SVG_outlines,
+ SVG_segmenters,
+ Audio,
+ Source_end
+};
+
+
+class ofApp: public ofBaseApp, public ofxMidiListener {
+
+ public:
+ void setup();
+ void update();
+ void draw();
+ void exit();
+
+ void keyPressed(ofKeyEventArgs &keyargs);
+ void keyReleased(ofKeyEventArgs & args);
+ void mouseMoved(int x, int y );
+ void mouseDragged(int x, int y, int button);
+ void mousePressed(int x, int y, int button);
+ void mouseReleased(int x, int y, int button);
+ void mouseEntered(int x, int y);
+ void mouseExited(int x, int y);
+ void windowResized(int w, int h);
+ void dragEvent(ofDragInfo dragInfo);
+
+ void newMidiMessage(ofxMidiMessage& eventArgs);
+
+ void updateOutput(ofEventArgs & args);
+ void drawOutput(ofEventArgs & args);
+ void outputKeyPressed(ofKeyEventArgs & args);
+ void outputKeyReleased(ofKeyEventArgs & args);
+ void outputMouseDragged(ofMouseEventArgs & args);
+ void outputMousePressed(ofMouseEventArgs & args);
+ void outputMouseReleased(ofMouseEventArgs & args);
+ void outputWindowResized(ofResizeEventArgs &resizeargs);
+
+ void select_random_shapes();
+
+ void default_settings();
+ void save_settings();
+
+ bool commandPressed;
+
+ glm::vec2 warpframe[4];
+ int select_warpframe;
+ bool bDrawFrame;
+
+
+ ofxHelios laser;
+
+ int source;
+
+ //======================================== //audio
+
+ ofxGist gist;
+ void onNoteOn(GistEvent &e);
+ void onNoteOff(GistEvent &e);
+
+ ofSoundStream soundStream;
+ ofxOpenALSoundPlayer player;
+
+ void processAudio(float * input, int bufferSize, int nChannels);
+ void audioIn(float * input, int bufferSize, int nChannels);
+
+ void loadSong(string str);
+
+ int bufferSize;
+ int sampleRate;
+
+ vector<float>fftSmoothed;
+ vector <float> left;
+ vector <float> right;
+ vector <float> centre;
+
+ Audioplotter plotter;
+
+ //======== audio gui
+
+ ofxPanel audiogui;
+ ofParameter<bool> useMic;
+ ofParameter<bool> useFft;
+ ofParameter<float> scalePlot;
+ ofParameter<float> decayPlot;
+
+ void useMicChanged();
+
+ //======= audio response gui
+
+ ofxPanel responsegui;
+ ofParameter<float> onset_threshold;
+ ofParameter<bool> use_onset;
+ ofParameter<int> onset_duration;
+
+ int onset_frame;
+ int onset_number;
+
+ //======== chaos gui
+
+ ofxPanel chaosgui;
+
+
+ //======================================== //thresholding
+
+ ofxCvColorImage colorImg;
+ ofxCvGrayscaleImage grayImage;
+ ofxCvContourFinder contourFinder;
+
+ //======================================== //ofxNDI
+/*
+ ofxNDIreceiver ndiReceiver;
+ ofImage ndiImage;
+ char senderName[256];
+ int nSenders;
+ unsigned int senderWidth;
+ unsigned int senderHeight;
+ bool bNDIreceiver;
+
+ // For received frame fps calculations
+ double startTime, lastTime, frameTime, frameRate, fps;
+*/
+ //====== drawing gui
+
+ ofxPanel drawgui;
+
+ ofxIntSlider contour_threshold;
+ ofxFloatSlider contour_simplify;
+ ofxToggle contour_useColour;
+ ofxIntSlider laser_R;
+ ofxIntSlider laser_G;
+ ofxIntSlider laser_B;
+
+ //====== video
+
+ ofxFloatSlider video_speed;
+
+ //svg gui
+ ofxToggle shapes_randomise;
+ ofxFloatSlider shapes_amount;
+ ofxIntSlider shapes_duration;
+ ofxToggle use_mask;
+ ofxToggle invert_mask;
+
+ //segmenter
+ ofxToggle use_segmenter;
+ ofxFloatSlider segmenter_speed;
+ ofxFloatSlider segmenter_length;
+ ofxIntSlider segmenter_number;
+
+ //transforms
+ ofxToggle use_rotate;
+ ofxFloatSlider xf_rotate;
+ ofxToggle use_scale;
+ ofxFloatSlider xf_scale_speed;
+ ofxFloatSlider xf_scale_min;
+ ofxFloatSlider xf_scale_max;
+
+
+ //======= laser gui
+
+ ofxPanel lasergui;
+ ofParameter<bool> laser_power;
+ ofParameter<int> laser_intensity;
+ ofParameter<int> laser_points;
+ ofParameter<int> laser_subdivide;
+ ofParameter<int> laser_blank_num;
+ ofParameter<float> laser_max_angle;
+
+ //======================================= //MIDI
+
+ ofxMidiIn midiIn;
+ ofxMidiMessage midiMessage;
+
+ //======================================= //video player
+
+ ofVideoPlayer movie;
+
+ //======================================= //SVG player
+
+ ofxSVG svg;
+ vector <lineSegmenter> segmenters;
+ set <int> shape_selection;
+ int framecounter;
+ float phase,prev_time; //to calculate phase
+ float rotate_amt;
+ float scale_phase,scale_amt;
+
+ //======================================= //Mask clipping
+
+ ofPolyline safety_frame;
+
+ vector <ofPolyline> mask;
+ ofx::Clipper clipper;
+
+ //======================================= //positioning interface
+
+ bool bShowPositionInterface;
+ bool bOutputSelected;
+ ofPoint outputSelectionPoint;
+ ofPoint outputPosition;
+ ofPoint outputOffset;
+ float outputScale;
+ float outputOffsetScale;
+
+ //======================================= //saving settings
+
+ ofxXmlSettings XML;
+
+
+
+};