From 23879cc5bf88de215f10de14f1a3de9b6b2f586a Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Thu, 31 May 2018 18:18:28 +0100 Subject: fixed rounding bug --- gui/src/ofApp.cpp | 304 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 264 insertions(+), 40 deletions(-) (limited to 'gui/src/ofApp.cpp') diff --git a/gui/src/ofApp.cpp b/gui/src/ofApp.cpp index 14e669d..e684254 100644 --- a/gui/src/ofApp.cpp +++ b/gui/src/ofApp.cpp @@ -5,13 +5,20 @@ const ofPoint outputWindowSize=ofPoint(1200,900); const float guiScale=560.0f/4096.0f; +string sourcenames[5]={ + "TEST", +// "NDI", + "Player", + "SVG outlines", + "SVG segmenters", + "Audio" +}; + //-------------------------------------------------------------- void ofApp::setup(){ - gui.setup(); - - source=SVG_outlines; - + source=Audio; +/* //==================================================== ofxNDI senderName[0] = 0; // The sender name used for display @@ -26,33 +33,74 @@ void ofApp::setup(){ // For received frame fps calculations - independent of the rendering rate startTime = lastTime = frameTime = 0; fps = frameRate = 1; // starting value - - //============================ GUI - - gui.add(contour_threshold.setup("threshold", 140, 0, 255)); - gui.add(contour_simplify.setup("simplify", 0.8, 0.0, 1.0)); - gui.add(contour_useColour.setup("use colour", true)); - gui.add(laser_R.setup("red", 140, 0, 255)); - gui.add(laser_G.setup("green", 140, 0, 255)); - gui.add(laser_B.setup("blue", 140, 0, 255)); - gui.add(laser_intensity.setup("intensity", 30, 0, 255)); - gui.add(laser_points.setup("points", 20000, 0, 40000)); - gui.add(video_speed.setup("playback speed", 1.0, 0.0, 3.0)); - gui.add(shapes_randomise.setup("randomise shapes", true)); - gui.add(shapes_amount.setup("shapes amount", 0.2, 0.0, 0.8)); - gui.add(shapes_duration.setup("shape duration", 5, 0, 25)); - gui.add(use_mask.setup("use mask", true)); - gui.add(invert_mask.setup("invert mask", false)); - gui.add(use_segmenter.setup("use segmenter", false)); - gui.add(segmenter_speed.setup("segmenter speed", 0.2, -1.0, 1.0)); - gui.add(segmenter_length.setup("segmenter length", 0.2, 0.0, 1.0)); - gui.add(segmenter_number.setup("segmenter number", 1, 1, 8)); - gui.add(use_rotate.setup("XF rotate", false)); - gui.add(xf_rotate.setup("rotate speed", 0.0, -1.0, 1.0)); - gui.add(use_scale.setup("XF scale", false)); - gui.add(xf_scale_speed.setup("scale speed", 1.0, 0.0, 10.0)); - gui.add(xf_scale_min.setup("scale min", 1.0, 0.0, 3.0)); - gui.add(xf_scale_max.setup("scale max", 2.0, 0.0, 3.0)); +*/ + + //============================= Audio + + plotter.setup(5,true); + + bufferSize = 2048; + sampleRate = 44100; + + gist.setUseForOnsetDetection(GIST_PEAK_ENERGY); + gist.setThreshold(GIST_PEAK_ENERGY, .05);// + + ofAddListener(GistEvent::ON,this,&ofApp::onNoteOn); + ofAddListener(GistEvent::OFF,this,&ofApp::onNoteOff); + + // ofAddListener(ofApp::useMic->Value,this,&ofApp::useMicChanged); + + soundStream.setup(this,0, 1, sampleRate, bufferSize, 1); + + //loadSong("12 Ferric Appetite.aiff"); + loadSong("passades/1 The Ninth Set-sector1:sector2pt.1.aiff"); + + //============================ gui + + lasergui.setup("laser"); + lasergui.add(laser_power.set("power", false)); + lasergui.add(laser_intensity.set("intensity", 30, 0, 255)); + lasergui.add(laser_points.set("points", 30000, 0, 40000)); + lasergui.add(laser_subdivide.set("subdivide", 15, 1, 100)); + lasergui.add(laser_blank_num.set("blank points", 8, 0, 32)); + lasergui.add(laser_max_angle.set("max angle", 15.0f, 1.0f, 90.0f)); + + drawgui.setup("drawing","",10,150); + drawgui.add(contour_threshold.setup("threshold", 140, 0, 255)); + drawgui.add(contour_simplify.setup("simplify", 0.8, 0.0, 1.0)); + drawgui.add(contour_useColour.setup("use colour", true)); + drawgui.add(laser_R.setup("red", 140, 0, 255)); + drawgui.add(laser_G.setup("green", 140, 0, 255)); + drawgui.add(laser_B.setup("blue", 140, 0, 255)); + drawgui.add(video_speed.setup("playback speed", 1.0, 0.0, 3.0)); + drawgui.add(shapes_randomise.setup("randomise shapes", true)); + drawgui.add(shapes_amount.setup("shapes amount", 0.2, 0.0, 0.8)); + drawgui.add(shapes_duration.setup("shape duration", 5, 0, 25)); + drawgui.add(use_mask.setup("use mask", true)); + drawgui.add(invert_mask.setup("invert mask", false)); + drawgui.add(use_segmenter.setup("use segmenter", false)); + drawgui.add(segmenter_speed.setup("segmenter speed", 0.2, -1.0, 1.0)); + drawgui.add(segmenter_length.setup("segmenter length", 0.2, 0.0, 1.0)); + drawgui.add(segmenter_number.setup("segmenter number", 1, 1, 8)); + drawgui.add(use_rotate.setup("XF rotate", false)); + drawgui.add(xf_rotate.setup("rotate speed", 0.0, -1.0, 1.0)); + drawgui.add(use_scale.setup("XF scale", false)); + drawgui.add(xf_scale_speed.setup("scale speed", 1.0, 0.0, 10.0)); + drawgui.add(xf_scale_min.setup("scale min", 1.0, 0.0, 3.0)); + drawgui.add(xf_scale_max.setup("scale max", 2.0, 0.0, 3.0)); + + audiogui.setup("audio","",10,600); + audiogui.add(useMic.set("mic",true)); + audiogui.add(useFft.set("fft",false)); + audiogui.add(scalePlot.set("scale plot", 0.1f, 0.0f, 1.0f )); + audiogui.add(decayPlot.set("decay", 0.9f, 0.0f, 1.0f )); + audiogui.add(plotter.joined.set("joined",true)); + audiogui.add(plotter.bars.set("bars",true)); + audiogui.add(plotter.width.set("point width", 2, 1, 256)); + audiogui.add(plotter.num_points.set("num points", 50, 1, 512)); + audiogui.add(plotter.history_size.set("num plots", 5, 1, 100)); + audiogui.add(plotter.startColour.set("start",ofColor(255,255,255))); + audiogui.add(plotter.endColour.set("end",ofColor(0,0,0))); framecounter=0; @@ -110,6 +158,109 @@ void ofApp::setup(){ } +//====================== audio functions + +void ofApp::loadSong(string str){ + + cout<<"loadSong "<max){ + max=centre[i]; + } + } + + + } + else if (nChannels==1){ + for (int i = 0; i < bufferSize;i++){ + left[i] = input[i]; + right[i] = input[i]; + centre[i] = input[i]; + if (centre[i]>max){ + max=centre[i]; + } + } + } + + //ofLog()<<"audio data max "<buffer; + buffer.assign(&input[0],&input[bufferSize]); + + gist.processAudio(buffer, bufferSize, nChannels,sampleRate); +} + + +void ofApp::audioIn(float * input, int bufferSize, int nChannels){ + if(!useMic){ + return; + } + + //ofLog() << "processing "< output = player.getCurrentBuffer(bufferSize); + processAudio(&output[0], bufferSize, 2); + // + if (useFft){ + fftSmoothed = player.getFFT(); + /* + float * fft = ofSoundGetSpectrum(plotter.num_points); + fftSmoothed.resize(plotter.num_points); + //printf("fft: "); + for (int i=0;i transformedOutput; @@ -618,7 +840,9 @@ void ofApp::drawOutput(ofEventArgs & args){ int pnum=0; if (polyOutput.size()){ - num=laser.draw(scaledWarpedOutput); + if (laser_power) { + num=laser.draw(scaledWarpedOutput); + } for (auto& shape:warpedOutput){ shape.draw(); pnum+=shape.size(); @@ -630,11 +854,11 @@ void ofApp::drawOutput(ofEventArgs & args){ } if (num>0){ - ofSetWindowTitle(ofToString(ofGetFrameRate(), 2)+" fps laser points: "+ofToString(num)); + ofSetWindowTitle(sourcenames[source]+": "+ofToString(ofGetFrameRate(), 2)+" fps laser points: "+ofToString(num)); } else { - ofSetWindowTitle(ofToString(ofGetFrameRate(), 2)+" fps laser error points: "+ofToString(pnum)); + ofSetWindowTitle(sourcenames[source]+": "+ofToString(ofGetFrameRate(), 2)+" fps laser error points: "+ofToString(pnum)); } } @@ -679,8 +903,8 @@ void ofApp::keyPressed(ofKeyEventArgs &args){ bDrawFrame=!bDrawFrame; break; } - case OF_KEY_COMMAND:{ - commandPressed=true; + case 'd':{ + default_settings(); break; } case 's':{ -- cgit v1.2.3