diff --git a/pde/IF3Si/IF3Si.pde b/pde/IF3Si/IF3Si.pde index 2c27793..0ad9225 100644 --- a/pde/IF3Si/IF3Si.pde +++ b/pde/IF3Si/IF3Si.pde @@ -54,6 +54,17 @@ PGraphics sphere; int tilesOverlap; +// testPicture +boolean testPictureToggle = false; +PFont testFont; + +// fps +PFont fpsFont; + +// testPattern +boolean testPatternToggle = false; + + void setup() { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - float sizefactor = 1; // define the size of the screen, 1 = 1080p @@ -73,7 +84,8 @@ void setup() { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // start oscP5, listening for incoming messages at port 12000 println("~~~ starting oscP5 ..."); oscP5 = new OscP5(this,12000); - oscP5.plug(this,"ctlin","/ctlin"); // to be converted for PD OSC input + oscP5.plug(this,"ctlin","/ctlin"); // osc from Renoise/Midi (via SC) -> function 'ctlin' + oscP5.plug(this,"scosc","/sc"); // osc from SuperCollider -> function 'scosc' // get all textures into an image pool println("\n\n~~~ loading textures into image pool ...\n"); @@ -109,32 +121,17 @@ void setup() { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - initializeSphere(ptsW, ptsH); // number of vertices around the width and height sphere = createGraphics(width, height, P3D); + // for testPicture + String[] fontList = PFont.list(); + printArray(fontList); + testFont = createFont("Oliver's Barney", 50); + + // fps + fpsFont = createFont("Ubuntu Mono", 12); + } -// process OSC messages -public void ctlin(int cc, int val) { // - - - - - - - - - - - - - - - - - - - - - - - - - // debug - println("## OSC: /ctlin cc:" + cc + " value:" + val); - - if (cc == 2) { tilesOverlap = val; } - - /* // triggers are on controller number 0 - if (cc == 0) { - } - - if (cc == 2) { flySpeedXfactor = (val - 64); } // speed (&direction) on X axis [-1 - 1] FIXit! - if (cc == 3) { flySpeedYfactor = (val - 64); } // speed (&direction) on Y axis [-1 - 1] FIXit! - */ - -} - - - - - - void draw() { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -184,7 +181,7 @@ void draw() { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // test pattern```````````````````````````````````````````````````| - testPattern(boolean(0), // on/off + testPattern(testPatternToggle, // boolean(0), // on/off 2, 0, // img bank & ID 255, // image alpha 10, // number of horizontal 'lanes' @@ -197,7 +194,7 @@ void draw() { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // debug `````````````````````````````````````````````````````````| // draw test picture - testPicture(boolean(0)); + testPicture(testPictureToggle); // frames per second displayFps(true); diff --git a/pde/IF3Si/functions.pde b/pde/IF3Si/functions.pde index 30a82d1..36ff523 100644 --- a/pde/IF3Si/functions.pde +++ b/pde/IF3Si/functions.pde @@ -202,6 +202,7 @@ void testPicture(boolean render) { line(0, height/2, width, height/2); fill(0); + textFont(testFont); textSize(50); textAlign(CENTER,CENTER); @@ -355,7 +356,7 @@ void drawSpheres( boolean render */ } - +} // TEST PATTERN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -506,7 +507,10 @@ void displayFps(boolean render) { // ----------------------------------- if (render){ // Display Fps fill(0); noStroke(); rect(width-80, height-30, 80, 30, 4); - fill(200); text(int(frameRate)+"fps", width-40, height-10, 5);} + fill(200); + textFont(fpsFont); + textSize(12); + text(int(frameRate)+"fps", width-40, height-10, 5);} } void autoSnap(boolean render) { // ------------------------------------- diff --git a/rnx/IF3Si.xrns b/rnx/IF3Si.xrns index c6a7151..5511809 100644 Binary files a/rnx/IF3Si.xrns and b/rnx/IF3Si.xrns differ diff --git a/scd/IF3Si.scd b/scd/IF3Si.scd index f441e28..17c8338 100644 --- a/scd/IF3Si.scd +++ b/scd/IF3Si.scd @@ -33,61 +33,11 @@ postln("\n\n "); Server.default.waitForBoot { - - - - // midi init & stuff: - - - - - - -( -var p5osc; -var midiFunc; - - -//MIDIIn.connectAll; -p5osc = NetAddr.new("zarquon", 12000); - - -midiFunc = MIDIFunc.cc({ - - arg val1, val2; - postln("sending: /ctlin " + val2 + " " + val1); - // we need to send /ctlin CCnum CCvalue - p5osc.sendMsg("/ctlin", val2, val1); - - - -}, (0..127)); // match all cc (from 1..127) -) - -midiFunc.free; // cleanup -p5osc.disconnectAll - -MIDIIn.findPort; - - - -MIDIClient.init(1,0); -MIDIClient.sources; -MIDIIn.connect("Renoise MIDI Output", "out0"); - - - - - - - - - - // where are we? var dir = PathName(thisProcess.nowExecutingPath).pathOnly; + // this might go to separate file at some point... ---------------------| // will load samples for granular synthesis // var dir = PathName(thisProcess.nowExecutingPath).pathOnly; // @@ -101,20 +51,26 @@ MIDIIn.connect("Renoise MIDI Output", "out0"); }); postln(""); // ---------------------------------------------------------------------| + + // osc connection to zarquon (local?) + ~zarquOsc = NetAddr.new("zarquon", 12000); + // what are the files? ~files = List[ - "sdefs.scd", // SynthDef definitions - "snd_lines.scd", // converting Si spectra lines to sound - "gui_core.scd", // basic general GUI setup - "gui_chaos.scd", // chaos tab - "gui_granul.scd", // + "sdefs.scd", // SynthDef definitions + "snd_lines.scd", // converting Si spectra lines to sound + "midiosc.scd", // midi & osc functions + "gui_core.scd", // basic general GUI setup + "gui_chaos.scd", // chaos tab + "gui_granul.scd", // granulators "gui_main.scd" ]; // for each file in list, load/execute it ~files.do({|item, i| this.executeFile(dir +/+ item) }); + } ) diff --git a/scd/gui_core.scd b/scd/gui_core.scd index f9635c1..08d80c6 100644 --- a/scd/gui_core.scd +++ b/scd/gui_core.scd @@ -58,7 +58,7 @@ w.layout.margins = 2; ~pager.layout.margins = 1; // CREATE TABS --------------------------------------------------------------- -~tabs = List["chaos", "granul", "players", "processing", "main"]; +~tabs = List["main", "chaos", "granul", "players", "processing"]; ~tab_btns = List(); ~tab_views = List(); ~tab_names = Dictionary.new; diff --git a/scd/gui_main.scd b/scd/gui_main.scd index 0be88a8..1519df0 100644 --- a/scd/gui_main.scd +++ b/scd/gui_main.scd @@ -15,7 +15,7 @@ nil, - VLayout( + HLayout( nil, Button() @@ -40,7 +40,29 @@ }) .minHeight_(70).minWidth_(70), + Button().minHeight_(70).minWidth_(70) + .states_([ ["Test pattern"], ["Test pattern", Color.gray(0.2), Color.grey(0.8)] ]) + .mouseDownAction_({ | state | + switch(state.value, + 0, { postln("~~~ test pattern on!"); + ~zarquOsc.sendMsg("/sc", "testPatternToggle", 1); }, + 1, { postln("~~~ test pattern off!"); + ~zarquOsc.sendMsg("/sc", "testPatternToggle", 0); } + ); + }), - nil), - nil); + Button().minHeight_(70).minWidth_(70) + .states_([ ["Test picture"], ["Test picture", Color.gray(0.2), Color.grey(0.8)] ]) + .mouseDownAction_({ | state | + switch(state.value, + 0, { postln("~~~ test picture on!"); + ~zarquOsc.sendMsg("/sc", "testPictureToggle", 1); }, + 1, { postln("~~~ test pattern off!"); + ~zarquOsc.sendMsg("/sc", "testPictureToggle", 0); } + ); + }), + nil + ), + nil +);