diff options
| author | Tim Redfern <tim@getdrop.com> | 2022-09-29 21:12:40 +0100 |
|---|---|---|
| committer | Tim Redfern <tim@getdrop.com> | 2022-09-29 21:12:40 +0100 |
| commit | a2c919f85c366e02cdc71f0fb46f4ebd4e4afebe (patch) | |
| tree | ba1b88607e8de35b0b49683648d7f64ac8259fe1 /passadesgui/src/ofApp.h | |
| parent | 8c43a654fdc0a0fd822fd0bd9462cdadf6d96456 (diff) | |
revert to working single plugin chaos
Diffstat (limited to 'passadesgui/src/ofApp.h')
| -rw-r--r-- | passadesgui/src/ofApp.h | 243 |
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; + + + +}; |
