add processing files and upgrade notes
parent
8aca939bb9
commit
dae4eef298
|
@ -2,7 +2,7 @@
|
|||
|
||||
`(maj 2023)`
|
||||
|
||||
## general
|
||||
## general/jitakami
|
||||
|
||||
- jitakami/processing midi(values 0-127)->osc values (0-1000?) (one day)
|
||||
- jitakami/p5: titles in source instead of images?
|
||||
|
@ -14,7 +14,7 @@
|
|||
add:
|
||||
- bass/kick
|
||||
- percusion?
|
||||
- pads?
|
||||
- pads
|
||||
|
||||
|
||||
## INTERRUPT
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
This file is part of "Interface Fractures IV - Q".
|
||||
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.
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
autoSnap.pde
|
||||
|
||||
*/
|
||||
|
||||
void autoSnap(boolean render) { // -------------------------------------
|
||||
if (render) {
|
||||
// auto-save snapshots
|
||||
if (frameCount == 1000) {
|
||||
saveFrame("../../dev/snapshots/"
|
||||
+ year() + nf(month(),2)
|
||||
+ nf(day(),2)
|
||||
+ nf(hour(),2)
|
||||
+ nf(minute(),2)
|
||||
+ nf(second(),2)
|
||||
+ "_.png");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
This file is part of "Interface Fractures IV - Q".
|
||||
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.
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
displayFps.pde
|
||||
|
||||
*/
|
||||
|
||||
void displayFps(boolean render) { // -----------------------------------
|
||||
if (render){
|
||||
// Display Fps
|
||||
rectMode(CORNER);
|
||||
colorMode(RGB, 100, 100, 100, 100);
|
||||
|
||||
noStroke();
|
||||
fill(0,0,0,100);
|
||||
rect(2, 2, 40, 18);
|
||||
|
||||
fill(100, 100, 100, 100);
|
||||
textFont(fpsFont);
|
||||
textSize(12);
|
||||
textAlign(LEFT);
|
||||
text(round(frameRate) + "fps", 10, 16, 5);}
|
||||
}
|
|
@ -0,0 +1,119 @@
|
|||
/*
|
||||
This file is part of "Interface Fractures III - Silicon".
|
||||
Copyright (c) 2015 Luka Prinčič, All rights reserved.
|
||||
This program is free software distributed under
|
||||
GNU General Public Licence. See COPYING for more info.
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
drawCurvesfly.pde
|
||||
|
||||
*/
|
||||
|
||||
|
||||
void drawFlylines( boolean render, // should we render or not?
|
||||
int curvesNum,
|
||||
int pixBank, int pixId,
|
||||
float speed, float direction, float sensitivity,
|
||||
float brightDirection,
|
||||
float rotation, float brightRotation,
|
||||
int curveHue, int curveSatur, int curveBright,
|
||||
int curveAlpha, float curveBrightAlpha,
|
||||
int lineLength, float brightLength, int strokeWeight,
|
||||
int pixHue, int pixSatur, int pixBright, int pixAlpha
|
||||
)
|
||||
{
|
||||
if (render) {
|
||||
|
||||
colorMode(HSB, 127, 127, 127, 127);
|
||||
blendMode(BLEND); // reset blend mode just in case
|
||||
textureMode(IMAGE);
|
||||
|
||||
// curvesNum = int(map(float(curvesNum), 0, 127, 0, 7000));
|
||||
speed = speed * 0.002;
|
||||
brightDirection = map(brightDirection, 0, 127, -5, 5);
|
||||
brightRotation = map(brightRotation, 0, 127, 0, 7);
|
||||
curveBrightAlpha = map(curveBrightAlpha, 0, 127, 0, 1);
|
||||
|
||||
pixBank = min(pixBank, imgPool.length - 1);
|
||||
pixId = min(pixId, imgPool[pixBank].length - 1);
|
||||
|
||||
|
||||
// main loop!
|
||||
for (int i = 0; i < curvesNum; i++) { // for each curve
|
||||
|
||||
// is this the time of creation?
|
||||
if (curveX[i] == 0.0) {
|
||||
if (curveY[i] == 0.0) {
|
||||
curveX[i] = random(width);
|
||||
curveY[i] = random(height);
|
||||
}
|
||||
}
|
||||
|
||||
color curveC = imgPool[pixBank][pixId] // load only full-size HD images!
|
||||
.get(int(curveX[i]), int(curveY[i])); // get color of the pixel
|
||||
float curvePixBrightness = pow(brightness(curveC), 1.8) / 127.0;
|
||||
// maximum: pow(127, 1.8) / 127 = 48.19954
|
||||
// if sensitivity is 0 then speedPixBrightness is a constant 48.2 / 2
|
||||
// speed * (curvePixBrightness * sensitivity) + ((1-sensitivity) * 25))
|
||||
|
||||
float curvDirection = radians(map(direction, 0, 127, 0, 360) + (curvePixBrightness * brightDirection));
|
||||
float cosdir = cos(curvDirection);
|
||||
float sindir = sin(curvDirection);
|
||||
|
||||
float speedPixBrightness = speed * ((curvePixBrightness * sensitivity) + ((1-sensitivity) * 25));
|
||||
|
||||
float lineLengthBri = pow(lineLength * 0.1, 2) * ( (curvePixBrightness * brightLength ) + ((1 - brightLength)*1 ) );
|
||||
//println(curvePixBrightness);
|
||||
|
||||
curveX[i] = curveX[i] + speedPixBrightness * cosdir;
|
||||
curveY[i] = curveY[i] + speedPixBrightness * sindir;
|
||||
|
||||
|
||||
if (curveX[i] > width-1) { // if off-sceen on X-axis
|
||||
curveX[i] = 1; // wrap back
|
||||
curveY[i] = random(height-1); } // randomize Y-axis position
|
||||
else if (curveX[i] < 1) {
|
||||
curveX[i] = width-1;
|
||||
curveY[i] = random(height-1); // randomize Y-axis position
|
||||
}
|
||||
|
||||
if (curveY[i] > height-1) { // if off-sceen on X-axis
|
||||
curveY[i] = 1; // wrap back
|
||||
curveX[i] = random(width-1); } // randomize Y-axis position
|
||||
else if (curveY[i] < 0-1) {
|
||||
curveY[i] = height-1;
|
||||
curveX[i] = random(width-1); // randomize Y-axis position
|
||||
}
|
||||
|
||||
float curveRotation = radians(map(rotation, 0, 127, 0, 180) + (brightRotation * curvePixBrightness) );
|
||||
|
||||
|
||||
// float curveBrightAlphaFact = (brightness(curveC) / 127.0) * curveBrightAlpha;
|
||||
float curveAlphaDest = curveAlpha * (((brightness(curveC) / 127.0)
|
||||
* curveBrightAlpha)
|
||||
+ (1 - curveBrightAlpha));
|
||||
|
||||
pushMatrix();
|
||||
stroke(color(curveHue, curveSatur, curveBright, curveAlphaDest));
|
||||
strokeWeight(strokeWeight);
|
||||
translate(curveX[i], curveY[i]);
|
||||
rotate(curveRotation);
|
||||
line (0, lineLengthBri, 0, -lineLengthBri);
|
||||
popMatrix();
|
||||
|
||||
}
|
||||
|
||||
noStroke();
|
||||
beginShape();
|
||||
texture(imgPool[pixBank][pixId]);
|
||||
tint(pixHue, pixSatur, pixBright, pixAlpha);
|
||||
vertex(0, 0, 0, 0);
|
||||
vertex(width, 0, width, 0);
|
||||
vertex(width, height, width, height);
|
||||
vertex(0, height, 0, height);
|
||||
endShape();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,118 @@
|
|||
/*
|
||||
This file is part of "Interface Fractures III - Silicon".
|
||||
Copyright (c) 2015 Luka Prinčič, All rights reserved.
|
||||
This program is free software distributed under
|
||||
GNU General Public Licence. See COPYING for more info.
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
drawImageBlender.pde
|
||||
|
||||
*/
|
||||
|
||||
|
||||
void drawImageBlender(boolean render, // on off
|
||||
int pixBank, int pixId,
|
||||
// PImage iblImg1,
|
||||
int iblNum,
|
||||
float iblX, float iblY, float iblWidth, float iblHeight,
|
||||
float iblRot,
|
||||
float iblSpeedX, float iblSpeedY,
|
||||
float iblSpeedXfactor, float iblSpeedYfactor,
|
||||
//float iblTexX, float iblTexY, // using global array
|
||||
float iblTexWidth, float iblTexHeight,
|
||||
float iblTexSpeedX, float iblTexSpeedY,
|
||||
float iblTexSpeedXfactor, float iblTexSpeedYfactor,
|
||||
int iblH, int iblS, int iblB, int iblA,
|
||||
int iblBflicker,
|
||||
float iblItX, float iblItY,
|
||||
float iblItTexX, float iblItTexY, float iblItRot
|
||||
)
|
||||
|
||||
{
|
||||
if (render) {
|
||||
|
||||
|
||||
pixBank = min(pixBank, imgPool.length - 1);
|
||||
pixId = min(pixId, imgPool[pixBank].length - 1);
|
||||
|
||||
//iblRot = iblRot * 0.1;
|
||||
|
||||
pushMatrix();
|
||||
|
||||
translate(width/2, height/2); // center coordinate system
|
||||
|
||||
// autonomous movement
|
||||
iblSpeedX = 0.1;
|
||||
iblSpeedY = 0.1;
|
||||
iblSpeedX *= iblSpeedXfactor;
|
||||
iblSpeedY *= iblSpeedYfactor;
|
||||
iblX += iblSpeedX;
|
||||
iblY += iblSpeedY;
|
||||
|
||||
if (iblX > width) { iblX = -width; }
|
||||
if (iblX < -width) { iblX = width; }
|
||||
if (iblY > height) { iblY = -height; }
|
||||
if (iblY < -height) { iblY = height; }
|
||||
|
||||
iblTexSpeedX = 0.1;
|
||||
iblTexSpeedY = 0.1;
|
||||
iblTexSpeedX *= iblTexSpeedXfactor;
|
||||
iblTexSpeedY *= iblTexSpeedYfactor;
|
||||
iblTexXY[0] += iblTexSpeedX;
|
||||
iblTexXY[1] += iblTexSpeedY;
|
||||
|
||||
int iblBflicked;
|
||||
if (frameCount % flickCount == 1) { iblBflicked = iblB - iblBflicker; }
|
||||
else { iblBflicked = iblB; }
|
||||
|
||||
colorMode(HSB, 127);
|
||||
|
||||
for (int i=0; i < iblNum; i++) {
|
||||
|
||||
// draw in an independent coordinate system
|
||||
pushMatrix();
|
||||
|
||||
// XY = translate
|
||||
translate(iblX + i*iblItX, iblY + i*iblItY);
|
||||
rotate(iblRot + (i*iblItRot));
|
||||
textureWrap(REPEAT);
|
||||
// draw the quad
|
||||
beginShape();
|
||||
tint(iblH, iblS, iblBflicked, iblA);
|
||||
//tint(200,255,255);
|
||||
// texture(iblImg1);
|
||||
textureMode(IMAGE);
|
||||
texture(imgPool[pixBank][pixId]);
|
||||
|
||||
vertex(-iblWidth, -iblHeight, // X & Y of the vertex
|
||||
width/2 - iblWidth + iblX + iblTexXY[0] + (i*iblItTexX) - iblTexWidth, // X of the texture
|
||||
height/2 - iblHeight + iblY + iblTexXY[1] + (i*iblItTexY) - iblTexHeight); // Y of the texture
|
||||
vertex(iblWidth, -iblHeight,
|
||||
width/2 + iblWidth + iblX + iblTexXY[0] + (i*iblItTexX) + iblTexWidth,
|
||||
height/2 - iblHeight + iblY + iblTexXY[1] + (i*iblItTexY) - iblTexHeight);
|
||||
vertex(iblWidth, iblHeight,
|
||||
width/2 + iblWidth + iblX + iblTexXY[0] + (i*iblItTexX) + iblTexWidth,
|
||||
height/2 + iblHeight + iblY + iblTexXY[1] + (i*iblItTexY) + iblTexHeight);
|
||||
vertex(-iblWidth, iblHeight,
|
||||
width/2 - iblWidth + iblX + iblTexXY[0] + (i*iblItTexX) - iblTexWidth,
|
||||
height/2 + iblHeight + iblY + iblTexXY[1] + (i*iblItTexY) + iblTexHeight);
|
||||
endShape();
|
||||
|
||||
popMatrix(); // end independent coordinate system
|
||||
|
||||
}
|
||||
|
||||
popMatrix();
|
||||
|
||||
/* //** debug ****************************
|
||||
fill(0,125);
|
||||
rect(0, 0, 200, 30);
|
||||
|
||||
fill(255);
|
||||
text(iblTexSpeedXfactor, 5, 30);
|
||||
|
||||
//text(iblSpeedXfactor, 20, 60);
|
||||
*/
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,255 @@
|
|||
/*
|
||||
|
||||
This file is part of "Interface Fractures III - Silicon".
|
||||
Copyright (c) 2015 Luka Prinčič, All rights reserved.
|
||||
This program is free software distributed under
|
||||
GNU General Public Licence. See COPYING for more info.
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
drawPlates.pde
|
||||
|
||||
*/
|
||||
|
||||
void drawPlates( boolean render, // should we render or not?
|
||||
|
||||
int imgAbank, int imgAid,
|
||||
int texAspeed, int texAdirection,
|
||||
int imgATopLeft, int imgATopRight,
|
||||
int imgABotRight, int imgABotLeft,
|
||||
int imgAalpha,
|
||||
int imgAhue, int imgAbright,
|
||||
|
||||
int imgBbank, int imgBid,
|
||||
int texBspeed, int texBdirection,
|
||||
int imgBTopLeft, int imgBTopRight,
|
||||
int imgBBotRight, int imgBBotLeft,
|
||||
int imgBalpha,
|
||||
int imgBhue, int imgBbright,
|
||||
|
||||
int imgCbank, int imgCid,
|
||||
int texCspeed, int texCdirection,
|
||||
int imgCTopLeft, int imgCTopRight,
|
||||
int imgCBotRight, int imgCBotLeft,
|
||||
int imgCalpha,
|
||||
int imgChue, int imgCbright,
|
||||
|
||||
int imgBblendMode, int imgCblendMode,
|
||||
int saturation, // common saturation for all
|
||||
int coordError // glitch texture coordinates - amount of error 0-127 - add random
|
||||
|
||||
)
|
||||
{
|
||||
if (render) {
|
||||
|
||||
blendMode(BLEND); // reset blend mode just in case
|
||||
colorMode(HSB, 127, 127, 127, 127);
|
||||
textureWrap(REPEAT);
|
||||
textureMode(NORMAL);
|
||||
imgAbank = min(imgAbank, imgPool.length - 1);
|
||||
imgBbank = min(imgBbank, imgPool.length - 1);
|
||||
imgCbank = min(imgCbank, imgPool.length - 1);
|
||||
imgAid = min(imgAid, imgPool[imgAbank].length - 1);
|
||||
imgBid = min(imgBid, imgPool[imgBbank].length - 1);
|
||||
imgCid = min(imgCid, imgPool[imgCbank].length - 1);
|
||||
|
||||
|
||||
float textureError = float(coordError) * (1.0/127.0);
|
||||
// float textureError = 1.0/127.0;
|
||||
textureError = textureError * rands[coordError]; //* (5.0/250.0);
|
||||
//println(textureError);
|
||||
|
||||
// imgA ----------------------------------------------
|
||||
// prepare coordinates of all 4 corners for midi input
|
||||
int imgATopLeftX, imgATopLeftY;
|
||||
if (imgATopLeft < 64) {
|
||||
imgATopLeftX = 0;
|
||||
imgATopLeftY = height - int( (float(imgATopLeft) * 0.015625) * height ); }
|
||||
else {
|
||||
imgATopLeftX = int( ((float(imgATopLeft) - 64) * 0.015625) * width );
|
||||
imgATopLeftY = 0; }
|
||||
|
||||
int imgATopRightX, imgATopRightY;
|
||||
if (imgATopRight < 64) {
|
||||
imgATopRightX = width;
|
||||
imgATopRightY = height - int( (float(imgATopRight) / 64) * height ); }
|
||||
else {
|
||||
imgATopRightX = int( width - (((float(imgATopRight) - 64) / 64) * width) );
|
||||
imgATopRightY = 0; }
|
||||
|
||||
int imgABotRightX, imgABotRightY;
|
||||
if (imgABotRight < 64) {
|
||||
imgABotRightX = width;
|
||||
imgABotRightY = int( ((float(imgABotRight) / 64) * height) ); }
|
||||
else {
|
||||
imgABotRightX = int( width - (((float(imgABotRight) - 64) / 64) * width) );
|
||||
imgABotRightY = height; }
|
||||
|
||||
int imgABotLeftX, imgABotLeftY;
|
||||
if (imgABotLeft < 64) {
|
||||
imgABotLeftX = 0;
|
||||
imgABotLeftY = int( (float(imgABotLeft) / 64) * height ); }
|
||||
else {
|
||||
imgABotLeftX = int( ((float(imgABotLeft) - 64) / 64) * width );
|
||||
imgABotLeftY = height; }
|
||||
|
||||
// prepare coordinates of texture using speed and direction
|
||||
float imgATopLeftTexX, imgATopLeftTexY;
|
||||
float imgATopRightTexX, imgATopRightTexY;
|
||||
float imgABotLeftTexX, imgABotLeftTexY;
|
||||
float imgABotRightTexX, imgABotRightTexY;
|
||||
float imgATexSpeed = frameCount * 0.0001 * pow(texAspeed,1.5); // temp
|
||||
float imgATexDirectionRad = radians(float(texAdirection) * 2.83464566929);
|
||||
|
||||
imgATopLeftTexX = 0 + imgATexSpeed * cos(imgATexDirectionRad + textureError); // needs to be tested!!
|
||||
imgATopLeftTexY = 0 + imgATexSpeed * sin(imgATexDirectionRad + textureError);
|
||||
imgATopRightTexX = 1 + imgATexSpeed * cos(imgATexDirectionRad);
|
||||
imgATopRightTexY = 0 + imgATexSpeed * sin(imgATexDirectionRad);
|
||||
imgABotRightTexX = 1 + imgATexSpeed * cos(imgATexDirectionRad);
|
||||
imgABotRightTexY = 1 + imgATexSpeed * sin(imgATexDirectionRad);
|
||||
imgABotLeftTexX = 0 + imgATexSpeed * cos(imgATexDirectionRad);
|
||||
imgABotLeftTexY = 1 + imgATexSpeed * sin(imgATexDirectionRad);
|
||||
|
||||
// color
|
||||
tint(imgAhue, saturation, imgAbright, imgAalpha);
|
||||
|
||||
beginShape();
|
||||
texture(imgPool[imgAbank][imgAid]);
|
||||
vertex(imgATopLeftX, imgATopLeftY, imgATopLeftTexX, imgATopLeftTexY);
|
||||
vertex(imgATopRightX, imgATopRightY, imgATopRightTexX, imgATopRightTexY);
|
||||
vertex(imgABotRightX, imgABotRightY, imgABotRightTexX, imgABotRightTexY);
|
||||
vertex(imgABotLeftX, imgABotLeftY, imgABotLeftTexX, imgABotLeftTexY);
|
||||
endShape();
|
||||
|
||||
// imgB ----------------------------------------------
|
||||
// prepare coordinates of all 4 corners for midi input
|
||||
int imgBTopLeftX, imgBTopLeftY;
|
||||
if (imgBTopLeft < 64) {
|
||||
imgBTopLeftX = 0;
|
||||
imgBTopLeftY = height - int( (float(imgBTopLeft) * 0.015625) * height );
|
||||
}
|
||||
else {
|
||||
imgBTopLeftX = int( ((float(imgBTopLeft) - 64) * 0.015625) * width );
|
||||
imgBTopLeftY = 0; }
|
||||
|
||||
int imgBTopRightX, imgBTopRightY;
|
||||
if (imgBTopRight < 64) {
|
||||
imgBTopRightX = width;
|
||||
imgBTopRightY = height - int( (float(imgBTopRight) / 64) * height ); }
|
||||
else {
|
||||
imgBTopRightX = int( width - (((float(imgBTopRight) - 64) / 64) * width) );
|
||||
imgBTopRightY = 0; }
|
||||
|
||||
int imgBBotRightX, imgBBotRightY;
|
||||
if (imgBBotRight < 64) {
|
||||
imgBBotRightX = width;
|
||||
imgBBotRightY = int( ((float(imgBBotRight) / 64) * height) ); }
|
||||
else {
|
||||
imgBBotRightX = int( width - (((float(imgBBotRight) - 64) / 64) * width) );
|
||||
imgBBotRightY = height; }
|
||||
|
||||
int imgBBotLeftX, imgBBotLeftY;
|
||||
if (imgBBotLeft < 64) {
|
||||
imgBBotLeftX = 0;
|
||||
imgBBotLeftY = int( (float(imgBBotLeft) / 64) * height ); }
|
||||
else {
|
||||
imgBBotLeftX = int( ((float(imgBBotLeft) - 64) / 64) * width );
|
||||
imgBBotLeftY = height; }
|
||||
|
||||
// prepare coordinates of texture using speed and direction
|
||||
float imgBTopLeftTexX, imgBTopLeftTexY;
|
||||
float imgBTopRightTexX, imgBTopRightTexY;
|
||||
float imgBBotLeftTexX, imgBBotLeftTexY;
|
||||
float imgBBotRightTexX, imgBBotRightTexY;
|
||||
float imgBTexSpeed = frameCount * 0.0001 * pow(texBspeed,1.5); // temp
|
||||
float imgBTexDirectionRad = radians(float(texBdirection) * 2.83464566929);
|
||||
|
||||
imgBTopLeftTexX = 0 + imgBTexSpeed * cos(imgBTexDirectionRad);
|
||||
imgBTopLeftTexY = 0 + imgBTexSpeed * sin(imgBTexDirectionRad);
|
||||
imgBTopRightTexX = 1 + imgBTexSpeed * cos(imgBTexDirectionRad);
|
||||
imgBTopRightTexY = 0 + imgBTexSpeed * sin(imgBTexDirectionRad);
|
||||
imgBBotRightTexX = 1 + imgBTexSpeed * cos(imgBTexDirectionRad);
|
||||
imgBBotRightTexY = 1 + imgBTexSpeed * sin(imgBTexDirectionRad);
|
||||
imgBBotLeftTexX = 0 + imgBTexSpeed * cos(imgBTexDirectionRad);
|
||||
imgBBotLeftTexY = 1 + imgBTexSpeed * sin(imgBTexDirectionRad);
|
||||
|
||||
// color
|
||||
tint(imgBhue, saturation, imgBbright, imgBalpha);
|
||||
switchBlendMode(imgBblendMode);
|
||||
|
||||
beginShape();
|
||||
texture(imgPool[imgBbank][imgBid]);
|
||||
vertex(imgBTopLeftX, imgBTopLeftY, imgBTopLeftTexX, imgBTopLeftTexY);
|
||||
vertex(imgBTopRightX, imgBTopRightY, imgBTopRightTexX, imgBTopRightTexY);
|
||||
vertex(imgBBotRightX, imgBBotRightY, imgBBotRightTexX, imgBBotRightTexY);
|
||||
vertex(imgBBotLeftX, imgBBotLeftY, imgBBotLeftTexX, imgBBotLeftTexY);
|
||||
endShape();
|
||||
|
||||
|
||||
// imgC ----------------------------------------------
|
||||
// prepare coordinates of all 4 corners for midi input
|
||||
int imgCTopLeftX, imgCTopLeftY;
|
||||
if (imgCTopLeft < 64) {
|
||||
imgCTopLeftX = 0;
|
||||
imgCTopLeftY = height - int( (float(imgCTopLeft) * 0.015625) * height );
|
||||
}
|
||||
else {
|
||||
imgCTopLeftX = int( ((float(imgCTopLeft) - 64) * 0.015625) * width );
|
||||
imgCTopLeftY = 0; }
|
||||
|
||||
int imgCTopRightX, imgCTopRightY;
|
||||
if (imgCTopRight < 64) {
|
||||
imgCTopRightX = width;
|
||||
imgCTopRightY = height - int( (float(imgCTopRight) / 64) * height ); }
|
||||
else {
|
||||
imgCTopRightX = int( width - (((float(imgCTopRight) - 64) / 64) * width) );
|
||||
imgCTopRightY = 0; }
|
||||
|
||||
int imgCBotRightX, imgCBotRightY;
|
||||
if (imgCBotRight < 64) {
|
||||
imgCBotRightX = width;
|
||||
imgCBotRightY = int( ((float(imgCBotRight) / 64) * height) ); }
|
||||
else {
|
||||
imgCBotRightX = int( width - (((float(imgCBotRight) - 64) / 64) * width) );
|
||||
imgCBotRightY = height; }
|
||||
|
||||
int imgCBotLeftX, imgCBotLeftY;
|
||||
if (imgCBotLeft < 64) {
|
||||
imgCBotLeftX = 0;
|
||||
imgCBotLeftY = int( (float(imgCBotLeft) / 64) * height ); }
|
||||
else {
|
||||
imgCBotLeftX = int( ((float(imgCBotLeft) - 64) / 64) * width );
|
||||
imgCBotLeftY = height; }
|
||||
|
||||
// prepare coordinates of texture using speed and direction
|
||||
float imgCTopLeftTexX, imgCTopLeftTexY;
|
||||
float imgCTopRightTexX, imgCTopRightTexY;
|
||||
float imgCBotLeftTexX, imgCBotLeftTexY;
|
||||
float imgCBotRightTexX, imgCBotRightTexY;
|
||||
float imgCTexSpeed = frameCount * 0.0001 * pow(texCspeed,1.5); // temp
|
||||
float imgCTexDirectionRad = radians(float(texCdirection) * 2.83464566929);
|
||||
|
||||
imgCTopLeftTexX = 0 + imgCTexSpeed * cos(imgCTexDirectionRad);
|
||||
imgCTopLeftTexY = 0 + imgCTexSpeed * sin(imgCTexDirectionRad);
|
||||
imgCTopRightTexX = 1 + imgCTexSpeed * cos(imgCTexDirectionRad);
|
||||
imgCTopRightTexY = 0 + imgCTexSpeed * sin(imgCTexDirectionRad);
|
||||
imgCBotRightTexX = 1 + imgCTexSpeed * cos(imgCTexDirectionRad);
|
||||
imgCBotRightTexY = 1 + imgCTexSpeed * sin(imgCTexDirectionRad);
|
||||
imgCBotLeftTexX = 0 + imgCTexSpeed * cos(imgCTexDirectionRad);
|
||||
imgCBotLeftTexY = 1 + imgCTexSpeed * sin(imgCTexDirectionRad);
|
||||
|
||||
// color
|
||||
tint(imgChue, saturation, imgCbright, imgCalpha);
|
||||
switchBlendMode(imgCblendMode);
|
||||
|
||||
beginShape();
|
||||
texture(imgPool[imgCbank][imgCid]);
|
||||
vertex(imgCTopLeftX, imgCTopLeftY, imgCTopLeftTexX, imgCTopLeftTexY);
|
||||
vertex(imgCTopRightX, imgCTopRightY, imgCTopRightTexX, imgCTopRightTexY);
|
||||
vertex(imgCBotRightX, imgCBotRightY, imgCBotRightTexX, imgCBotRightTexY);
|
||||
vertex(imgCBotLeftX, imgCBotLeftY, imgCBotLeftTexX, imgCBotLeftTexY);
|
||||
endShape();
|
||||
|
||||
blendMode(BLEND);
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,105 @@
|
|||
/*
|
||||
|
||||
This file is part of "Interface Fractures III - Silicon".
|
||||
Copyright (c) 2015 Luka Prinčič, All rights reserved.
|
||||
This program is free software distributed under
|
||||
GNU General Public Licence. See COPYING for more info.
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
tiles.pde
|
||||
|
||||
*/
|
||||
// TILES - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
/* TODO:
|
||||
- different zooms (random?)
|
||||
- better rotation
|
||||
- multiple instances of the same thing - with
|
||||
different texture & some parameters + parameterize
|
||||
|
||||
- zoom variations
|
||||
- ?amount of speed variations accross tiles
|
||||
*/
|
||||
|
||||
void drawTiles( boolean render, // should we render or not?
|
||||
int tilesBgHue, int tilesBgSat, int tilesBgBri,
|
||||
int tilesHue, int tilesSat, int tilesBri,
|
||||
//color bgfill, // backgorund color
|
||||
//!!color tilecolor, // tile color
|
||||
int huedist, // tile color distance for interpolation
|
||||
int blendMode, // blending mode of tiles
|
||||
int numx, // number of tiles on X
|
||||
int numy, // number of tiles on Y
|
||||
int texBank,
|
||||
int texNum,
|
||||
float texSpeedX,
|
||||
float texSpeedY,
|
||||
float overlap )
|
||||
{
|
||||
if (render) {
|
||||
|
||||
colorMode(HSB, 127, 127, 127, 127);
|
||||
blendMode(BLEND);
|
||||
color bgfill = color(tilesBgHue, tilesBgSat, tilesBgBri);
|
||||
color tilecolor = color(tilesHue, tilesSat, tilesBri);
|
||||
|
||||
fill(bgfill);
|
||||
noStroke();
|
||||
rectMode(CORNER);
|
||||
rect(0, 0, width, height);
|
||||
switchBlendMode(blendMode); // blendMode function using integers
|
||||
|
||||
texBank = min(texBank, imgPool.length - 1);
|
||||
texNum = min(texNum, imgPool[texBank].length - 1);
|
||||
|
||||
texSpeedX *= 0.01;
|
||||
texSpeedY *= 0.01;
|
||||
texX += sq(sq(texSpeedX));
|
||||
texY += sq(sq(texSpeedY));
|
||||
|
||||
numx = max(1, numx);
|
||||
numy = max(1, numy);
|
||||
float numxfact = 1 / float(numx);
|
||||
float numyfact = 1 / float(numy);
|
||||
float aspectRatio = (height / float(numy)) / (width / float(numx));
|
||||
|
||||
float offsetPerc = overlap * (300/127);
|
||||
|
||||
float uniZoom = numxfact * (float(width)/1024);
|
||||
|
||||
float offsetX = width * numxfact * offsetPerc * 0.01;
|
||||
float offsetY = height * numyfact * offsetPerc * 0.01;
|
||||
float texoffsetX = 1 + 0.01 * offsetPerc ;
|
||||
float texoffsetY = texoffsetX;
|
||||
|
||||
float huefactor = float(huedist) / (numx * numy);
|
||||
|
||||
for (int nx=0; nx < numx; nx++) {
|
||||
|
||||
for (int ny=0; ny < numy; ny++) {
|
||||
|
||||
int tileID = nx * numy + ny;
|
||||
float randX = rands[ (tileID % rands.length) ] * 0.01;
|
||||
float randY = rands[ ((tileID + 50) % rands.length) ] * 0.01;
|
||||
float newhue = hue(tilecolor) + huefactor * tileID;
|
||||
tint(newhue, saturation(tilecolor), brightness(tilecolor), alpha(tilecolor));
|
||||
textureWrap(REPEAT);
|
||||
textureMode(NORMAL);
|
||||
|
||||
beginShape();
|
||||
|
||||
texture(imgPool[texBank][texNum]);
|
||||
vertex(width * numxfact * nx - offsetX, height * numyfact * ny - offsetY, 0 + texX * randX, 0 + texY * randY);
|
||||
vertex(width * numxfact * (nx + 1) + offsetX, height * numyfact * ny - offsetY, 1 * uniZoom * texoffsetX + texX * randX, 0 + texY * randY);
|
||||
vertex(width * numxfact * (nx + 1) + offsetX, height * numyfact * (ny + 1) + offsetY, 1 * uniZoom * texoffsetX + texX * randX, aspectRatio * uniZoom * texoffsetY + texY * randY);
|
||||
vertex(width * numxfact * nx - offsetX, height * numyfact * (ny + 1) + offsetY, 0 + texX * randX, aspectRatio * uniZoom * texoffsetY + texY * randY);
|
||||
|
||||
endShape();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
|
||||
This file is part of "Interface Fractures III - Silicon".
|
||||
Copyright (c) 2015 Luka Prinčič, All rights reserved.
|
||||
This program is free software distributed under
|
||||
GNU General Public Licence. See COPYING for more info.
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
getImages.pde
|
||||
*/
|
||||
|
||||
// loads all images into an array - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
PImage[][] getImages(String folder) {
|
||||
//ArrayList<ArrayList> getImages(String folder) {
|
||||
|
||||
PImage[][] imgPool; // declare 2D array imgPool
|
||||
//ArrayList<ArrayList> imgPool;
|
||||
|
||||
|
||||
File dir = new File(dataPath(sketchPath() + folder)); // first folder
|
||||
String[] dirlist = dir.list(); // an array of folders (strings)
|
||||
dirlist = sort(dirlist); //
|
||||
//imgPool = new ArrayList<ArrayList>();
|
||||
imgPool = new PImage[dirlist.length][100]; // create 2d array imgPool
|
||||
|
||||
for (int i = 0; i < dirlist.length; i++) {
|
||||
String fulldir = dataPath(sketchPath() + folder + dirlist[i]) + "/";
|
||||
File dir2 = new File(fulldir);
|
||||
String[] filelist = dir2.list(); // an array of image names
|
||||
filelist = sort(filelist);
|
||||
println("\n~~~ IMAGE BANK no." + i + ": " + dirlist[i]);
|
||||
|
||||
if (filelist.length != 0) {
|
||||
imgPool[i] = (PImage[]) expand(imgPool[i], filelist.length);
|
||||
// geez: ^^^^^^^^^^ !!!!!
|
||||
|
||||
for (int j = 0; j < filelist.length; j++) {
|
||||
println(" imgPool[" + i + "][" + j + "]: " + dirlist[i] + " " + filelist[j]);
|
||||
imgPool[i][j] = loadImage(fulldir + filelist[j]);
|
||||
}
|
||||
|
||||
} else {
|
||||
println("No files in this folder: " + fulldir);
|
||||
}
|
||||
}
|
||||
|
||||
println("\n~~~ Done loading images.\n");
|
||||
|
||||
return imgPool;
|
||||
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
|
||||
This file is part of "Interface Fractures III - Silicon".
|
||||
Copyright (c) 2015 Luka Prinčič, All rights reserved.
|
||||
This program is free software distributed under
|
||||
GNU General Public Licence. See COPYING for more info.
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
getVideos.pde
|
||||
*/
|
||||
|
||||
Movie[][] getVideos(String folder) {
|
||||
|
||||
Movie[][] vidPool;
|
||||
|
||||
|
||||
File dir = new File(dataPath(sketchPath() + folder)); // first folder
|
||||
String[] dirlist = dir.list(); // an array of folders (strings)
|
||||
dirlist = sort(dirlist); //
|
||||
|
||||
//println("... dirlist array:");
|
||||
// printArray(dirlist);
|
||||
//println(" from: " + dir);
|
||||
|
||||
//vidPool = new ArrayList<ArrayList>();
|
||||
|
||||
vidPool = new Movie[dirlist.length][100]; // create 2d array imgPool
|
||||
|
||||
for (int i = 0; i < dirlist.length; i++) {
|
||||
//println("here" + dirlist);
|
||||
String fulldir = dataPath(sketchPath() + folder + dirlist[i]) + "/";
|
||||
File dir2 = new File(fulldir);
|
||||
String[] filelist = dir2.list(); // an array of image names
|
||||
filelist = sort(filelist);
|
||||
println("\n~~~ VIDEO BANK no." + i + ": " + dirlist[i]);
|
||||
|
||||
if (filelist.length != 0) {
|
||||
vidPool[i] = (Movie[]) expand(vidPool[i], filelist.length);
|
||||
// geez: ^^^^^^^^^^ !!!!!
|
||||
|
||||
for (int j = 0; j < filelist.length; j++) {
|
||||
println("___ vidPool[" + i + "][" + j + "]: " + dirlist[i] + " " + filelist[j]);
|
||||
vidPool[i][j] = new Movie(this, fulldir + filelist[j]);
|
||||
|
||||
delay(40);
|
||||
}
|
||||
println("");
|
||||
delay(400);
|
||||
|
||||
} else {
|
||||
println("No files in this folder: " + fulldir);
|
||||
}
|
||||
}
|
||||
|
||||
println("\n~~~ Done loading videos.\n");
|
||||
|
||||
return vidPool;
|
||||
|
||||
|
||||
/* // in setup:
|
||||
|
||||
video = new GLMovie(this, "stuffloor2.mov");
|
||||
video.loop();
|
||||
|
||||
*/
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,318 @@
|
|||
/*
|
||||
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()));
|
||||
//}
|
|
@ -0,0 +1,224 @@
|
|||
/*
|
||||
This file is part of "Interface Fractures IV - Q".
|
||||
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.
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
oscEvent.pde - processes incoming osc messages
|
||||
*/
|
||||
|
||||
void oscEvent(OscMessage theOscMessage) {
|
||||
|
||||
if(theOscMessage.checkTypetag("si")) {
|
||||
oscVal1 = theOscMessage.get(0).stringValue();
|
||||
oscVal2 = float(theOscMessage.get(1).intValue());
|
||||
}
|
||||
if(theOscMessage.checkTypetag("sf")) {
|
||||
oscVal1 = theOscMessage.get(0).stringValue();
|
||||
oscVal2 = theOscMessage.get(1).floatValue();
|
||||
}
|
||||
if(theOscMessage.checkTypetag("ii")) {
|
||||
oscVal1 = str(theOscMessage.get(0).intValue());
|
||||
oscVal2 = theOscMessage.get(1).intValue();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
// direct translation?
|
||||
// SuperCollider direct osc paths
|
||||
if(theOscMessage.checkAddrPattern("/var")==true) {
|
||||
//(oscVal1[]) = oscVal2;
|
||||
}
|
||||
|
||||
|
||||
// SuperCollider direct osc paths
|
||||
if(theOscMessage.checkAddrPattern("/highhat")==true) {
|
||||
|
||||
if(oscVal1.equals( "amp")) { ampColor = oscVal2; println("amp:"+oscVal2); }
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
// OSC patchbay
|
||||
|
||||
// /ctlin - Renoise-midi > SuperCollider-OSC
|
||||
if(theOscMessage.checkAddrPattern("/ctlin")==true) {
|
||||
|
||||
|
||||
// screenClean
|
||||
if(oscVal1.equals( "/screenCleanHue" )) { screenCleanHue = oscVal2 ; }
|
||||
if(oscVal1.equals( "/screenCleanSaturation" )) { screenCleanSaturation = oscVal2 ; }
|
||||
if(oscVal1.equals( "/screenCleanBrightness" )) { screenCleanBrightness = oscVal2 ; }
|
||||
if(oscVal1.equals( "/screenCleanAlpha" )) { screenCleanAlpha = oscVal2 ; }
|
||||
if(oscVal1.equals( "/screenCleanFlickrAmount" )) { screenCleanFlickrAmount = oscVal2 ; }
|
||||
if(oscVal1.equals( "/screenCleanFlickrSpeed" )) { screenCleanFlickrSpeed = oscVal2 ; }
|
||||
|
||||
|
||||
// drawFlylines
|
||||
if(oscVal1.equals( "/drawFlylinesflyToggle" )) { drawFlylinesflyToggle = boolean(int(oscVal2)) ; }
|
||||
if(oscVal1.equals( "/drawFlylinesflyCurvesNum" )) { drawFlylinesflyCurvesNum = int(map(oscVal2, 0, 127, 0, 7000)); }
|
||||
if(oscVal1.equals( "/drawFlylinesflyPixBank" )) { drawFlylinesflyPixBank = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawFlylinesflyPixId" )) { drawFlylinesflyPixId = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawFlylinesflySpeed" )) { drawFlylinesflySpeed = oscVal2 ; }
|
||||
if(oscVal1.equals( "/drawFlylinesflyDirection" )) { drawFlylinesflyDirection = oscVal2 ; }
|
||||
if(oscVal1.equals( "/drawFlylinesSensitivity" )) { drawFlylinesSensitivity = map(oscVal2, 0, 127, 0, 1) ; }
|
||||
if(oscVal1.equals( "/drawFlylinesflyBrightDirection" )) { drawFlylinesflyBrightDirection = oscVal2 ; }
|
||||
if(oscVal1.equals( "/drawFlylinesflyRotation" )) { drawFlylinesflyRotation = oscVal2 ; }
|
||||
if(oscVal1.equals( "/drawFlylinesflyBrightRotation" )) { drawFlylinesflyBrightRotation = oscVal2 ; }
|
||||
if(oscVal1.equals( "/drawFlylinesHue" )) { drawFlylinesHue = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawFlylinesSatur" )) { drawFlylinesSatur = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawFlylinesBright" )) { drawFlylinesBright = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawFlylinesAlpha" )) { drawFlylinesAlpha = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawFlylinesBrightAlpha" )) { drawFlylinesBrightAlpha = oscVal2 ; }
|
||||
if(oscVal1.equals( "/drawFlylinesLineLength" )) { drawFlylinesLineLength = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawFlylinesBrightLength" )) { drawFlylinesBrightLength = map(oscVal2, 0, 127, 0, 1) ; }
|
||||
if(oscVal1.equals( "/drawFlylinesStrokeWeight" )) { drawFlylinesStrokeWeight = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawFlylinesPixHue" )) { drawFlylinesPixHue = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawFlylinesPixSatur" )) { drawFlylinesPixSatur = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawFlylinesPixBright" )) { drawFlylinesPixBright = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawFlylinesPixAlpha" )) { drawFlylinesPixAlpha = int(oscVal2) ; }
|
||||
|
||||
|
||||
|
||||
// drawPlates
|
||||
if(oscVal1.equals( "/drawPlatesToggle" )) { drawPlatesToggle = boolean(int(oscVal2)) ; }
|
||||
|
||||
if(oscVal1.equals( "/drawPlatesimgAbank" )) { drawPlatesimgAbank = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgAid" )) { drawPlatesimgAid = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesTexAspeed" )) { drawPlatesTexAspeed = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesTexAdirection" )) { drawPlatesTexAdirection = int(oscVal2) ; }
|
||||
|
||||
if(oscVal1.equals( "/drawPlatesimgATopLeft" )) { drawPlatesimgATopLeft = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgATopRight" )) { drawPlatesimgATopRight = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgABotRight" )) { drawPlatesimgABotRight = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgABotleft" )) { drawPlatesimgABotleft = int(oscVal2) ; }
|
||||
|
||||
if(oscVal1.equals( "/drawPlatesimgAalpha" )) { drawPlatesimgAalpha = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgAhue" )) { drawPlatesimgAhue = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgAbright" )) { drawPlatesimgAbright = int(oscVal2) ; }
|
||||
|
||||
if(oscVal1.equals( "/drawPlatesimgBbank" )) { drawPlatesimgBbank = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgBid" )) { drawPlatesimgBid = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesTexBspeed" )) { drawPlatesTexBspeed = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesTexBdirection" )) { drawPlatesTexBdirection = int(oscVal2) ; }
|
||||
|
||||
if(oscVal1.equals( "/drawPlatesimgBTopLeft" )) { drawPlatesimgBTopLeft = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgBTopRight" )) { drawPlatesimgBTopRight = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgBBotRight" )) { drawPlatesimgBBotRight = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgBBotleft" )) { drawPlatesimgBBotleft = int(oscVal2) ; }
|
||||
|
||||
if(oscVal1.equals( "/drawPlatesimgBalpha" )) { drawPlatesimgBalpha = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgBhue" )) { drawPlatesimgBhue = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgBbright" )) { drawPlatesimgBbright = int(oscVal2) ; }
|
||||
|
||||
if(oscVal1.equals( "/drawPlatesimgCbank" )) { drawPlatesimgCbank = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgCid" )) { drawPlatesimgCid = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesTexCspeed" )) { drawPlatesTexCspeed = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesTexCdirection" )) { drawPlatesTexCdirection = int(oscVal2) ; }
|
||||
|
||||
if(oscVal1.equals( "/drawPlatesimgCTopLeft" )) { drawPlatesimgCTopLeft = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgCTopRight" )) { drawPlatesimgCTopRight = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgCBotRight" )) { drawPlatesimgCBotRight = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgCBotleft" )) { drawPlatesimgCBotleft = int(oscVal2) ; }
|
||||
|
||||
if(oscVal1.equals( "/drawPlatesimgCalpha" )) { drawPlatesimgCalpha = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgChue" )) { drawPlatesimgChue = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgCbright" )) { drawPlatesimgCbright = int(oscVal2) ; }
|
||||
|
||||
if(oscVal1.equals( "/drawPlatesimgBblendMode" )) { drawPlatesimgBblendMode = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesimgCblendMode" )) { drawPlatesimgCblendMode = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesSaturation" )) { drawPlatesSaturation = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawPlatesCoordError" )) { drawPlatesCoordError = int(oscVal2) ; } // 0-127
|
||||
|
||||
|
||||
// drawTiles
|
||||
if(oscVal1.equals( "/drawTilesToggle" )) { drawTilesToggle = boolean(int(oscVal2)) ; }
|
||||
|
||||
if(oscVal1.equals( "/drawTilesBgHue" )) { drawTilesBgHue = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawTilesBgSat" )) { drawTilesBgSat = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawTilesBgBri" )) { drawTilesBgBri = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawTilesHue" )) { drawTilesHue = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawTilesSat" )) { drawTilesSat = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawTilesBri" )) { drawTilesBri = int(oscVal2) ; }
|
||||
|
||||
if(oscVal1.equals( "/drawTilesHueDistance" )) { drawTilesHueDistance = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawTilesBlendMode" )) { drawTilesBlendMode = int(oscVal2) ; }
|
||||
|
||||
if(oscVal1.equals( "/drawTilesNumX" )) { drawTilesNumX = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawTilesNumY" )) { drawTilesNumY = int(oscVal2) ; }
|
||||
|
||||
if(oscVal1.equals( "/drawTilesTexBank" )) { drawTilesTexBank = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawTilesTexId" )) { drawTilesTexId = int(oscVal2) ; }
|
||||
if(oscVal1.equals( "/drawTilesTexSpeedX" )) { drawTilesTexSpeedX = oscVal2 ; }
|
||||
if(oscVal1.equals( "/drawTilesTexSpeedY" )) { drawTilesTexSpeedY = oscVal2 ; }
|
||||
if(oscVal1.equals( "/drawTilesOverlap" )) { drawTilesOverlap = oscVal2 ; }
|
||||
|
||||
|
||||
// drawImageBlender
|
||||
if(oscVal1.equals( "/drawImageBlenderToggle" )) { drawImageBlenderToggle = boolean(int(oscVal2)) ; } // 130-127 = 3 @ chan2
|
||||
|
||||
if(oscVal1.equals( "/drawImageBlenderBank" )) { drawImageBlenderBank = int(oscVal2) ; } // 131-127 = 4
|
||||
if(oscVal1.equals( "/drawImageBlenderID" )) { drawImageBlenderID = int(oscVal2) ; } //5
|
||||
|
||||
if(oscVal1.equals( "/iblNum" )) { iblNum = int(oscVal2) ; } // 6
|
||||
if(oscVal1.equals( "/iblX" )) { iblX = ((oscVal2-64) / 64.0) * width/2 ; } // 7 int( ((oscVal2-64) / 64.0) * width/2 ); }
|
||||
if(oscVal1.equals( "/iblY" )) { iblY = ((oscVal2-64) / 64.0) * width/2 ; } // 8
|
||||
if(oscVal1.equals( "/iblWidth" )) { iblWidth = oscVal2 * oscVal2 * 0.2 * norm(width, 0, width) ; } // 9 int(oscVal2 * oscVal2 * 0.05 * norm(width, 0, width));
|
||||
if(oscVal1.equals( "/iblHeight" )) { iblHeight = oscVal2 * oscVal2 * 0.1 * norm(height, 0, height) ; } // 10
|
||||
|
||||
if(oscVal1.equals( "/iblRot" )) { iblRot = radians(oscVal2 * 360 / 120) ; } // 11
|
||||
//if(oscVal1.equals( "139" )) { iblSpeedX = oscVal2 ; } // 12
|
||||
//if(oscVal1.equals( "140" )) { iblSpeedY = oscVal2 ; } // 13
|
||||
//if(oscVal1.equals( "141" )) { iblSpeedXfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 14
|
||||
//if(oscVal1.equals( "142" )) { iblSpeedYfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 15
|
||||
|
||||
//if(oscVal1.equals( "143" )) { iblTexX = ((oscVal2 - 64) / 64.0) * width / 2 ; } // 16
|
||||
//if(oscVal1.equals( "144" )) { iblTexY = ((oscVal2 - 64) / 64.0) * height / 2 ; } // 17
|
||||
if(oscVal1.equals( "/iblTexWidth" )) { iblTexWidth = (oscVal2 - 64) * oscVal2 ; } // 18
|
||||
if(oscVal1.equals( "/iblTexHeight" )) { iblTexHeight = (oscVal2 - 64) * oscVal2 ; } // 19
|
||||
|
||||
//if(oscVal1.equals( "147" )) { iblTexSpeedX = oscVal2 ; } // 20
|
||||
//if(oscVal1.equals( "148" )) { iblTexSpeedY = oscVal2 ; } // 21
|
||||
if(oscVal1.equals( "/iblTexSpeedXfactor" )) { iblTexSpeedXfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 22
|
||||
if(oscVal1.equals( "/iblTexSpeedYfactor" )) { iblTexSpeedYfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 23
|
||||
|
||||
if(oscVal1.equals( "/iblH" )) { iblH = int(oscVal2) ; } // 24
|
||||
if(oscVal1.equals( "/iblS" )) { iblS = int(oscVal2) ; } // 25
|
||||
if(oscVal1.equals( "/iblB" )) { iblB = int(oscVal2) ; } // 26
|
||||
if(oscVal1.equals( "/iblA" )) { iblA = int(oscVal2) ; } // 27
|
||||
if(oscVal1.equals( "/iblBflicker" )) { iblBflicker = int(oscVal2) ; } // 28
|
||||
|
||||
if(oscVal1.equals( "/iblItX" )) { iblItX = ((oscVal2-64) * abs(oscVal2-64) * 0.1) ; } // 29
|
||||
if(oscVal1.equals( "/iblItY" )) { iblItY = ((oscVal2-64) * abs(oscVal2-64) * 0.1) ; } // 30
|
||||
if(oscVal1.equals( "/iblItTexX" )) { iblItTexX = oscVal2 * 4 ; } // 31
|
||||
if(oscVal1.equals( "/iblItTexY" )) { iblItTexY = oscVal2 * 4; } // 32
|
||||
if(oscVal1.equals( "/iblItRot" )) { iblItRot = radians(oscVal2) ; } // 33
|
||||
|
||||
|
||||
// playVideo
|
||||
if(oscVal1.equals( "/playVideoToggle" )) { playVideoToggle = boolean(int(oscVal2)); }
|
||||
if(oscVal1.equals( "/playVideoBank" )) { playVideoBank = int(oscVal2); }
|
||||
if(oscVal1.equals( "/playVideoID" )) { playVideoID = int(oscVal2); }
|
||||
if(oscVal1.equals( "/playVideoJump" )) { playVideoJump = int(oscVal2); }
|
||||
if(oscVal1.equals( "/playVideoPausePlay" )) { playVideoPausePlay = boolean(int(oscVal2)); }
|
||||
if(oscVal1.equals( "/playVideoLoop" )) { playVideoPausePlay = boolean(int(oscVal2)); }
|
||||
if(oscVal1.equals( "/playVideoHue" )) { playVideoHue = int(oscVal2); }
|
||||
if(oscVal1.equals( "/playVideoSaturation" )) { playVideoSaturation = int(oscVal2); }
|
||||
if(oscVal1.equals( "/playVideoBrightness" )) { playVideoBrightness = int(oscVal2); }
|
||||
if(oscVal1.equals( "/playVideoAlpha" )) { playVideoAlpha = int(oscVal2); } //
|
||||
if(oscVal1.equals( "/playVideoSpeed" )) { playVideoSpeed = int(oscVal2); } //
|
||||
|
||||
// test picture
|
||||
if(oscVal1.equals( "/testPictureToggle" )) { testPictureToggle = boolean(int(oscVal2)); }
|
||||
}
|
||||
|
||||
// debug:
|
||||
print("### OSC | typetag: " + theOscMessage.typetag() + " " + theOscMessage.addrPattern());
|
||||
println(" " + oscVal1 + " " + oscVal2);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
/*
|
||||
|
||||
This file is part of "Interface Fractures III - Silicon".
|
||||
Copyright (c) 2015 Luka Prinčič, All rights reserved.
|
||||
This program is free software distributed under
|
||||
GNU General Public Licence. See COPYING for more info.
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
playVideo.pde
|
||||
|
||||
*/
|
||||
|
||||
void playVideo( boolean render, // should we render or not?
|
||||
boolean pausePlay, boolean loop,
|
||||
int bank, int id,
|
||||
int hue, int saturation, int brightness, int alpha, int jump, int speed
|
||||
)
|
||||
{
|
||||
if (render) {
|
||||
|
||||
// protect boundaries of vidPool array
|
||||
bank = min(bank, vidPool.length - 1);
|
||||
id = min(id, vidPool[bank].length - 1);
|
||||
|
||||
// play/pause/loop
|
||||
if(pausePlay == true) {
|
||||
vidPool[bank][id].speed(float(speed) / 100);
|
||||
//println("speed: " + speed + " " + (float(speed) / 100));
|
||||
if (loop == true) {
|
||||
vidPool[bank][id].loop();
|
||||
} else {
|
||||
vidPool[bank][id].play();
|
||||
}
|
||||
}
|
||||
|
||||
if(pausePlay == false) {
|
||||
vidPool[bank][id].pause();
|
||||
}
|
||||
|
||||
|
||||
if (jump != 1000) {
|
||||
println("jump: " + jump);
|
||||
vidPool[bank][id].jump(vidPool[bank][id].duration() * (float(jump) / 100));
|
||||
//vidPool[bank][id].read();
|
||||
}
|
||||
|
||||
|
||||
if (vidPool[bank][id].available()) {
|
||||
vidPool[bank][id].read();
|
||||
}
|
||||
|
||||
|
||||
// use/display/texture
|
||||
textureMode(NORMAL);
|
||||
colorMode(HSB, 127);
|
||||
|
||||
beginShape();
|
||||
tint(hue, saturation, brightness, alpha);
|
||||
texture(vidPool[bank][id]);
|
||||
vertex(-3, -3, 1, 1);
|
||||
vertex(width+3, -3, 0, 1);
|
||||
vertex(width+3, height+3, 0, 0);
|
||||
vertex(-3, height+3, 1, 0);
|
||||
endShape();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void jumpVideo(float position, int bank, int id) {
|
||||
|
||||
// protect boundaries of vidPool array
|
||||
bank = min(bank, vidPool.length - 1);
|
||||
id = min(id, vidPool[bank].length - 1);
|
||||
|
||||
// jump to position in the video maped from 0-127
|
||||
vidPool[bank][id].jump(map(position, 0, 127, 0, vidPool[bank][id].duration()));
|
||||
//vidPool[bank][id].read();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
This file is part of "Interface Fractures IV - Q".
|
||||
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.
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
screenClean.pde
|
||||
|
||||
*/
|
||||
|
||||
|
||||
// if screenClean is supposed to "clean" the screen
|
||||
// alpha should always be to the max
|
||||
|
||||
void screenClean( float hue,
|
||||
float saturation,
|
||||
float brightness,
|
||||
float alpha,
|
||||
float flickrAmount,
|
||||
float flickrSpeed )
|
||||
{
|
||||
/*
|
||||
hue = map(hue, 0, 127, 0, 255);
|
||||
saturation = map(saturation, 0, 127, 0, 255);
|
||||
brightness = map(brightness, 0, 127, 0, 255);
|
||||
alpha = map(alpha, 0, 127, 0, 255);
|
||||
*/
|
||||
|
||||
flickrAmount = map(flickrAmount, 0, 127, 0, 1);
|
||||
flickrSpeed = map(flickrSpeed, 0, 127, 1, 120);
|
||||
|
||||
if ((frameCount % int(flickrSpeed)) == 0) {
|
||||
brightness = brightness * flickrAmount;
|
||||
}
|
||||
|
||||
//println(frameCount + " " + flickrSpeed + " " + (frameCount % flickrSpeed));
|
||||
|
||||
colorMode(HSB, 127);
|
||||
color c = color(hue, saturation, brightness, alpha);
|
||||
|
||||
fill(c);
|
||||
noStroke();
|
||||
rectMode(CORNER);
|
||||
// rect(0, 0, width * 2, height);
|
||||
rect(0, 0, width, height);
|
||||
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
// function to shuffle an array of integers
|
||||
void shuffle(int[] a)
|
||||
{
|
||||
int temp, pick;
|
||||
|
||||
for(int i=0; i<a.length; i++)
|
||||
{
|
||||
temp = a[i];
|
||||
pick = (int)random(a.length);
|
||||
a[i] = a[pick];
|
||||
a[pick] = temp;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
|
||||
This file is part of "Interface Fractures III - Silicon".
|
||||
Copyright (c) 2015 Luka Prinčič, All rights reserved.
|
||||
This program is free software distributed under
|
||||
GNU General Public Licence. See COPYING for more info.
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
switchBlendMode.pde
|
||||
*/
|
||||
|
||||
void switchBlendMode(int blendMode)
|
||||
{
|
||||
switch(blendMode) {
|
||||
case 0:
|
||||
blendMode(ADD); // additive blending with white clip: C = min(A*factor + B, 255)
|
||||
break;
|
||||
case 1:
|
||||
blendMode(SUBTRACT); // subtractive blend w/ black clip: C = max(B - A*factor, 0)
|
||||
break;
|
||||
case 2:
|
||||
blendMode(LIGHTEST); // only the lightest colour succeeds: C = max(A*factor, B)
|
||||
break;
|
||||
case 3:
|
||||
blendMode(DARKEST); // only the darkest colour succeeds: C = min(A*factor, B)
|
||||
break;
|
||||
case 4:
|
||||
blendMode(SCREEN); // opposite multiply, uses inverse values of the colors.
|
||||
break;
|
||||
case 5:
|
||||
blendMode(MULTIPLY); // multiply the colors, result will always be darker.
|
||||
break;
|
||||
case 6:
|
||||
blendMode(EXCLUSION); // similar to DIFFERENCE, but less extreme.
|
||||
break;
|
||||
case 7:
|
||||
blendMode(REPLACE); // pixels entirely replace others + don't utilize alpha values
|
||||
break;
|
||||
case 8:
|
||||
blendMode(BLEND); // pixels entirely replace others + don't utilize alpha values
|
||||
break;
|
||||
default:
|
||||
blendMode(BLEND); // linear interp. of colours: C = A*factor + B. Default.
|
||||
break;
|
||||
} // DIFFERENCE: subtract colors from underlying image. NOT SUPPORTED BY P3D!! */
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
/*
|
||||
|
||||
This file is part of "Interface Fractures III - Silicon".
|
||||
Copyright (c) 2015 Luka Prinčič, All rights reserved.
|
||||
This program is free software distributed under
|
||||
GNU General Public Licence. See COPYING for more info.
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
testPicture.pde
|
||||
*/
|
||||
|
||||
|
||||
void testPicture(boolean render) {
|
||||
if (render) {
|
||||
|
||||
blendMode(BLEND);
|
||||
colorMode(RGB, 255);
|
||||
fill(127);
|
||||
stroke(255);
|
||||
strokeWeight(4);
|
||||
|
||||
rectMode(CORNER);
|
||||
rect(1, 1, width-2, height-2);
|
||||
|
||||
ellipse(width/2, height/2, height-4, height-4);
|
||||
|
||||
ellipse(height/4, height/4, height/2-4, height/2-4);
|
||||
ellipse(height/4, 3*height/4, height/2-4, height/2-4);
|
||||
ellipse(width-height/4, height/4, height/2-4, height/2-4);
|
||||
ellipse(width-height/4, 3*height/4, height/2-4, height/2-4);
|
||||
|
||||
line(width/2, 0, width/2, height);
|
||||
line(0, height/2, width, height/2);
|
||||
|
||||
fill(255);
|
||||
rectMode(CENTER);
|
||||
rect(width/2, height/2, width/2, height/6);
|
||||
|
||||
fill(0);
|
||||
textFont(testFont);
|
||||
textSize(50);
|
||||
textAlign(CENTER,CENTER);
|
||||
|
||||
text("trans.fail/jitakami", width/2, height/2,4);
|
||||
|
||||
/* more tests:
|
||||
|
||||
- horizontal and vertical block, moving fast!
|
||||
- flicker test, black&white, 60Hz
|
||||
- color and gray stripes of interpolation
|
||||
|
||||
|
||||
*/
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue