egrady-LookingOutwards-04

https://www.theatlantic.com/entertainment/archive/2014/08/computers-that-compose/374916/

“When Robots Write Songs” is a particularly interesting article, and the thing that stuck out to me while reading it was the computational sound experiment performed by David Cope. David Cope, a computer scientist AND composer, has looked at the role that computer science can play in composing music and has tried to combine the two disciplines by using a program to spew out music in the style of different genres that it seeks to emulate. This program is called “EMMY” which is named after the acronym of his work “Experiments in Musical Intelligence”. EMMY analyzes the patterns in the songs that it is fed, and creates new work in the style of the music it analyzed, often creating musical masterpieces that sound much like the original artists.

I find this work/experiment particularly inspiring, in the sense of how scary it could prove to be. It also begs a lot of questions about the nature of music and musical expression, such as how can music be made to provoke emotion in some individuals? When music is made by flesh and blood and provokes emotion in those who listen, what does it mean when a computer algorithm creates music that is better and also provokes emotion? I don’t think that human musicians will ever be replaced by robots, but the idea itself is slightly unsettling. The alternative view to this would be that it is a celebration of human accomplishment, that we have finally found a way for the automated to express the seemingly unautomated (music). Music is something that requires time and dedication and is not usually considered alongside programming and computer science, however, this project attempts to bridge the gap between music and other seemingly unrelated disciplines.

jooheek -Project04-StringArt

sketch

//JooHee Kim
//Section E
//jooheek@andrew.cmu.edu
//Project-04

function setup() {
    createCanvas(400, 300);
}

function draw() {
	background(0);

	//color variables so that it can change to mouseX & Y
	var sRColor = mouseX;
	var sGColor = mouseY;
	var sBColor = 255;

	//x1,y1 is for the left 2 curves when mouse is at 0, 300
	var x1StepSize = 30;
	var y1StepSize = 20;
	
	//x2, y2 for stationary right 2 curves when mouse is at 0, 300
	var x2StepSize = 15;
	var y2StepSize = 25;

	//x&y position is the same for both curves
	var xposition = mouseX;
	var yposition = mouseY;

    for (var i = 0; i <= 30; i ++) {
    	//variables that constrain x1&y1 position to canvas size
    	var cx = constrain(xposition, 0, 400);
    	var cy = constrain(yposition, 0, 300);

    	strokeWeight(0.75);
    	stroke(sRColor, sGColor, sBColor);

    	//curve at top left corner when mouse is at 0, 300
    	//i*4/3 because height and width of canvas is different
    	line(cx, y1StepSize*i, x1StepSize*i*4/3, cy);

    	//curve at bottom left corner when mouse is at 0, 300
    	line(cx, height - y1StepSize*i, x1StepSize*i*4/3, height - cy);

    	//curve at top right corner when mouse is at 0, 300
    	stroke(sRColor - 100, sGColor - 100, sBColor-100);
    	line(x2StepSize*i*4/3, height - cy, width - cx, y2StepSize*i/2);

    	//curve at bottom right corner when mouse is at 0, 300
    	line(x2StepSize*i*4/3, cy, width - cx, height - y2StepSize*i/2);

    }


}

I started by creating a simple composition on Illustrator just to understand how the coordinates work in string art curves. From there, I decided on the intervals of the lines to have some variation in the curves. I also wanted it to make it interactive with the mouse, so I made x&y positions and the color of the lines to be dependent of the lines. Although the code for this project was fairly short and simple, I thought it was pretty complicated when I was trying to understand the concept.

 

Initial sketch on Illustrator

thlai-Project-04-String-Art

I don’t know if this is the way to do it, but I set the gradient background by basically using a ‘for’ loop of strings and changing the colors. Als0, when the drawing resets, I noticed a blink, but I have not been able to figure out how to get rid of that.

thlai-project-04

// Tiffany Lai
// 15-104, Section A
// thlai@andrew.cmu.edu
// Project 04 - String Art

var t;

function setup() {
    t =1;
	createCanvas(640, 480);
    strokeWeight(1/4);
    noFill();
    angleMode(DEGREES);
}


// when triangle rotates all the way, reset
function reset(t){
    if (t/100 > 2.4) {
        setup();
    }
}


function draw() {
    t++;

    // set gradient background
    for (var i=0; i < 1000; i++) {
        stroke(20+i/2, 80+i/4, 90+i/4);
        line(0, 0+i, width, 0+i,);
    }
    
    // make 99 "strings"
    var num = 55;
    for (var i = 0; i < num; i++){
        // gradient stroke color
        stroke(i*5, i*7, i*11);

        var x1 = 0;
        var y1 = i*height/num;
        var x2 = i*width/num;
        var y2 = height;

        // draw strings
        line(x1, y1, x2, y2); // bottom left
        line(x2, 0, x1, height-y1); // top left
        line(width, height-y1, x2, y2); // bottom
        line(x2, 0, width, y1); // top right
    }

    push();

        var x1 = 0;
        var y1 = -138;
        var x2 = -120;
        var y2 = 70;
        var x3 = 120;
        var y3 = 70;

        var fade = 100;
        fade = 255 - t;
        stroke(255, 255, 255, fade); // triangle fades
        translate(width/2, height/2);
        triangle(x1, y1, x2, y2, x3, y3);

    for (var i = 0; i < 50; i++){ // center triangle
        rotate((t/100));
        triangle(x1, y1, x2, y2, x3, y3);
    }
    pop();

    print(t/100);
    reset(t);

}

thlai-Looking-Outwards-04

Doug Wheeler’s PSAD Synthetic Desert III is an immersive installation I was too late to get tickets for when I visited the Guggenheim Museum in NYC last summer, which is why it piqued my interest for this assignment. It doesn’t necessarily use sound, rather, it focuses on the lack of noise and its significance.

This exhibition was designed to minimize noise and takes advantages of architectural acoustics materials. The space allows viewers to sit on a platform and soak up the silence in this minimalistic room. It focuses on the reduction of optical and acoustical sensations, and it uses the repetition of pyramid structures, similar to the type you would find in a recording studio.

Wheeler explains the significance of having his exhibition in New York City, a city riddled with noise pollution. It is impossible to escape noise, and the Synthetic Desert can act as an escape from such a loud environment. Wheeler speaks of his inspiration, which stems from when he landed alone in a dried Arizona lakebed and just heard…nothing. He says, “I’m hearing distance. When you’re in some place that has immensity…you become conscious of yourself, it changes your perspective of how we fit into the mix of the whole universe.” I admire his deep passion for having others experience what he experienced in that moment, and his commitment to this project (which he started 48 years ago).

selinal-LookingOutward-04

Bending the Arc by Jennifer Wen Ma

https://fluxprojects.squarespace.com/jennifer-wen-ma/

This sound art installation by Jennifer Wen Ma uses the combined voice frequencies of participants speaking into a microphone to raise the visual of the arc. What I admire about this project is the input of interaction in that more participation and louder singing/ speaking, etc. generate a collaborative effort to “raise the arc,” which allows audience members to reflect the action they are performing metaphorically. I was not able to find any explanations of the algorithms Ma used, but what I can assume from witnessing the piece and researching it is that the height of sound frequency is translated to the bending points in the curve drawn, which moves the line up and down.

Image result for bending the arc jennifer wen ma

Image result for bending the arc jennifer wen ma

mjanco-LookingOutwards-04

This week I looked at James Murphy’s “Subway Symphony” from 2014. This was a project in which Murphy wanted to change the harsh beep sound when passengers swipe their cards before getting on the subway. He decided to have each swiping station randomly play 1 0f 8 notes, so as the subway station gets busy, the notes play together to create music. I really admired that James Murphy wanted to take advantage of a sound that many New Yorkers hear on a daily basis, and turn it into something beautiful. It was a way of bringing generative sound art into a setting that everyday people experience daily. I know the process for this project was also very cheap, because they already needed to have a sound be generated, they just needed to program the stations to randomly play a note from a set of notes that sound nice together. James Murphy is a native of New York City and has played many shows and done many recordings there. It makes sense that he wanted to create generative art that could be experienced by the public crowds of New York. His work is also usually based in simple singular notes layered on top of each other, as represented in this piece.

 

cchau1 – Project04 – String Art

proj04


var spaceX = 2;
var spaceY = 10;
var x1 = 30;
var y1 = 300;
var x2 = 400;
var y2 = 200;

function setup(){
	createCanvas(400, 300);
	background(80,50,255); //different background color to set the mood
}

function draw() {

	for(var i = 0; i < height; i ++){
		stroke(244,25,0); //red sunrays
		line(i*80,x1-3*spaceX,x1+i,y1+spaceX);
    strokeWeight(0.03);
    stroke(240,203,10); //yellow sunrays
    line(i*10,x1-5*spaceY,x1,y1+spaceY+60);
	} //additional numbers were manipulated to fit the canvas size

    for (var k = 0; k < height; k ++) {
      stroke(255); //white space in top right corner; "cloudscape"
      line(x2,spaceY*k,2*spaceY*k,spaceX);
}

    for (var j = 0; j < height; j ++) { //grass
      strokeWeight(2);
      stroke(0,100,0,10);
      line(x1-30,spaceY*j,2*spaceY*j,y1);
    } //the grass and cloudscape are related in increments (reflections)

    var rad = 150 //mock sun
      fill(255,230,0);
      ellipse(rad/4,height-30,rad,rad);
}

I tried to manipulate and play around with some of the variables, as well as figure out how to coordinate with the dimensions of the canvas. I had an original idea that I eventually tossed out (which involved a sort of “playing field” using “stroke(240,203,10); line(i*30,height/-4,width,(2*height-3)/i);” in the for loop() ). I ended up deciding to manipulate straighter lines and thought that they resembled sun rays which also created a cool color-blending effect in the bottom right corner so I kept it. I made two curves that would represent “grass” and “clouds”. Personally, I like creating objects and shapes more than just mere lines becayse I am not the most familiar with loops yet (though it was fun to figure out the values) but I will probably do more projects like string art in the future!

mmiller5-LookingOutwards-04


The 6000th generation of DarwinTunes sound loops

DarwinTunes is a generative music software first developed by Bob MacCallum in 2009 where melodies are produced in a manner similar to that of natural selection.  Volunteers listen and rate different sound loops generated by the program, and then the most highly rated loops ‘reproduce’, creating a new generation of sound loops which are then subjected to the rating process.  I admire this project because it incorporates human feedback to constantly improve it’s output.  With each new generation of sound loops, they become more and more highly rated and indicative of the musical preferences of those rating them, so it actually closely mirrors the actual development of music genres and preferences over time.

serinal – project 4 (section C)

my string art isn’t super complex as I didn’t really have a vision of what I wanted it to look like when I started the project, except the fact that I wanted a light color background and a non-super contrasting (color-wise) end product. My favorite part is the little crosshatching component kind of in the background, I think it turned out quite nicely and holds the piece together well in a subtle way. I definitely could get some more getting use to with for loops!

sketch

//Serina Liu
//Section C
//serinal@andrew.cmu.edu
//project-04, string art

function setup() {
    createCanvas(400, 300);
    background (176, 196, 222);
    
var x = 3;
var y = 250; 

    for (var i = 0; i < 400; i += 4) {
        stroke(256, 256, 256);
        strokeWeight(2);
        line (x-3, y*i-7, 30*i, 300); //left curve
        var y = x * 0.5; //every time the y value is used, it is multiplying x by 0.5 
        stroke (255, 255, 0,90); 
        strokeWeight (1);
        line (x, y*i-50, 300 *i , 30); //background yellow curve
        stroke (256, 256, 256);
        strokeWeight (2);
        line (399, 3*i, 5*i, 1); //upper right curve
        strokeWeight (0.6);
        line (0, y*i, 2*i, 1); //crosshatching line
        strokeWeight (2);
        line (1, 5*i+90, 5*i, 299); // lower left curve
        line (6*i, 300, 400, height-5*i) // lower right curve

    }
}

Project-04-chickoff

sketch

//Cora Hickoff
//Section D 
//chickoff@andrew.cmu.edu
//Project-04

function setup() {

    createCanvas(400, 300);
    background(240, 200, 200);

}

function draw() {

    //light blue strings
    stroke(180, 200, 220);
    strokeWeight(4);
    for (var x1 = 0; x1<=300; x1+=10) {
    curve(100, 100, 100+x1, 100+x1, 30+x1, 150, 200, 200);
}

    //red strings
    stroke(250, 80, 90);
    for (var y1 = 5; y1<=215; y1+=5) {
    curve (150, 15, 50+y1, 500+y1, 10+y1, 12, 50, 70);
}

    //bottom white strings
    stroke(255);
    for (var x2 = 30; x2<= 300; x2+=9) {
    curve (20, 20, 30+x2, 40+x2, 10-x2, 300, 40, 50);
}
    //pink lines
    stroke(220, 150, 189);
    for (var x2 = 30; x2<= 300; x2+=9) {
    line (0, 12+x2, 250+x2, 10+x2);
}

}

When I first started this project, I found that the thin lines and curves felt too harsh, so I added a line of code that made the stroke weight heavier and therefore make the drawing softer.

In addition, I realized that by deleting the code, “noFill();” the black in the drawing appeared and created a faded, 3D effect, which was interesting to have in a flat drawing.

Pictured below is what the drawing looks like when “noFill();” is added to the code.