Sarah Yae – Project 11 – Section B

sketch

//Sarah Yae
//smyae@andrew.cmu.edu
//Section B
//Project 11

var baseface; 

//Load Base Face Image
function preload() {
    var basefaceload = "https://i.imgur.com/FXyP6ss.gif";
    baseface = loadImage(basefaceload);
}

//Set up loaded Base Face 
function setup () {
    createCanvas(280,400);
    background(0);
    image(baseface, 0, 0);
    text("drag the mouse to make my brows thicker!", 10, 10);
}

function draw() {

    var distmousex = map(mouseX, 0, width, 0, 5);
    var distmousey = map(mouseY, 0, height, 0, 5);

//Right brow
    var browr = makeTurtle((width / 2) + 40 + distmousex, height/3 + distmousey);
    browr.setColor(color(210, 180, 140));
    browr.setWeight(4);
    browr.face(0);
    browr.forward(50);

//Left brow
    var browl = makeTurtle((width / 2) + distmousex, height/3 + distmousey);
    browl.setColor(color(210, 180, 140));
    browl.setWeight(4);
    browl.face(180);
    browl.forward(50); 

//Right Eye 
    var eyer = makeTurtle((width / 2) + 60, (height/3) + 15);
    eyer.setColor(50); 
    eyer.setWeight(1);

    for (var i = 0; i < 100; i++) {
        eyer.right(360/100);
        eyer.forward(0.7);
    }

//Left Eye 
    var eyel = makeTurtle((width / 2) - 20, (height/3) + 15);
    eyel.setColor(50); 
    eyel.setWeight(1);

    for (var i = 0; i < 100; i++) {
        eyel.right(360/100);
        eyel.forward(0.7);
    }

//Mouth
    stroke("Salmon");
    strokeWeight(6);
    arc((width / 2) + 20, (height/2) + 15, 80, 40, 0, PI);

//Right Iris 
    var irisr = makeTurtle((width / 2) + 60, (height/3) + 23);
    irisr.setColor(color(30, 17, 0));
    irisr.setWeight(7);

    for (var i = 0; i < 100; i++) {
        irisr.right(360/100);
        irisr.forward(0.2); 
    }

//Left Iris 
    var irisl = makeTurtle((width / 2) - 20, (height/3) + 23);
    irisl.setColor(color(30, 17, 0));
    irisl.setWeight(7);

    for (var i = 0; i < 100; i++) {
        irisl.right(360/100);
        irisl.forward(0.2);
    }   

}

//Turtle Graphics 
function turtleLeft(d) {
    this.angle -= d;
}
 
 
function turtleRight(d) {
    this.angle += d;
}
 
 
function turtleForward(p) {
    var rad = radians(this.angle);
    var newx = this.x + cos(rad) * p;
    var newy = this.y + sin(rad) * p;
    this.goto(newx, newy);
}
 
 
function turtleBack(p) {
    this.forward(-p);
}
 
 
function turtlePenDown() {
    this.penIsDown = true;
}
 
 
function turtlePenUp() {
    this.penIsDown = false;
}
 
 
function turtleGoTo(x, y) {
    if (this.penIsDown) {
      stroke(this.color);
      strokeWeight(this.weight);
      line(this.x, this.y, x, y);
    }
    this.x = x;
    this.y = y;
}
 
 
function turtleDistTo(x, y) {
    return sqrt(sq(this.x - x) + sq(this.y - y));
}
 
 
function turtleAngleTo(x, y) {
    var absAngle = degrees(atan2(y - this.y, x - this.x));
    var angle = ((absAngle - this.angle) + 360) % 360.0;
    return angle;
}
 
 
function turtleTurnToward(x, y, d) {
    var angle = this.angleTo(x, y);
    if (angle < 180) {
        this.angle += d;
    } else {
        this.angle -= d;
    }
}
 
 
function turtleSetColor(c) {
    this.color = c;
}
 
 
function turtleSetWeight(w) {
    this.weight = w;
}
 
 
function turtleFace(angle) {
    this.angle = angle;
}
 
 
function makeTurtle(tx, ty) {
    var turtle = {x: tx, y: ty,
                  angle: 0.0, 
                  penIsDown: true,
                  color: color(128),
                  weight: 1,
                  left: turtleLeft, right: turtleRight,
                  forward: turtleForward, back: turtleBack,
                  penDown: turtlePenDown, penUp: turtlePenUp,
                  goto: turtleGoTo, angleto: turtleAngleTo,
                  turnToward: turtleTurnToward,
                  distanceTo: turtleDistTo, angleTo: turtleAngleTo,
                  setColor: turtleSetColor, setWeight: turtleSetWeight,
                  face: turtleFace};
    return turtle;
}

I wanted to originally create a makeup simulation, but as I was working on the project, I found that to be difficult, as turtle graphics work more as a pen, rather than a painting function. I feel like my final product turned out to be way different than my first ideas.

First Sketches
Finished Product

Jisoo Geum – Project 11

sketch

// Jisoo Geum
// Section B
// jgeum@andrew.cmu.edu 
// Project 11
var tt1;
var startX; 
var startY;
var aa;
var ttlength;

function setup() {
    createCanvas(480, 400);
    background(173, 255, 244);
    tt1 = makeTurtle(startX,startY);
    tt1.setColor(color(255,144,0));
    tt1.setWeight(0.5);
    startX = width/2; // set the starting point to center of the canvas 
    startY = height/2;
    aa = random(20,340) // randomise angle
    ttlength = random(100,400); // randomize the length of the lines
    

  
}


function mousePressed() {

    for( var i=0; i <height/4; i +=2){
        tt1.penDown();
        tt1.forward(ttlength);
        tt1.right(aa);
        tt1.forward(ttlength);
        tt1.penUp();
        tt1.goto(startX,startY+i);
        
    }
}


function turtleLeft(d){this.angle-=d;}function turtleRight(d){this.angle+=d;}
function turtleForward(p){var rad=radians(this.angle);var newx=this.x+cos(rad)*p;
var newy=this.y+sin(rad)*p;this.goto(newx,newy);}function turtleBack(p){
this.forward(-p);}function turtlePenDown(){this.penIsDown=true;}
function turtlePenUp(){this.penIsDown = false;}function turtleGoTo(x,y){
if(this.penIsDown){stroke(this.color);strokeWeight(this.weight);
line(this.x,this.y,x,y);}this.x = x;this.y = y;}function turtleDistTo(x,y){
return sqrt(sq(this.x-x)+sq(this.y-y));}function turtleAngleTo(x,y){
var absAngle=degrees(atan2(y-this.y,x-this.x));
var angle=((absAngle-this.angle)+360)%360.0;return angle;}
function turtleTurnToward(x,y,d){var angle = this.angleTo(x,y);if(angle< 180){
this.angle+=d;}else{this.angle-=d;}}function turtleSetColor(c){this.color=c;}
function turtleSetWeight(w){this.weight=w;}function turtleFace(angle){
this.angle = angle;}function makeTurtle(tx,ty){var turtle={x:tx,y:ty,
angle:0.0,penIsDown:true,color:color(128),weight:1,left:turtleLeft,
right:turtleRight,forward:turtleForward, back:turtleBack,penDown:turtlePenDown,
penUp:turtlePenUp,goto:turtleGoTo, angleto:turtleAngleTo,
turnToward:turtleTurnToward,distanceTo:turtleDistTo, angleTo:turtleAngleTo,
setColor:turtleSetColor, setWeight:turtleSetWeight,face:turtleFace};
return turtle;}

For this project, I wanted to use randomized angles and line lengths to explore different compositions. I also wanted to see shapes created from the repetition and overlaps of thin lines.

Jisoo Geum – Looking Outwards 11

Fedde ten Berge- of Nature and Things ( het Ei (the Egg)) – 2017 

Fedde ten Berge is a Dutch sound artist who studies the sound in different types of material. The installation above is part of a larger project called “Of Nature and Things”, a collection of artificial objects mimicking forms in nature. Through “Of Nature and Things”, the audience is able to investigate different ambient sounds generated from the unique surfaces and shapes that each sculpture has to provide. I particularly liked “The Egg” because of its nature to create a subtle yet powerful sound through indirect contact. The combination of sound and the movement of the person’s hand looked interesting and even magical. From my knowledge, “The Egg” is played by the proximity between the audience and the object using a low latency audio board for embedded applications. I think Berge’s artistic sensibility is best represented from the alien sound contrasted by familiar shapes in nature.

Looking Outwards-11 Computer Music-Veronica

(Video of performance using MI.MU gloves)

MI.MU gloves are designed by musician and artist, Imogen Heap, as alternatives to instruments during musical performances. Imogen set out to create a better relationship with the music software and hardware that forms her musical toolbox and came across the idea of making music using a pair of musical gloves.

“MI.MU exists to revolutionize the way we make music through movement”

Behind the product is a team of specialist musicians, artists, scientists, and technologists developing cutting-edge wearable technology for the performance and composition of music and specializing in textiles, electronics, sensors, software and, music.

GLOVOLUTIONsmall
Iterations and evolution of glove design
anatomy of a glove tech
Glove design details
Mi. Mu works by capturing movement and hand gestures with sensors and send information wirelessly from the board on the wrists to a computer backstage. The software enables performers to map that data to” musical control signals” and combine different gestures and movements to make more complex controls. Additionally, the gloves can also be programmed to control third-party music production and editing software.
On her product website, it says that “The glove technology evolved in a symbiotic relationship with Imogen’s performances and writing. Real performances drove the development of the gloves, leading to an instrument and controller fit for professional musicians, ready to make complex, beautiful and engaging music.”

(Imogen Heap and a long exposure shot of her using the gloves)

I think the project is really successful at changing music composing into an intuitive and fun process and allowing for a different way of performing music. It also allows performers and artists to experiment with different types of music instruments without having to purchase physical instruments. Dancers and people with disabilities were also able to use these gloves to express themselves through music.

 

Victoria Reiter – Looking Outwards 11 – Computer Music

Kling Klang Machine

This week in my Looking Outwards post I am investigating an interactive app created by British electronic pop group Kraftwerk. The app is called “Kling Klang Machine No1”, a reference to the elusive and undisclosed studio where the group produces their music.

Map of Kling Klang Machine No1
Some alterable variables that customize the music produced

The app’s map registers which time zone the user is in, and uses algorithms to make a custom tune based on this location and timezone, meaning that the same song with never be heard at a different time or place. Users can also tweak aspects such as volume, echo, and tune, or even choose a different region in which to listen to a composition.

Example video of “Kling Klang Machine No1”

I think this app is cool because of how specific it is to each region and time. I love travelling hehehe…so it would be cool to have another way to experience different places, by experiencing the different custom music generated there!

Kraftwerk’s website found here, and

Kling Klang Machine details found here.

Lingfan Jiang – Looking Outwards 11

This week, I am interested in the project called “looks like music” done by a Japanese creator Yuri Suzuki in 2013. It consists of a miniature robot which detects and follows a circuit – a black line traced in marker pen – interspersed with colored reference points that the device translates in sound. The main reason I admire it is that it is an easy but super fun project that everyone can be involved in. For the general public, people normally are not able to be part of the artwork, so sometimes they do not understand them. Also, the algorithms behind it should be pretty easy too. The robot has a sensor inside which is able to differentiate between black and white and use “0” and “1” to represent them. As for the color, every color would have a specific sound. Similar to the “pixel.get” command in p5js, the robot is able to get different colors from the paper.

As for the creator’s sensibilities, being a sound artist, designer and electronic musician himself, Yuri Suzuki really incorporated his professions into the project. It is a simple graphic artwork that combined with sound and electrics. His intention is “to raise public awareness of the way in which sound and music are produced”, and I think he did it really well in this project.

Kade Stewart – Project 11 – Composition

ants

//Kade Stewart
//Section B
//kades@andrew.cmu.edu
//Project-11

//variables storing each of the ants, the repellent values, 
//and the foot variables
var ants = [];
var rpx;
var rpy;
var rpc = 0;
var foot = false;
var time = 0;


function setup() {
    createCanvas(480, 480);
    rectMode(CENTER);

    stroke(255);
    strokeWeight(6);
    strokeJoin(MITER);
    strokeCap(PROJECT);

    //initialize all of the ants (which are actually each of type turtle)
    for (var i = 0; i < 100; i++) {
        ants[i] = makeTurtle(random(0, width), random(0, height));
        ants[i].face(random(0, 360));
        ants[i].penDown();
        ants[i].setWeight(4);
        ants[i].setColor(255);
    }

}

function mousePressed() {
    //when the mouse is pressed, start the foot step

    foot = true;
    time = 120;
    rpx = mouseX;
    rpy = mouseY;
}

function draw() {
    background(0);
    

    //loop through each of the ants in the list
    for (var i = 0; i < ants.length; i++) {
        var t = ants[i];


        //if a foot is coming (if the mouse has been clicked)
        //make the ants start to avoid the shadow of the foot
        if (foot) {
            var d = dist(t.x, t.y, rpx, rpy);
            var f = rpc / (Math.pow(d, 2));
            var dirx = (t.x - rpx) / d;
            var diry = (t.y - rpy) / d;
            t.x += dirx * f;
            t.y += diry * f;
        }


        //make the ant wrap around the screen
        //because there are so many, it just looks like new ones are being added
        if (t.x >= width) {
            t.x -= width;
        } else if (t.x <= 0) {
            t.x += width;
        }
        if (t.y >= height) {
            t.y -= height;
        } else if (t.y <= 0) {
            t.y += height;
        }


        //actually move the ant...finally
        t.forward(5);

    }


    //if the foot is still terrorizing the ants (if there is still time),
    //decrease the time limit and make the repellent force larger
    //otherwise, make sure the foot variable is false
    if (time != 0) {
        time--;
        rpc = map(time, 120, 0, 0, 25000);
    } else {
        foot = false;
    }

    //if the foot is more than 1/3 of a second away, draw it's growing shadow
    //otherwise, the foot will start to stomp on the ground
    if (time >= 20) {
        noStroke();
        fill(255);
        ellipse(rpx, rpy, 100 - map(time, 0, 120, 0, 100), 100 - map(time, 0, 120, 0, 100));
    } else if (time > 0 & time < 20) {
        fill(210, 180, 140);
        noStroke();
        push();
        translate(rpx, rpy);
        scale(abs(- 2.5 + time/4));
        angleMode(DEGREES);
        rotate(5);
        rect(20, 45, 50, 80, 10);
        rect(0, 0, 10, 30, 10);
        rotate(5);
        rect(10, 1, 10, 30, 10);
        rotate(5);
        rect(20, 2, 10, 30, 10);
        rotate(5);
        rect(30, 3, 10, 30, 10);
        rotate(5);
        rect(40, 4, 10, 30, 10);
        pop();
        angleMode(RADIANS);
    }

    //the help text
    fill(0);
    stroke(255);
    textSize(20);
    text("click to stomp on these poor ants", width/6 + 10, 20);

}



function turtleLeft(d){this.angle-=d;}function turtleRight(d){this.angle+=d;}
function turtleForward(p){var rad=radians(this.angle);var newx=this.x+cos(rad)*p;
var newy=this.y+sin(rad)*p;this.goto(newx,newy);}function turtleBack(p){
this.forward(-p);}function turtlePenDown(){this.penIsDown=true;}
function turtlePenUp(){this.penIsDown = false;}function turtleGoTo(x,y){
if(this.penIsDown){stroke(this.color);strokeWeight(this.weight);
line(this.x,this.y,x,y);}this.x = x;this.y = y;}function turtleDistTo(x,y){
return sqrt(sq(this.x-x)+sq(this.y-y));}function turtleAngleTo(x,y){
var absAngle=degrees(atan2(y-this.y,x-this.x));
var angle=((absAngle-this.angle)+360)%360.0;return angle;}
function turtleTurnToward(x,y,d){var angle = this.angleTo(x,y);if(angle< 180){
this.angle+=d;}else{this.angle-=d;}}function turtleSetColor(c){this.color=c;}
function turtleSetWeight(w){this.weight=w;}function turtleFace(angle){
this.angle = angle;}function makeTurtle(tx,ty){var turtle={x:tx,y:ty,
angle:0.0,penIsDown:true,color:color(128),weight:1,left:turtleLeft,
right:turtleRight,forward:turtleForward, back:turtleBack,penDown:turtlePenDown,
penUp:turtlePenUp,goto:turtleGoTo, angleto:turtleAngleTo,
turnToward:turtleTurnToward,distanceTo:turtleDistTo, angleTo:turtleAngleTo,
setColor:turtleSetColor, setWeight:turtleSetWeight,face:turtleFace};
return turtle;}

In the process of writing my code, I realized that the turtles each look like little ants. So, I made a shadow descend upon the ants, and eventually a foot try and stomp them. Don’t worry – none of them actually die, mostly because that would be annoying to code.

Plain ol screen
here comes the foot

Romi Jin – Looking Outwards 11

Keiko Uenishi is known for experimenting with “restructuring and reanalyzing one’s relationship with sounds in sociological, cultural and/or psychological environments.” One of her works that stood out to me is an installation entitled CDL, or Car Décalé (Légèrement)/Because Shifted (Slightly). Since Uenishi dabbles with the questioning of ideas of space through what she calls aural perceptions, and her experiments expose people to temporal spatial experiences that are usually new to them.

(Below is an example of one of her sound experiments about found objects.)

CDL is an “experiential/phenomenological sound-performance/installation/method” that uses audio-feedback to redefine a space. Uenishi uses simple spatial parameters as a setting for the experience (i.e. no decorations, no special flooring or walls, no furniture, no columns, etc.) as there should be no unnecessary distractions. The version of CDL above uses found objects (mainly construction materials) to create a part to whole experience — a series of smaller, temporary structures within a larger structure (the room). After attempted experiments, she would add or alter the objects to, in conjunction, alter the spatial experience of this specific CDL.

KadeStewart-LookingOutwards-11

Proteus cover

Proteus is an indie video game that came out in 2013, focused on exploration with an emphasis on “nonviolence”. The soundtrack is written to reflect the natural beauty within the game, which is deterministic. However, the music that reaches the player’s ears is non-deterministic because it is influenced by the player’s environment and their interactions with the environment. For example, when the player is in a dense environment, the sound is very dense. When the player is walking, the sounds behave as they do when you yourself are walking.

The video game, as stated above, is intended to reflect a nonviolent existence. The soothing music plays into the message, and the exploratory theme is emphasized by the player’s active role in how the music sounds. I think that this is a very basic but incredibly powerful method of getting the designer’s message across.

Interactive Proteus Music

Shirley Chen-Looking Outward-11 Computer Music

This project is a collection of graphics generated by computer based on the music by visual designer Cyrill Studer. In this project, the graphics are generating and transforming under the influence of music pieces in a subtle but clever and engaging way. This collections of graphics become the music video for this song. I think this is very fascinating for me that they utilize computing as a tool to visualize the music. It allows the viewers to not only experience the music by ear by also by the visual effect. The representation is very direct and related to the common perception, which allows the precise depiction of the music. The visual concept of the entire music video is based on a single form: the ellipse. Through the variation in angles, distortion, arrangement and number of the ellipses, they achieve the visual effect that is closely representation the music in a commonly understandable way and language.

The graphics were generated in Processing, manually controlled and performed with a midi controller and recorded through the Syphon with the Syphon Recorder.

Music Video – Baby Behold by CARVEL

Generated Graphics Based On Music

SOURCE:

https://www.creativeapplications.net/processing/carvel-baby-behold-music-video-by-cyrill-studer/