LO 4 Sound art

The Long player
The long player is a thousand year long “musical piece” created by composer and artist Jem Finer. It started playing on the midnight of the 31st of December 1999 and won’t repeat itself until 2999. The piece itself is in reality a re-interpretation of a source piece that is 20 minutes and 20 secs in length. After being reprocessed by a simple computer algorithm, the variations and combos can be played for a runtime of 1000 years. The algorithm is written in the SuperCollider language, and is actually itself written to plan for the eventual failure and obsoleteness of current technology. Thus, the music score itself was designed to be able to be played on any instrument with any technology. Finer, produced the piece after spending several years studying musical systems, however the piece itself presents an exploration on a far larger scale. With the piece lasting 1000 years, the piece is a reflection and exploration on the concept of time, scale, ephemerality and our traditional ideas about music. Although the score is predetermined, the exact way the piece will be played is a constant unknown for a human listening to it because of the vast scale it exists on. For finer, the piece is an exploration into the unknown, something that will capture the human imagination on a unfathomable level.

The LongPlayer

Project 04: String Art

hcsaDownload
//Hayoon Choi
//hayoonc
//Section C

var numLines = 50; 

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

function draw() {
    background(0);
    var x1 = 200;
    var x2 = 400;
    var y1 = 0;
    var y2 = 400;
    var sf = constrain(mouseY, 150, 255); //line color change
    stroke(sf); 
    strokeWeight(0.75); 
    for (var i = 0; i <= numLines; i++){
	    strokeWeight(0.75); 
        line(i, i, i * 8, 170); //top left section
        line(mouseX, i * 6, i, i); //moving left section
    }
    for (var i = 0; i <= numLines; i++){
	    strokeWeight(0.75); 
        line(400 - i, i, 400 - i * 8, 170); //top right section
        line(mouseX, i * 6, 400 - i, i); //moving right section
    } 
    for (var y1 = 0; y1 <= 400; y1 += 5) {
    	line(x1, y1 , x2, y2); //right section 
    	x2 += 35;
    }
    x2 = 0;
    y2 = 400;
    for (var y1 = 0; y1 <= 400; y1 += 5) {
        line(x1, y1 , x2, y2); //left section 
    	x2 -= 35;
    }
    stroke(244, 106, 78);
    fill(100, 23, 94, 50);
    push();
    translate(mouseX, 160);
    //rotating orange lines
    for (var j = 0; j < 60; j++){
        push();
        strokeWeight(1);
        rotate(radians(6 * j));
        line(0, 0, 0, 1000); //orange lines
        pop();
    }
    pop();
    
}

LO-04-Sound Art

Multiverse is an audio-visual installation, created by fuse, that attempts to show the eternal birth and death of infinite parallel universes. I was attracted by this artwork not only because of its astonishing visual, but also because of its concept. I’ve been fascinated with the idea of the multiverse, or just universe in general, and time. However, I’ve never thought about showing the concept through digital art and sound installation. I didn’t even know that it was possible to physically show something abstract like that. The installation shows two large surfaces mirroring each other generate an infinite reflection of the image towards the sky and the center of the earth. The creators succeeded in combining the theory with algorithmic art and created a memorable artwork that is both visually and audibly stunning.

An application developed in openFrameworks manages the various scenes that interact with Ableton Live and MAX/MSP  for the production of soundtracks through a generative sound system. In order to display “realistic” and infinite scenes, the program provides small random changes to parameter values of physical laws during the bounce, leading to a new universe with slightly different fundamental properties. In addition, in order to prevent it from replaying the same scene, for every thirty minutes, the program is set to enter an evolutionary transition from the previous genetic information.

video of Multiverse

LO-04- Sound Art

Don Ritter’s Intersection. 2019 (reconstruction). 

This installation takes place in a completely dark room with a light lock door and plays audio of 8 lanes of moving traffic sounds. The installation interacts with visitors walking through the room by having a car screeching to a stop noise when the visitor walks past it. If a visitor stands still for a few seconds, then they will hear cars smashing into the paused car. The installation uses infra-red sensors, feedback technology, and 8 or 16 channel audio to create the sounds of traffic. 

This work is inspiring in how it addresses the power of simulation with technology and the generation of creating hypersensitivity to sound with the subtraction of sight. Arthur Kroker mentions how “we are always being smashed by the freeway traffic of high technology”. By having the high intensity audio interact with the visitor’s walking Ritter creates a fully immersive space that reacts to human motion. Ritter manifests a commentary on the advancing speed of growing technology portrayed through the speeding traffic as well as rendering the visitor’s blind in the dark space. The dichotomy of the installation lies in its dependency on these forms of advancing technologies to portray the sounds and interaction with the visitors, and at the same time is depicting ideas of the intimidating pace of growing technology. 

Project 4: String Art

string art cb
var dx1;
var dy1;
var dx2;
var dy2;
var numLines = 200;

function setup() {
    createCanvas(400, 300);
    background(200);
    line(0, 0, 0, 300);
    line(0, 300, 400, 300);
    dx1 = (0-0)/numLines;
    dy1 = (300-0)/numLines;
    dx2 = (400-0)/numLines;
    dy2 = (300-300)/numLines;
}

function draw() {
    strokeWeight(.5);
    background(0);

    var x1 = 0;
    var y1 = 0;
    var x2 = 0;
    var y2 = 300;

    for (var i = 0; i <= numLines; i += 1) {

        //bottom left corner
        stroke(mouseX, mouseY, 100);
        line(x1, y1, x2, y2);
        //top right corner
        line(x1 + 400, y1, x2, y2 - 300);
        //moving lines Y
        stroke(mouseY, 100, mouseX);
        line(i*4, mouseY, 400, 0);
        line(0, 300, i*4, mouseY);
        line(i*4, mouseY, 0, 0);
        line(400, 300, i*4, mouseY);
        //moving lines X
        stroke(mouseX, 100, mouseY);
        line(mouseX, i*3, 400, 0);
        line(0, 300, mouseX, i*3);
        line(mouseX, i*3, 0, 0);
        line(400, 300, mouseX, i*3);
      
        x1 += dx1;
        y1 += dy1;
        x2 += dx2;
        y2 += dy2;
    }
}

My approach to this project involved a lot of trial and error but I had fun experimenting with different parts of the code and seeing what I could make. I wanted to make something interactive, so I made the colors change and the lines follow the mouse position.

Project 04: String Art

For this assignment, I was interested in the way that changing a couple of the location variables for the string would alter the way in which the strings move within the loop. I couldn’t find a reference image of the memory I was basing the drawing off of, but I was inspired by those default backgrounds of older computers when they are not in use, but still on.

peachstring1
var x = 0;//x location of lines moves
var y = 0//y position of lines moves
var c = 0//change background color from black to white

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

}

function draw() {
  background(c);
    c += 1 //background changes over time
  for (i = 0; i <= 50; i += 2.5) //use loop to draw lines
  {var l = i *10
  stroke(194, 255, 254)//blue lines 
   strokeWeight(2);
      line(-width, height, x, l);
      line(width, height, x, l);
   stroke(124, 232, 124);//neon green lines
        strokeWeight(1);
    	  line(x, height/2, 5+l, l);
          line(-width/50, y, 5+l, l);
      stroke(0) //black lines
       line(0,y,20*l,height-l)
  x += 0.1 //lines move across screen
   if(x>width){
     y += 0.1
     x = width
   }
   stroke(255) //white lines
   strokeWeight(0.5)
          line(4*width/l+x, height, 5+l, 0)

  }
}

Looking Outwards 4

Project Name: Sorting

Created by Ren Yuan in 2018, Sorting attempts to transform data into an auditory system through various algorithmic methods of sorting the set. Yuan has created 7 different sorting algorithms, which allows the production of a different set of sounds each time even though the same data set could be run through each sorting system. The auditory and sorting output is also visualized through circular webs and shaded sectors that fluctuate depending on how the data is sorted, compared, swapped, and historically related to other data sets. Yuan describes 7 different algorithms that he uses to sort a data set: “insertion sort, shell sort, bubble sort, quick sort, selection sort, heap sort, [and] merge sort”. Each visual and auditory output created depends on the data inputted, the algorithm used, as well as the random initial condition that is created. However, Yuan does create an initial color palette and web base through the use of the aforementioned circular shape, which helps to define some visual boundaries in which the final piece is limited to.

LO 4 – Sound Art

For this week’s LO, I was inspired by Adrien Kaeser’s “Weather Thingy” (2018), which is a unique sound controller that utilizes real-time climate data to control and produce music. The device consists of a weather station with 3 climate sensors (a rain gauge, wind vane, and anemometer) that is connected to a custom-built controller. The controller has an interface that enables it to assign the parameters received to audio effects, translating the climate data into midi data for interpretation by musical instruments.

I enjoyed learning about this project because of how it functions in real-time using sensors that collect and interpret data to produce new and different sounds. I thought that the music in the video was very calming and nice to listen to. I’m curious about what sounds would be produced by different types of weather, such as a heavy rain/storm or hot, dry day.

“Weather Thingy” demo video
controller

String Art-Butterfly

My process for this project was to find a beautiful thing to create with strings, a butterfly seems natural to me, as they are pretty and delicate.

sketchDownload
var dx1;
var dy1;
var dx2;
var dy2;
var ex1;
var ex2;
var ey1;
var ey2;
var numLines = 30;
var count=0;

function setup() {
    createCanvas(400, 300);
    background(255,157,172);
    dx1 = (150-100)/numLines;    //body variables
    dy1 = (50-25)/numLines;
    dx2 = (200-150)/numLines;
    dy2 = (250-275)/numLines;
    ex1 = (75-5)/numLines;    //wing variables
    ey1 = (25-125)/numLines;
    ex2 = (325-395)/numLines;
    ey2 = (225-125)/numLines;
    fx1 = (125-115)/numLines;    //smaller wing variables
    fy1 = (125-80)/numLines;
    fx2 = (125-115)/numLines;
    fy2 = (125-170)/numLines;

}

function mousePressed() {
  if(count==0){
  count=1
  push();
  stroke(255);
  for (var i = 2; i < 400; i+=4){
    line(0, height-i, i, 0)
    line(i, 300, 400, height-i);
  }
  pop();
  push();    //butterflies body upper left bottom right
  stroke(83,129,132);
  line(150, 25, 200, 50);
  line(200, 275, 250, 250);
  line(200, 50, 250, 25);
  line(200, 275, 150, 250);
  var x1 = 150;
  var y1 = 25;
  var x2 = 250;
  var y2 = 250;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 += dx1;
    y1 += dy1;
    x2 -= dx2;
    y2 -= dy2;
  }
  pop();
  push();
  stroke(83,129,132);    //butterflies body upper right bottom left
  var x1 = 250;
  var y1 = 25;
  var x2 = 150;
  var y2 = 250;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 -= dx1;
    y1 += dy1;
    x2 += dx2;
    y2 -= dy2;
  }
  pop();
  push();
  stroke(118,26,125);    //left purple stream
  var x1 = 75;
  var y1 = 25;
  var x2 = 75;
  var y2 = 225;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 -= ex1;
    y1 -= ey1;
    x2 -= ex2;
    y2 += ey2;
  }
  pop();
  push();
  stroke(118,26,125);    //right purple stream
  var x1 = 325;
  var y1 = 225;
  var x2 = 325;
  var y2 = 25;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 -= ex1;
    y1 -= ey1;
    x2 -= ex2;
    y2 += ey2;
  }
  pop();
  push();
  stroke(247,247,187);    //small yellow wings
  line(125,125,115,80);
  line(125,125,115,170);
  line(275,125,285,80);
  line(275,125,285,170);
  var x1 = 115;
  var y1 = 80;
  var x2 = 285;
  var y2 = 170;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 += fx1;
    y1 += fy1;
    x2 -= fx2;
    y2 += fy2;
  }
  var x1 = 115;
  var y1 = 170;
  var x2 = 285;
  var y2 = 80;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 += fx1;
    y1 -= fy1;
    x2 -= fx2;
    y2 -= fy2;
  }
  pop();
  push();
  stroke(4,194,226);    //upper left bottom right wing
  line(5,125,75,25);
  line(395,125,325,25);
  line(5,125,75,225);
  line(395,125,325,225);
  var x1 = 75;
  var y1 = 25;
  var x2 = 325;
  var y2 = 225;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 -= ex1;
    y1 -= ey1;
    x2 -= ex2;
    y2 -= ey2;
  }
  pop();
  push();
  stroke(4,194,226);    //lower left upper right wing
  var x1 = 5;
  var y1 = 125;
  var x2 = 395;
  var y2 = 125;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 += ex1;
    y1 -= ey1;
    x2 += ex2;
    y2 -= ey2;
  }
  pop();
  noLoop();
} else if(count==1){
  count=0;
  push();
  stroke(255,255,0);
  for (var i = 2; i < 400; i+=4){
    line(0, height-i, i, 0)
    line(i, 300, 400, height-i);
  }
  pop();
  push();    //butterflies body upper left bottom right
  stroke(255,165,0);
  line(150, 25, 200, 50);
  line(200, 275, 250, 250);
  line(200, 50, 250, 25);
  line(200, 275, 150, 250);
  var x1 = 150;
  var y1 = 25;
  var x2 = 250;
  var y2 = 250;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 += dx1;
    y1 += dy1;
    x2 -= dx2;
    y2 -= dy2;
  }
  pop();
  push();
  stroke(255,165,0);    //butterflies body upper right bottom left
  var x1 = 250;
  var y1 = 25;
  var x2 = 150;
  var y2 = 250;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 -= dx1;
    y1 += dy1;
    x2 += dx2;
    y2 -= dy2;
  }
  pop();
  push();
  stroke(0,255,165);    //left green stream
  var x1 = 75;
  var y1 = 25;
  var x2 = 75;
  var y2 = 225;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 -= ex1;
    y1 -= ey1;
    x2 -= ex2;
    y2 += ey2;
  }
  pop();
  push();
  stroke(0,255,165);    //right green stream
  var x1 = 325;
  var y1 = 225;
  var x2 = 325;
  var y2 = 25;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 -= ex1;
    y1 -= ey1;
    x2 -= ex2;
    y2 += ey2;
  }
  pop();
  push();
  stroke(255,0,90);    //small pink wings
  line(125,125,115,80);
  line(125,125,115,170);
  line(275,125,285,80);
  line(275,125,285,170);
  var x1 = 115;
  var y1 = 80;
  var x2 = 285;
  var y2 = 170;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 += fx1;
    y1 += fy1;
    x2 -= fx2;
    y2 += fy2;
  }
  var x1 = 115;
  var y1 = 170;
  var x2 = 285;
  var y2 = 80;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 += fx1;
    y1 -= fy1;
    x2 -= fx2;
    y2 -= fy2;
  }
  pop();
  push();
  stroke(255,0,218);    //upper left bottom right wing
  line(5,125,75,25);
  line(395,125,325,25);
  line(5,125,75,225);
  line(395,125,325,225);
  var x1 = 75;
  var y1 = 25;
  var x2 = 325;
  var y2 = 225;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 -= ex1;
    y1 -= ey1;
    x2 -= ex2;
    y2 -= ey2;
  }
  pop();
  push();
  stroke(255,0,218);    //lower left upper right wing
  var x1 = 5;
  var y1 = 125;
  var x2 = 395;
  var y2 = 125;
  for (var i = 0; i <= numLines; i += 1) {
    line(x1, y1, x2, y2);
    x1 += ex1;
    y1 -= ey1;
    x2 += ex2;
    y2 -= ey2;
  }
  pop();
  noLoop();
}
}

LO- Sound and Computation

A project or work that I find inspirational is Weather Thingy by Adrien Kaeser. This work is a device that consists of two main parts, a weather station which lays on a tripod and a controller connected to the weather station. I admire this project because it is very interesting, the weather and the type of weather that is occurring outside controls the settings of the musical instruments connected to it. Kaeser is a media and interaction design student that wanted to combine art, music, and real time live weather creating the Weather Thingy. The controller transforms the weather data into midi data which is interpretable by instruments. This device can also be used in all weather conditions, as the user can constrain the values received to the device, the MIDI channel can also be changed to modify the way the effects are assigned. This device is very cool and interesting to me, it combines music and weather and lets people hear how the weather conditions are LIVE.