FurryPinkBoxxx69

(This is the version that I wanted to present to you for my final. This version does not contain the lip-sync. Below, under the “continue reading,” is the version containing the lip-sync.)

So for this project I wanted to create a video inspired by John Waters and I personally believe that I was very successful. Originally I was gonna use camera effects to manipulate the video, but I was told by my professor it needed to be more interactive. I will have the codes I was going to use below. I am not the best when it comes to coding so for me I decided to keep it very simplistic. SO, after being told to make it more interactive, I decided to make a video player that you can load any video into and play, fast-forward and rewind. I am extremely happy with how my video came out and I wouldn’t do anything different if I had the chance.

Here is FurryPinkBoxxx69’s YouTube channel 😀

https://www.youtube.com/channel/UCZtdRyUtNQMX1HJsE7KolXQ/feed?activity_view=3

 

Here are codes I was going to use…

This first one is a glitch overlay effect that I was going to overlay in post production.

size(600,600);
background(255);

for(float x=0 ;x<600 ;x++){
for(float y=random(600) ;y<600 ;y++){
stroke (random(255),random(255),random(255)) ;
point(x,y) ;
}
}

This one was going to be use as an effect as my main character was super drunk. This makes the cam randomly jump around the screen.
import processing.video.*;

Capture cam;

void setup() {
size(600, 300);
cam = new Capture(this, 320, 240, 30);
cam.start();
}

void draw() {
if(cam.available()) {
cam.read();
}
image(cam, random(width), random(height));
}

This one was going to be used after she drinks the smoothie to show an energy change. This makes the camera glitchy.

import processing.video.*;
import java.util.*;

Capture cam;

PImage img,
origImg;

int cellsize = 2,
cols, rows;
int glitchAmount = 50,
glitchDegree = 1000;

Integer[] glitchPosX = new Integer[glitchDegree],
glitchPosY = new Integer[glitchDegree],
glitch = new Integer[glitchDegree];

void setup()
{
size(640, 360, P3D);
cols = width/cellsize;
rows = height/cellsize;
img = createImage(width, height, RGB);
origImg = createImage(width, height, RGB);

for(int i = 0; i < glitchDegree; i++) {
glitchPosX[i] = random(20, img.width);
glitchPosY[i] = random(0, img.height);
glitch[i] = random(100, glitchAmount);
}

String[] cameras = Capture.list();

if (cameras.length == 0){
println(“no cameras available”);
exit();
} else {
println(“cameras available:”);
for (int i = 0; i<cameras.length; i++){
//println(cameras[i]);
}

cam = new Capture(this, cameras[3]);
cam.start();
}
}

void draw()
{
if (cam.available() == true){
img.copy(cam, 5, 10, cam.width, cam.height, 2, 7, cam.width, cam.height);
img.updatePixels();
cam.read();
}

cam.loadPixels();
img.loadPixels();
System.arraycopy(img.pixels, 0, origImg.pixels, 0, img.pixels.length);
for ( int i = 0; i < cols;i++) {

for ( int j = 0; j < rows;j++) {
int x = i*cellsize + cellsize/6,
y = j*cellsize + cellsize/2,
loc = x + y*width;
color c = img.pixels[loc];

img.pixels[loc] = ((byte)red(img.pixels[loc]) & 0xFDEEF4) |
((byte)green(img.pixels[loc]) & 0xFDEEF4) |
((byte)blue(img.pixels[loc]) & 0xFDEEF4);

}
}

for(int i = 0; i < 8; i++) {
int wh = img.pixels.length – i,
start1 = (int)random(20,wh),
start2 = (int)random(0,wh),
amount = (int)random(Math.min(wh, wh – Math.max(start1, start2)));

System.arraycopy(img.pixels, start1 + 3, img.pixels, start2 + i, amount);
}

for(int i = 0; i < glitchDegree; i++) {
int x = glitchPosX[i],
y = glitchPosY[i],
loc = x + y*width,
gLength = glitch[i];

while(gLength + loc >= img.pixels.length) {
gLength–;
loc = 100;
}

System.arraycopy(img.pixels, loc, origImg.pixels, loc, gLength);
}

img.updatePixels();
origImg.updatePixels();

image(origImg, 2, 0);
}

int random(int min,int max) {

return (min + (int)(Math.random() * ((max – min) + 10)));
}

The last one I was going to use makes selected keys in a video become a solid color by clicking on them with the mouse. This is the code I used for my last project as well.

import processing.video.*;

int numPixels;
Capture video;
int keyColor = HSB;
int keyR = (keyColor >> 16) & 0xFF;
int keyG = (keyColor >> 8) & 0xFF;
int keyB = keyColor & 0xFF;

int thresh = 100; // tolerance of
void setup() {

size(640, 480);

video = new Capture(this, width, height, 24);
video.start();
numPixels = video.width * video.height;
}

void draw() {
if (video.available()) {
background(255,23,0);
loadPixels();
video.read(); // Read a new video frame
video.loadPixels(); // Make the pixels of video available

for (int i = 0; i < numPixels; i++) { // For each pixel in the video frame…
// Fetch the current color in that location
color currColor = video.pixels[i];
int currR = (currColor >> 16) & 0xFF;
int currG = (currColor >> 8) & 0xFF;
int currB = currColor & 0xFF;

// Compute the difference of the red, green, and blue values
int diffR = abs(currR – keyR);
int diffG = abs(currG – keyG);
int diffB = abs(currB – keyB);

// Render the pixels wich are not the close to the keyColor to the screen

if((diffR + diffG + diffB)> thresh){
pixels[i] = video.pixels[i];
}
}
updatePixels(); // Updates pixels when clicked somewhere else
}
}
void mousePressed() {
keyColor = get(mouseX, mouseY);
keyR = (keyColor >> 16) & 0xFF;
keyG = (keyColor >> 8) & 0xFF;
keyB = keyColor & 0xFF;
}

Here is my video played code that I ended up using because it is more interactive. Like I said, its very simple but it gets the job done 😀

import processing.video.*;

String PATH = “JasonFINAL.mp4”;
Movie mov;
int newFrame= 0;
boolean speedSet = false;
boolean once = true;
float rewind = 0;
float pause = 2;

void setup() {
size(1280, 720);
frameRate(30);
mov = new Movie(this, PATH);
mov.play();
mov.volume(100);
mov. jump (0);
mov.pause();
mov.loop();
}
void movieEvent(Movie m) {
m.read();
if (speedSet == true) {
speedSet = false;
}
}
void draw() {
image(mov, 0, 0, width, height);
fill(255);

float newSpeed;
mov.speed(rewind);

}

void keyPressed() {
if (keyCode == LEFT){
rewind = -1.0;
}
if(keyCode == RIGHT){
rewind = +2.0;
}
if(keyCode == UP){
rewind = 1.0;
}
if(keyCode == DOWN){
rewind = +7.0;
}
}

About tylerjamesxo

Summary A few sentences long. Should include: Who are you? What is your focus/? What do you aspire to? Whatwill be found in this portfolio (in broad strokes)? Check for spelling, grammar, capitalization, etc. Spend some time refining this. Should NOT include: Information not relevant to this portfolio (“I have a brother named Steve, and a fish named Jimmy”) Informal language (“im TOTES into teh database programming!!1!”) ‘shout outs’ (“Hey Jimmy! Say hi to mom for me!”) Think about the tone you want to present publicly and to your faculty. After your summary, list the following categories: Software expertise [list all software in which you are proficient] Related Work [Work or internships related to DMA. What was your job title? Where? When?] Exhibitions [Any time your work has exhibited- public screenings, gallery shows, etc. What? When? Where?] Publications [Any of your images or writing that has been published. What? When? Where?] Conferences [Any conferences you’ve attended. What? When? Where? If you presented, also post the title of the presentation. Organizations [Off-campus organizations you are a member of. Do you hold a special position? President, Treasurer, etc?] Clubs [Campus clubs you are a part of. Do you hold a special position? President, Treasurer, etc?] Volunteering [Any community service or volunteer events you’ve been involved with] List all of these categories, even if some of them are blank for now. Make it your goal to fill out something in each category.
This entry was posted in Research, Time-Based, Uncategorized and tagged , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s