|
|
Line 1: |
Line 1: |
− | ==Josephine Jatzlau==
| |
| | | |
− |
| |
− |
| |
− | === ''homework 1'' ===
| |
− |
| |
− |
| |
− | [[File:Kolibri.gif]]
| |
− |
| |
− | '''Kolibri'''
| |
− | ----
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | === ''homework 2'' ===
| |
− |
| |
− |
| |
− | [[File:Moon-collage.jpg]]
| |
− |
| |
− | '''Moon'''
| |
− |
| |
− |
| |
− | [[File:Moon-Collage2.jpg]]
| |
− |
| |
− |
| |
− | '''Moon 2.0'''
| |
− |
| |
− | ----
| |
− |
| |
− | === ''homework 3'' ===
| |
− |
| |
− | [[File:Grumpy.jpg]]
| |
− |
| |
− | '''Grumpy Cat Fusion'''
| |
− |
| |
− | ----
| |
− |
| |
− | === ''Pixel Sorting'' ===
| |
− |
| |
− |
| |
− | [[File:pxl-old.png |thumb|left|400px]]
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | === ''Video Delay'' ===
| |
− |
| |
− | [https://vimeo.com/152994562 BeeGees Video Delay]
| |
− |
| |
− | Code:
| |
− | <source lang="java">
| |
− |
| |
− | import processing.video.*;
| |
− |
| |
− | Movie myMovie;
| |
− |
| |
− | int maxFrames;
| |
− |
| |
− | int d = 4;
| |
− |
| |
− | boolean recording = false;
| |
− |
| |
− | ArrayList frames = new ArrayList();
| |
− |
| |
− | void setup() {
| |
− | size(1280, 720);
| |
− | maxFrames = width / d;
| |
− |
| |
− | myMovie = new Movie(this, "NightFever.mp4");
| |
− | myMovie.loop();
| |
− |
| |
− | PImage img = createImage(width, height, RGB);
| |
− | frames.add(img);
| |
− | }
| |
− |
| |
− | void draw() {
| |
− | int n = frames.size();
| |
− |
| |
− | image(myMovie, 0, 0);
| |
− |
| |
− | // iterate over vertical strips
| |
− | for(int i = 0; i < n; i++) {
| |
− |
| |
− | // get snip from the frame
| |
− | PImage img = (PImage) frames.get(i);
| |
− |
| |
− | // x coordinate for the left side of the current strip
| |
− | int x1 = int(map(i, 0, n-1, 0, width/2 - 100));
| |
− | int y1 = int(map(i, 0, n-1, 0, height/2 - 100));
| |
− |
| |
− | int x2 = width - x1;
| |
− | int y2 = height - y1;
| |
− |
| |
− | int w = x2 - y1;
| |
− | int h = y2 - y1;
| |
− |
| |
− | PImage snip = img.get(x1, y1, w, h);
| |
− |
| |
− | // show strip on screen
| |
− | //tint(255, 50);
| |
− | image(snip, x1, y1);
| |
− |
| |
− | }
| |
− |
| |
− | if(recording) {
| |
− |
| |
− | saveFrame("frame/####.png");
| |
− |
| |
− | // recording feedback
| |
− | stroke(255, 0, 0);
| |
− | noFill();
| |
− | strokeWeight(5);
| |
− | rect(0, 0, width, height);
| |
− |
| |
− | }
| |
− |
| |
− | }
| |
− |
| |
− | void keyPressed() {
| |
− | recording = !recording;
| |
− | }
| |
− |
| |
− | void movieEvent(Movie m) {
| |
− | m.read();
| |
− |
| |
− | PImage img = myMovie.get();
| |
− |
| |
− | frames.add(img);
| |
− |
| |
− | if( frames.size() > maxFrames) {
| |
− | frames.remove(0);
| |
− | }
| |
− |
| |
− | }
| |
− |
| |
− | </source>
| |
− | ----
| |
− |
| |
− | === ''Sound Processing - Interactive'' ===
| |
− |
| |
− |
| |
− | [[File:Parkhöhle.png]]
| |
− |
| |
− | Code:
| |
− | <source lang="java">
| |
− |
| |
− | import ddf.minim.*;
| |
− | Minim minim;
| |
− |
| |
− | int n = 8;
| |
− | int idx;
| |
− |
| |
− | AudioPlayer[] players = new AudioPlayer[n];
| |
− |
| |
− | int[][] locations = {
| |
− | {307, 234, 10}, //1
| |
− | {425, 222, 10}, //2
| |
− | {377, 305, 10}, //3
| |
− | {426, 383, 10}, //4
| |
− | {552, 224, 10}, //5
| |
− | {552, 385, 10}, //6
| |
− | {661, 420, 10}, //7
| |
− | {560, 310, 10}, //8
| |
− |
| |
− | };
| |
− |
| |
− | int activeLocation = -1;
| |
− |
| |
− | PImage img;
| |
− |
| |
− | void setup() {
| |
− |
| |
− | size(800, 600);
| |
− |
| |
− | minim = new Minim(this);
| |
− |
| |
− | img = loadImage("parkhöhle.jpg");
| |
− |
| |
− | for (int i = 0; i < n; i++) {
| |
− | players[i] = minim.loadFile(“test-" + (i + 1) + ".mp3");
| |
− |
| |
− | }
| |
− | }
| |
− |
| |
− | void draw() {
| |
− |
| |
− | image(img, 0, 0);
| |
− | fill(255, 150);
| |
− | noStroke();
| |
− |
| |
− | activeLocation = -1;
| |
− |
| |
− | for(int i = 0; i < locations.length; i ++) {
| |
− | int[] loc = locations[i];
| |
− |
| |
− | int x = loc[0];
| |
− | int y = loc[1];
| |
− | int r = loc[2];
| |
− |
| |
− | if(atLocation(x, y, r)) {
| |
− |
| |
− | activeLocation = i;
| |
− |
| |
− | ellipse(x, y, 2*r, 2*r);
| |
− | fill(250, 0);
| |
− |
| |
− | }
| |
− | }
| |
− | }
| |
− |
| |
− | boolean atLocation(int x, int y, int r) {
| |
− | return mouseX > (x - r) && mouseX < (x + r) && mouseY > (y - r) && mouseY < (y + r);
| |
− | }
| |
− |
| |
− | void mousePressed() {
| |
− |
| |
− | if(activeLocation != -1) {
| |
− |
| |
− | for (int i = 0; i < n; i++) {
| |
− | players[i].pause();}
| |
− |
| |
− | println("Sound number " + (activeLocation + 1));
| |
− | players[activeLocation].rewind();
| |
− | players[activeLocation].play();
| |
− |
| |
− | }
| |
− |
| |
− | }
| |
− |
| |
− | void keyPressed() {
| |
− |
| |
− | for (int i = 0; i < n; i++) {
| |
− | players[i].pause(); }
| |
− |
| |
− | int i = (key - '1');
| |
− |
| |
− | if (i >= 0 && i < n) {
| |
− |
| |
− | println("Sound number " + (i + 1));
| |
− | players[i].rewind();
| |
− | players[i].play();
| |
− | }
| |
− | }
| |
− |
| |
− | void keyPressed() {
| |
− |
| |
− | println(pmouseX, pmouseY);
| |
− | }
| |
− |
| |
− | </source>
| |
− |
| |
− | ----
| |
− |
| |
− | === My Final Project ===
| |
− |
| |
− |
| |
− | For my final project I wanted to explore the world of sound processing. I started to experiment with the visualization of sound (beat detection).And I got more and more interessted into this topic. The semester break gave me the final inspiration for my project. I created an interactive map which shows some clubs in Berlin. With this map you can find the perfect club for you and your music taste. I think that there has never been a map like this. It could be really helpful and people should start to develope those kind of maps for metropolises like Berlin, London or NewYork.
| |
− |
| |
− | [https://vimeo.com/161960707 Part 1 Beat Detection]
| |
− |
| |
− | [https://vimeo.com/161019179 Part 2 - Interactive Club Map]
| |
− |
| |
− | Code Part 1:
| |
− |
| |
− | <source lang="java">
| |
− | import ddf.minim.*;
| |
− | import ddf.minim.analysis.*;
| |
− | import ddf.minim.effects.*;
| |
− | import ddf.minim.signals.*;
| |
− | import ddf.minim.spi.*;
| |
− | import ddf.minim.ugens.*;
| |
− |
| |
− | import camera3D.*;
| |
− | import camera3D.generators.*;
| |
− | import camera3D.generators.util.*;
| |
− |
| |
− | Minim minim;
| |
− | AudioPlayer song;
| |
− | BeatDetect beat;
| |
− |
| |
− | float eRadius;
| |
− |
| |
− | PImage img;
| |
− |
| |
− | void setup() {
| |
− |
| |
− | size(500, 500, P3D);
| |
− |
| |
− | minim = new Minim(this);
| |
− | song = minim.loadFile("song.mp3", 2040);
| |
− | song.play();
| |
− |
| |
− | beat = new BeatDetect();
| |
− |
| |
− | rectMode(CENTER);
| |
− | eRadius = 20;
| |
− |
| |
− | }
| |
− |
| |
− | void draw() {
| |
− |
| |
− | background(0);
| |
− | beat.detect(song.mix);
| |
− |
| |
− | fill( random(255), random(255), random(255), random(255));
| |
− | int x = int(random(100, width - 100));
| |
− | int y = int(random(100, height -100));
| |
− | if (beat.isOnset() )
| |
− | rect(250, 250, random(width), random(height));
| |
− |
| |
− | }
| |
− |
| |
− | void mousePressed() {
| |
− |
| |
− | minim.stop();
| |
− | song.close();
| |
− | }
| |
− |
| |
− | void keyPressed()
| |
− | {
| |
− | if ( key == '1') {
| |
− |
| |
− | minim = new Minim(this);
| |
− | song = minim.loadFile("song.mp3", 2040);
| |
− | song.play();
| |
− |
| |
− | }
| |
− |
| |
− | if ( key == '2') {
| |
− |
| |
− | minim = new Minim(this);
| |
− | song = minim.loadFile("song-2.mp3", 2040);
| |
− | song.play();
| |
− | }
| |
− |
| |
− | if ( key == '3') {
| |
− |
| |
− | minim = new Minim(this);
| |
− | song = minim.loadFile("song-3.mp3", 2040);
| |
− | song.play();
| |
− |
| |
− | }
| |
− | if ( key == '4') {
| |
− |
| |
− | minim = new Minim(this);
| |
− | song = minim.loadFile("song-4.mp3", 2040);
| |
− | song.play();
| |
− |
| |
− | }
| |
− |
| |
− | if ( key == '5') {
| |
− |
| |
− | minim = new Minim(this);
| |
− | song = minim.loadFile("song-5.mp3", 2040);
| |
− | song.play();
| |
− |
| |
− | }
| |
− |
| |
− | if ( key == 'x') {
| |
− |
| |
− | song.close();
| |
− | minim.stop();
| |
− | }
| |
− |
| |
− | }
| |
− | </source>
| |
− |
| |
− | Code Part 2:
| |
− |
| |
− | <source lang="java">
| |
− | import ddf.minim.*;
| |
− | import ddf.minim.analysis.*;
| |
− | import ddf.minim.effects.*;
| |
− | import ddf.minim.signals.*;
| |
− | import ddf.minim.spi.*;
| |
− | import ddf.minim.ugens.*;
| |
− |
| |
− | import camera3D.*;
| |
− | import camera3D.generators.*;
| |
− | import camera3D.generators.util.*;
| |
− |
| |
− | Minim minim;
| |
− |
| |
− | PImage img;
| |
− | PImage img1;
| |
− |
| |
− | PFont font;
| |
− | PFont font1;
| |
− |
| |
− | int n = 19;
| |
− | int idx;
| |
− |
| |
− | AudioPlayer song;
| |
− | BeatDetect beat;
| |
− |
| |
− | AudioPlayer[] players = new AudioPlayer[n];
| |
− |
| |
− | float eRadius;
| |
− |
| |
− | int[][] locations = {
| |
− |
| |
− | {545, 276, 10}, //1 Humboldthain
| |
− | {782, 470, 10}, //2 Berghain
| |
− | {734, 480, 10}, //3 Tresor
| |
− | {735, 509, 10}, //4 RitterButzke
| |
− | {891, 669, 10}, //5 Grießmühle
| |
− | {945, 589, 10}, //6 WildeRenate
| |
− | {568, 270, 10}, //7 Brunnen70
| |
− | {673, 278, 10}, //8 AlteKantine
| |
− | {422, 370, 10}, //9 Metaxabay
| |
− | {139, 394, 10}, //10 MiSalsa
| |
− | {93, 437, 10}, //11 Goldelse
| |
− | {574, 508, 10}, //12 Werk9
| |
− | {645, 343, 10}, //13 Sophienclub
| |
− | {573, 532, 10}, //14 Gretchen
| |
− | {261, 496, 10}, //15 Quasimodo
| |
− | {203, 456, 10}, //16 A-Trane
| |
− | {746, 440, 10}, //17 GoldenGate
| |
− | {526, 373, 10}, //18 BarTausend
| |
− | {707, 397, 10}, //19 HouseOfWeekend
| |
− | };
| |
− |
| |
− | int activeLocation = -1;
| |
− |
| |
− | void setup() {
| |
− |
| |
− | minim = new Minim(this);
| |
− |
| |
− | size(1000, 750);
| |
− |
| |
− | img = loadImage("map2.jpg");
| |
− | img.resize(1000, 750);
| |
− | img1 = loadImage("map1.png");
| |
− | img1.resize(631, 92);
| |
− |
| |
− | font = loadFont("DejaVuSansCondensed-Bold-60.vlw");
| |
− | font1 = loadFont("DejaVuSans-ExtraLight-20.vlw");
| |
− |
| |
− | for (int i = 0; i < n; i++) {
| |
− | players[i] = minim.loadFile("club-" + (i + 1) + ".mp3");
| |
− | }
| |
− |
| |
− | beat = new BeatDetect();
| |
− |
| |
− | rectMode(CORNER);
| |
− | eRadius = 10;
| |
− |
| |
− | }
| |
− |
| |
− | void draw() {
| |
− |
| |
− | background(img);
| |
− | image(img1, 209, 100);
| |
− |
| |
− | fill(255);
| |
− | textFont(font, 60);
| |
− | text("THE SOUND OF BERLIN", 50, 65);
| |
− |
| |
− | fill(0, 24, 50, 70);
| |
− | textFont(font, 60);
| |
− | text("THE SOUND OF BERLIN", 50, 70, -10);
| |
− |
| |
− | fill(255);
| |
− | textFont(font1, 20);
| |
− | text("find the stars and hear the sound of your favorite clubs", 190, 95);
| |
− |
| |
− |
| |
− | println(pmouseX, pmouseY);
| |
− |
| |
− | activeLocation = -1;
| |
− | for(int i = 0; i < locations.length; i ++) {
| |
− |
| |
− | int[] loc = locations[i];
| |
− |
| |
− |
| |
− | int x1 = loc[0];
| |
− | int y1 = loc[1];
| |
− | int r = loc[2];
| |
− |
| |
− |
| |
− | if(atLocation(x1, y1, r)) {
| |
− |
| |
− | activeLocation = i;
| |
− |
| |
− | star(x1, y1, 5, 10, 5);
| |
− | fill(255);
| |
− | noStroke();
| |
− | players[i].play();
| |
− | }
| |
− | else {
| |
− |
| |
− | players[i].pause();
| |
− | }
| |
− | }
| |
− | }
| |
− |
| |
− | void star(float x, float y, float radius1, float radius2, int npoints) {
| |
− | float angle = TWO_PI / npoints;
| |
− | float halfAngle = angle/2.0;
| |
− | beginShape();
| |
− | for (float a = 0; a < TWO_PI; a += angle) {
| |
− | float sx = x + cos(a) * radius2;
| |
− | float sy = y + sin(a) * radius2;
| |
− | vertex(sx, sy);
| |
− | sx = x + cos(a+halfAngle) * radius1;
| |
− | sy = y + sin(a+halfAngle) * radius1;
| |
− | vertex(sx, sy);
| |
− | }
| |
− | endShape(CLOSE);
| |
− | }
| |
− |
| |
− | boolean atLocation(int x, int y, int r) {
| |
− |
| |
− | return mouseX > (x - r) && mouseX < (x + r) && mouseY > (y - r) && mouseY < (y + r);
| |
− |
| |
− | }
| |
− |
| |
− | void mousePressed() {
| |
− |
| |
− | if(activeLocation != -1) {
| |
− |
| |
− | for (int i = 0; i < n; i++) {
| |
− | players[i].pause();
| |
− | }
| |
− | println("Sound number " + (activeLocation + 1));
| |
− | players[activeLocation].rewind();
| |
− | players[activeLocation].play();
| |
− | }
| |
− | }
| |
− |
| |
− | </source>
| |