Visual Media Project: Interactive Authoring

Emotions and feelings are of a fickle nature, especially for someone with a mental disorder.

https://vimeo.com/189934264

Here is my Visual Media project. Here I took four very different songs with different themes. All these songs make up a certain part of me in a way. Think of them as four emotions and while I can hear them one at a time, often it’s more than one or all at once sometimes. I have Aspergers and when my head fills up with this collective noise it hurts.Like a clutter of loud pitches and low frequencies all shredding my ear drums. My brain actually shuts down to the point where I am no longer able to control my body properly. There is no way to stop the music playing once it starts because I cannot simply mute the world nor can anyone else. The only way I can get this noise in my head and to stop everything. Shut down! A hard reset if you will. It sound very much like a crash computer but that is very how I feel when such noise become too great.

The colors I chose are to mirror the feels of each song

Blue and white  for serendipity and overall calmness

Red Black for Sadistic glee or Insanity

Black and White for Sorrow

Turquoise and alternating Black, White, and Grey for Strength

I want each set of colors to correlate with the song hence the added moving line. They give impact to each note of their own melodies and as such can blend into themselves creating new images or static.

Here is my code:

import org.gamecontrolplus.gui.*;
import org.gamecontrolplus.*;
import net.java.games.input.*;
import ddf.minim.*;
import ddf.minim.analysis.*;

Minim minim;
AudioPlayer song;
FFT fft;
ControlIO control;
Configuration config;
ControlDevice gpad;

float ColorShift;

public void setup() {
size(800, 500);
minim= new Minim(this);

control = ControlIO.getInstance(this);
gpad = control.getMatchedDevice(“controller”);
if (gpad == null) {
println(“No suitable device configured”);
System.exit(-1);
//This will end the programn
}
}

public void draw() {
background(255);

//THE SONGS!!!
boolean Happy = gpad.getButton(“SQUARE”).pressed();
boolean Insane = gpad.getButton(“TRI”).pressed();
boolean Sorrow = gpad.getButton(“CROSS”).pressed();
boolean Strength = gpad.getButton(“CIRCLE”).pressed();

///The Kill Switch
boolean SILENCE = gpad.getButton(“STOP”).pressed();

//Controls to tune to a new song
if (Sorrow == true){
song = minim.loadFile(“Golgari Swarm Music Video (O Death).mp3”, 512);
song.play();
fft = new FFT(song.bufferSize(), song.sampleRate());
fft.forward(song.mix);
ColorShift = 1;
}
if (Insane == true){
song = minim.loadFile(“Foozogz – –Smile!– (Rmx VIP).mp3”, 512);
song.play();
fft = new FFT(song.bufferSize(), song.sampleRate());
fft.forward(song.mix);
ColorShift = 2;
}
if (Happy == true){
song = minim.loadFile(“Elizabeth Mitchell – You are my Sunshine.mp3”, 512);
song.play();
fft = new FFT(song.bufferSize(), song.sampleRate());
fft.forward(song.mix);
ColorShift = 3;
}
if ( Strength == true){
song = minim.loadFile(“Megadeth – Duke Nukem Theme (HD).mp3”, 512);
song.play();
fft = new FFT(song.bufferSize(), song.sampleRate());
fft.forward(song.mix);
ColorShift = 4;

}//Background to suit song
if(ColorShift == 1){
background(0);
stroke(255, 0, 0, 138);
for(int i = 0; i < fft.specSize(); i++)
{
line(i, height, i, height – fft.getBand(i)*4);
}
stroke(254);
for(int i = 0; i < song.left.size() – 1; i++)
{
line(i, 9 + song.left.get(i)*150, i+250, 145 + song.left.get(i+1)*50);
line(i, 146 + song.right.get(i)*75, i+279, 150 + song.right.get(i+1)*50);
line(i, 250 + song.right.get(i)*178, i+114, 250 + song.right.get(i+1)*50);
line(i, 350 + song.right.get(i)*75, i+320, 350 + song.right.get(i+1)*50);
line(i, 518 + song.right.get(i)*150, i+287, 412 + song.right.get(i+1)*50);
}
}
if(ColorShift == 2){
background(200,0,0);
stroke(0);
for(int i = 0; i < song.left.size() – 1; i++)
{
line(i, 9 + song.left.get(i)*150, i+250, 145 + song.left.get(i+1)*50);
line(i, 146 + song.right.get(i)*75, i+279, 150 + song.right.get(i+1)*50);
line(i, 250 + song.right.get(i)*178, i+114, 250 + song.right.get(i+1)*50);
line(i, 350 + song.right.get(i)*75, i+320, 350 + song.right.get(i+1)*50);
line(i, 518 + song.right.get(i)*150, i+287, 412 + song.right.get(i+1)*50);
}
}
if(ColorShift == 3){
background(43,136,170, 50);
stroke(255,25);
for(int i = 0; i < song.left.size() – 1; i++)
{
line(i, 0 + song.left.get(i)*150, i+182, 218 + song.left.get(i+1)*50);
line(i, 20 + song.right.get(i)*75, i+241, 166 + song.right.get(i+1)*50);
line(i, 30 + song.right.get(i)*50, i+217, 290 + song.right.get(i+1)*50);
line(i, 40 + song.right.get(i)*75, i+246, 411 + song.right.get(i+1)*50);
line(i, 50 + song.right.get(i)*143, i+41, 490 + song.right.get(i+1)*50);
}
}
if(ColorShift == 4){
frameRate(60);
background(random(150));
stroke(236,217,1);
rect(645,50,0,400);
for(int i = 0; i < song.left.size() – 1; i++)
{
line(i, 50 + song.left.get(i)*150, i+291,0);
line(i, 150 + song.right.get(i)*150, i+546, 150 + song.right.get(i+1)*50);
line(i, 250 + song.right.get(i)*50, i+339, 250 + song.right.get(i+1)*50);
line(i, 350 + song.right.get(i)*150, i+315, 350 + song.right.get(i+1)*50);
line(i, 380 + song.right.get(i)*183, i+258, 577);
}
}
//How to stop the music
if (SILENCE ==true){
background (255);
exit();
}
}

 

Advertisements

About Alex Mandzi

I'm a new artist and wish to become a game designer. I like cartoons and draw them as well.
This entry was posted in Computer Animation, Time-Based 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