319 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			319 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
/*
 | 
						|
	Copyright (c) 2016 Luka Prinčič, All rights reserved.
 | 
						|
	This program is free software distributed under
 | 
						|
	GNU General Public Licence. See COPYING for more info.
 | 
						|
	- - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
						|
 | 
						|
  jitakami.pde
 | 
						|
    
 | 
						|
                                                                             */
 | 
						|
 | 
						|
 | 
						|
// basic screen settings
 | 
						|
void settings() {
 | 
						|
  fullScreen(P3D, 2);
 | 
						|
  //size(1280, 720, P3D);
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
// load libs
 | 
						|
import oscP5.*; // Open Sound Control
 | 
						|
import netP5.*;
 | 
						|
import processing.video.*;
 | 
						|
//import gohai.glvideo.*;
 | 
						|
 | 
						|
// DECLARATIONS --------------- //
 | 
						|
 | 
						|
// OSC object
 | 
						|
OscP5 oscP5;
 | 
						|
 | 
						|
String oscVal1;
 | 
						|
float oscVal2;
 | 
						|
// temporary
 | 
						|
float ampColor;
 | 
						|
 | 
						|
 | 
						|
// image pool, a 2D array
 | 
						|
PImage[][] imgPool;
 | 
						|
 | 
						|
 | 
						|
// video pool, a 2D array
 | 
						|
Movie[][] vidPool;
 | 
						|
 | 
						|
 | 
						|
// screenClean
 | 
						|
float screenCleanHue, screenCleanSaturation, screenCleanBrightness,
 | 
						|
  screenCleanAlpha, screenCleanFlickrAmount, screenCleanFlickrSpeed;
 | 
						|
 | 
						|
 | 
						|
// drawFlylinesfly
 | 
						|
boolean drawFlylinesflyToggle = false;
 | 
						|
int drawFlylinesflyCurvesNumInit = 7000, // init 
 | 
						|
    drawFlylinesflyCurvesNum = 127, // dynamic
 | 
						|
    drawFlylinesflyPixBank = 0, drawFlylinesflyPixId = 1;
 | 
						|
float drawFlylinesflySpeed = 20, drawFlylinesflyDirection = 0, drawFlylinesSensitivity = 1,
 | 
						|
  drawFlylinesflyBrightDirection = 64, // 0-64-127
 | 
						|
  drawFlylinesflyRotation = 0, drawFlylinesflyBrightRotation = 0;
 | 
						|
 | 
						|
int drawFlylinesHue = 0, drawFlylinesSatur = 0, drawFlylinesBright = 127, drawFlylinesAlpha = 27;
 | 
						|
float drawFlylinesBrightAlpha = 127;
 | 
						|
int drawFlylinesLineLength = 20;
 | 
						|
float drawFlylinesBrightLength = 0;
 | 
						|
int drawFlylinesStrokeWeight = 2;
 | 
						|
int drawFlylinesPixHue = 127, drawFlylinesPixSatur = 127,
 | 
						|
  drawFlylinesPixBright = 127, drawFlylinesPixAlpha = 10;
 | 
						|
float[] curveX = new float[drawFlylinesflyCurvesNumInit];
 | 
						|
float[] curveY = new float[drawFlylinesflyCurvesNumInit];
 | 
						|
 | 
						|
 | 
						|
// drawPlates
 | 
						|
boolean drawPlatesToggle = false;
 | 
						|
 | 
						|
int drawPlatesimgAbank = 0, drawPlatesimgAid = 9;
 | 
						|
int drawPlatesTexAspeed = 1, drawPlatesTexAdirection = 16;
 | 
						|
int drawPlatesimgATopLeft = 64, drawPlatesimgATopRight = 64,
 | 
						|
  	drawPlatesimgABotRight = 64, drawPlatesimgABotleft = 64;
 | 
						|
 | 
						|
int drawPlatesimgAalpha = 127, drawPlatesimgAhue = 0, drawPlatesimgAbright = 127;
 | 
						|
int drawPlatesimgBbank = 0, drawPlatesimgBid = 1;
 | 
						|
int drawPlatesTexBspeed = 1, drawPlatesTexBdirection = 0;
 | 
						|
int drawPlatesimgBTopLeft = 64, drawPlatesimgBTopRight = 64,
 | 
						|
	  drawPlatesimgBBotRight = 64, drawPlatesimgBBotleft = 64;
 | 
						|
 | 
						|
int drawPlatesimgBalpha = 64, drawPlatesimgBhue = 64, drawPlatesimgBbright = 127;
 | 
						|
int drawPlatesimgCbank = 0, drawPlatesimgCid = 2; 
 | 
						|
int drawPlatesTexCspeed = 1, drawPlatesTexCdirection = 96;
 | 
						|
int drawPlatesimgCTopLeft = 64, drawPlatesimgCTopRight = 64,
 | 
						|
	  drawPlatesimgCBotRight = 64, drawPlatesimgCBotleft = 64;
 | 
						|
 | 
						|
int drawPlatesimgCalpha = 64, drawPlatesimgChue = 0, drawPlatesimgCbright = 127;
 | 
						|
int drawPlatesimgBblendMode = 8, drawPlatesimgCblendMode = 8;
 | 
						|
 | 
						|
int drawPlatesSaturation = 0;
 | 
						|
int drawPlatesCoordError = 0;
 | 
						|
 | 
						|
 | 
						|
// tiles
 | 
						|
boolean drawTilesToggle = false;
 | 
						|
int drawTilesBgHue, drawTilesBgSat, drawTilesBgBri = 64, drawTilesHue, drawTilesSat, drawTilesBri = 64;
 | 
						|
int drawTilesHueDistance = 20, drawTilesBlendMode = 0;
 | 
						|
int drawTilesNumX = 3, drawTilesNumY = 3, drawTilesTexBank = 0, drawTilesTexId = 1;
 | 
						|
float drawTilesTexSpeedX = 10, drawTilesTexSpeedY = 10, drawTilesOverlap = 10;
 | 
						|
float texX = 0; // globals?
 | 
						|
float texY = 0;
 | 
						|
 | 
						|
 | 
						|
// image blender
 | 
						|
boolean drawImageBlenderToggle = false;
 | 
						|
int drawImageBlenderBank = 0, drawImageBlenderID = 2, iblNum = 1;
 | 
						|
float iblX = 0, iblY = 0, iblWidth = 600, iblHeight = 100;
 | 
						|
float iblRot; // radians need a float
 | 
						|
float iblSpeedX, iblSpeedY;
 | 
						|
float iblSpeedXfactor = 0, iblSpeedYfactor = 0;
 | 
						|
float[] iblTexXY = new float[2]; // global object for texture coordinates
 | 
						|
float iblTexWidth, iblTexHeight;
 | 
						|
float iblTexSpeedX, iblTexSpeedY;
 | 
						|
float iblTexSpeedXfactor, iblTexSpeedYfactor;
 | 
						|
int iblH, iblS = 0, iblB = 100, iblA = 255; // stroke color / tint
 | 
						|
int iblBflicker = 0; // flicker (Brightness)
 | 
						|
float iblItX = 0, iblItY = 0, iblItTexX = 0, iblItTexY = 0, iblItRot;
 | 
						|
 | 
						|
 | 
						|
// video player
 | 
						|
boolean playVideoToggle = false;
 | 
						|
boolean playVideoPausePlay = true;
 | 
						|
boolean playVideoLoop = false;
 | 
						|
int playVideoBank = 0, playVideoID = 0;
 | 
						|
int playVideoHue, playVideoSaturation, playVideoBrightness,
 | 
						|
  playVideoAlpha, playVideoJump;
 | 
						|
int playVideoSpeed;
 | 
						|
//float playVideoPosition = 0;
 | 
						|
 | 
						|
 | 
						|
// ?
 | 
						|
int flickCount = 2; // 2,3,4 or 5
 | 
						|
 | 
						|
// generate an array of random numbers
 | 
						|
int[] rands = new int[500];
 | 
						|
 | 
						|
// testPicture
 | 
						|
boolean testPictureToggle = false;
 | 
						|
PFont testFont;
 | 
						|
 | 
						|
// fps
 | 
						|
boolean displayFpsToggle = false;
 | 
						|
PFont fpsFont;
 | 
						|
 | 
						|
// regular snapshots / improve: snap when buttonPress(SC-GUI)
 | 
						|
boolean autoSnapToggle = false;
 | 
						|
 | 
						|
 | 
						|
///////////////////////////////////////////////////////////////////////////////
 | 
						|
void setup() { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
						|
  
 | 
						|
  // framerate
 | 
						|
  //frameRate(60); // looks like 60fps by default, see displayFps function
 | 
						|
  //smooth(32);
 | 
						|
 | 
						|
  noCursor();
 | 
						|
  background(0);
 | 
						|
  
 | 
						|
  // setup open sound control
 | 
						|
  println("~~~ starting oscP5 ...");
 | 
						|
  oscP5 = new OscP5(this,12000); // listening at port 12000
 | 
						|
  //oscP5.plug(this,"hhosc","/highhat"); // osc from SuperCollider -> function 'scosc'
 | 
						|
 | 
						|
  // get all textures into an image pool
 | 
						|
  println("\n\n~~~ loading textures into image pool ...\n");
 | 
						|
  imgPool = getImages("/images/");
 | 
						|
 | 
						|
  // get all videos into an video pool
 | 
						|
  println("\n\n~~~ loading videos into videos pool ...\n");
 | 
						|
  vidPool = getVideos("/videos/");
 | 
						|
 | 
						|
  // create an array of random value between -250 and 250
 | 
						|
  for (int i=0; i < 500; i++) { rands[i] = i-250; }
 | 
						|
  shuffle(rands); 
 | 
						|
 | 
						|
  // testPicture font
 | 
						|
	testFont = createFont("Oliver's Barney", 50);
 | 
						|
  
 | 
						|
  // fps
 | 
						|
  fpsFont = createFont("Ubuntu Mono", 12);
 | 
						|
 | 
						|
 | 
						|
  println("~~~ setup() finished. now to the draw() ...");
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
//////////////////////////////////////////////////////////////////////////////
 | 
						|
void draw() { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
						|
 | 
						|
 | 
						|
  // clean screen
 | 
						|
  blendMode(BLEND);
 | 
						|
  screenClean
 | 
						|
    ( screenCleanHue,
 | 
						|
      screenCleanSaturation,
 | 
						|
      screenCleanBrightness,
 | 
						|
      screenCleanAlpha,
 | 
						|
      screenCleanFlickrAmount,
 | 
						|
      screenCleanFlickrSpeed );
 | 
						|
  
 | 
						|
 | 
						|
  drawFlylines
 | 
						|
    ( drawFlylinesflyToggle,
 | 
						|
      drawFlylinesflyCurvesNum,
 | 
						|
      drawFlylinesflyPixBank, drawFlylinesflyPixId,
 | 
						|
      drawFlylinesflySpeed, drawFlylinesflyDirection, drawFlylinesSensitivity,
 | 
						|
      drawFlylinesflyBrightDirection,
 | 
						|
      drawFlylinesflyRotation, drawFlylinesflyBrightRotation,
 | 
						|
      drawFlylinesHue, drawFlylinesSatur, drawFlylinesBright,
 | 
						|
      drawFlylinesAlpha, drawFlylinesBrightAlpha,
 | 
						|
      drawFlylinesLineLength, drawFlylinesBrightLength, drawFlylinesStrokeWeight,
 | 
						|
      drawFlylinesPixHue, drawFlylinesPixSatur, drawFlylinesPixBright, drawFlylinesPixAlpha );
 | 
						|
 | 
						|
 | 
						|
 | 
						|
  drawPlates
 | 
						|
    ( drawPlatesToggle,
 | 
						|
      drawPlatesimgAbank, drawPlatesimgAid,
 | 
						|
      drawPlatesTexAspeed, drawPlatesTexAdirection,
 | 
						|
      drawPlatesimgATopLeft, drawPlatesimgATopRight,
 | 
						|
      drawPlatesimgABotRight, drawPlatesimgABotleft,
 | 
						|
      drawPlatesimgAalpha, drawPlatesimgAhue, drawPlatesimgAbright,
 | 
						|
 | 
						|
      drawPlatesimgBbank, drawPlatesimgBid,
 | 
						|
      drawPlatesTexBspeed, drawPlatesTexBdirection,
 | 
						|
      drawPlatesimgBTopLeft, drawPlatesimgBTopRight,
 | 
						|
      drawPlatesimgBBotRight, drawPlatesimgBBotleft,
 | 
						|
      drawPlatesimgBalpha, drawPlatesimgBhue, drawPlatesimgBbright,
 | 
						|
 | 
						|
      drawPlatesimgCbank, drawPlatesimgCid,
 | 
						|
      drawPlatesTexCspeed, drawPlatesTexCdirection,
 | 
						|
      drawPlatesimgCTopLeft, drawPlatesimgCTopRight,
 | 
						|
      drawPlatesimgCBotRight, drawPlatesimgCBotleft,
 | 
						|
      drawPlatesimgCalpha, drawPlatesimgChue, drawPlatesimgCbright,
 | 
						|
 | 
						|
      drawPlatesimgBblendMode, drawPlatesimgCblendMode, 
 | 
						|
      drawPlatesSaturation,
 | 
						|
      drawPlatesCoordError // 0-127
 | 
						|
      );
 | 
						|
 | 
						|
 | 
						|
  drawTiles
 | 
						|
    ( drawTilesToggle,
 | 
						|
      drawTilesBgHue, drawTilesBgSat, drawTilesBgBri, drawTilesHue, drawTilesSat, drawTilesBri,
 | 
						|
      drawTilesHueDistance,                 // tile hue distance
 | 
						|
      drawTilesBlendMode, // blendMode
 | 
						|
      drawTilesNumX,                // number of drawTiles on X axis
 | 
						|
      drawTilesNumY, // number of drawTiles on Y axis
 | 
						|
      drawTilesTexBank,  // texture bank number
 | 
						|
      drawTilesTexId,  // texture number/id
 | 
						|
      drawTilesTexSpeedX, // texture speed X
 | 
						|
      drawTilesTexSpeedY, // texture speed Y
 | 
						|
      drawTilesOverlap // overlap. 127 = 300%
 | 
						|
      );
 | 
						|
 | 
						|
 | 
						|
  drawImageBlender
 | 
						|
    ( drawImageBlenderToggle,
 | 
						|
      drawImageBlenderBank, drawImageBlenderID,
 | 
						|
      //     iblImg1,
 | 
						|
      iblNum,
 | 
						|
      iblX,  iblY,  iblWidth,  iblHeight,
 | 
						|
      iblRot,
 | 
						|
      iblSpeedX,  iblSpeedY,
 | 
						|
      iblSpeedXfactor,  iblSpeedYfactor,
 | 
						|
      iblTexWidth,  iblTexHeight,
 | 
						|
      iblTexSpeedX,  iblTexSpeedY,
 | 
						|
      iblTexSpeedXfactor,  iblTexSpeedYfactor,
 | 
						|
      iblH,  iblS,  iblB,  iblA,
 | 
						|
      iblBflicker,
 | 
						|
      iblItX,  iblItY,
 | 
						|
      iblItTexX,  iblItTexY,  iblItRot
 | 
						|
      );
 | 
						|
 | 
						|
 | 
						|
 | 
						|
  playVideo
 | 
						|
    ( playVideoToggle,
 | 
						|
      playVideoPausePlay,
 | 
						|
      playVideoLoop,
 | 
						|
      playVideoBank, playVideoID,
 | 
						|
      playVideoHue, playVideoSaturation,
 | 
						|
      playVideoBrightness, playVideoAlpha, playVideoJump, playVideoSpeed
 | 
						|
      //playVideoPosition
 | 
						|
      );
 | 
						|
 | 
						|
  if(playVideoJump != 1000) {
 | 
						|
    playVideoJump = 1000;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
  // draw test picture
 | 
						|
  testPicture(testPictureToggle);
 | 
						|
 | 
						|
  // frames per second
 | 
						|
  displayFps(displayFpsToggle);
 | 
						|
 | 
						|
  // document
 | 
						|
  autoSnap(autoSnapToggle);
 | 
						|
  
 | 
						|
 
 | 
						|
 | 
						|
} ///////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
//void mousePressed() {
 | 
						|
//  vidPool[0][0].jump(map(mouseX, 0, width, 0, vidPool[0][0].duration()));
 | 
						|
//}
 |