LO-10 (computer music)

For this LO I’ll be looking at a service that provides computer generated music for creative users.This service/machine/Ai is called AIVA. The service allows you to set various parameters including instruments, tempo, etc. or completely randomized if left blank. The resulting music created actually sounds quite professional and due to its random nature, it will not likely create the same track twice. To ensure that, AIVA uses stochastic algorithms to randomize each of its elements to allow for ‘original’ creations every single time. Looking through each sample created for each genre, I wouldn’t be able to tell the difference between aiva and a professional track.

https://www.aiva.ai

Looking Outwards 10 – Computer Music

Image of Haptic Organ

Haptic Organ is a kinetic soundscape installation created by COLLECTIVE and honh1m. ‘Haptic’ comes from the greek word ‘haptikos,’ which means “pertaining to the sense of touch.” This installation is based on kinesthetic communication, in other words the installation is generated using motion of hands to create variations of visual displays and sounds. The intention of this project was to make music visible, tangible, and shareable at the same time. This encourages people to interact with each other, which was the main goal of the creators and purpose of the installation Haptic Organ is designed with 20 transparent tubes with metallic spheres in them that move up and down through initiated air movement by hand motion. Audiences can freely perform their own music with the aid of sensors that give different notes across an octave. The volume of musical sounds from the installation can be controllable with growing and falling movements of hands over the haptic interfaces. What I really love about this artwork is that there is a unity between artificial (tube and sphere balls) and natural (sound energy) presented in a single piece of art that encourages interaction between people and the installation itself. I can really sense the artist’s sensibilities for interactivity and minimalism by looking at the complexity of interaction created through visuals and sound as well as simplicity of the installation design. 

Website: http://h0nh1m.com/

Video of Haptic Organ

PROJECT-10 (sonic story)

sketch
// 15-104
// SEAN CHEN
// A person running in the rain rushes toward a gathering indoors
// and suddenly the person busts through the window causing panic.

var rain, running, panting, group, intrain, scream, glass;
var note = 0;
var walkImage = [];
var filenames = [];


// various sounds
function preload() {
    rain = loadSound ('http://127.0.0.1:5500/handin10/seanc1-10-project/sounds/-combo.wav');
    group = loadSound ('http://127.0.0.1:5500/handin10/seanc1-10-project/sounds/-combo-group.wav');
    scream = loadSound ('http://127.0.0.1:5500/handin10/seanc1-10-project/sounds/-group-scream.wav');
    glass = loadSound ('http://127.0.0.1:5500/handin10/seanc1-10-project/sounds/-glass-smash.wav');
}

function setup() {
    createCanvas(600, 300);
    frameRate(15);
}

function soundSetup() {}

// apartment building
function house() {
    push();
    fill(150);
    rect(525, 50, 100, 250);
    fill(244,202,41);
    rect(550, 75, 50, 50);
    rect(550, 150, 50, 50);
    rect(550, 225, 50, 50);
    pop();
}

// rain
function rainfall() {
    stroke(255);
    strokeWeight(0.5);
    for (var x = 0; x < width; x += 5) {
        for (var y = 0; y < height; y += 10) {
            line(x, y, x, y+5);
        }
    }
}

// shadowy figure
function figure(x, y) {
    push();
    fill(0);
    rect(x, y+275, 10, 50);
    ellipse(x+5, 265, 10, 10);
    pop();
}

function draw() {
    background(50);
    // drawing shadowy figure running through rain, into the 1F window
    house();
    if (frameCount < 170) {
        var xpos = map(frameCount, 0, 170, 0, 550);
        figure(xpos, 0);
    }
    push();
    if (frameCount % 3 == 0) {
        translate(random(0, 3), 5);
    }
    rainfall();
    pop();


    var seq = [rain, group, rain, group, rain, group] // event sequence
    var dur = [5, 48, 45, 30, 15, 15]; // event duration

    if (frameCount % dur[note] == 0) { // play time based on frames
        if (note > 0) {
            seq[note-1].stop();
            seq[note].play();  
        }
        seq[note].play();
        note++;
    }
    if (note == seq.length) { // final glass smash
        glass.play(1);
        scream.play(1.3);
        seq[note-1].stop(1.5);
        var totalFrames = frameCount;
        note++;
    }

    if (frameCount == totalFrames+30) {
        noLoop();
    }
    print(frameCount);
}

LO_10_Computer Music

In this week’s topic, I would like to talk about artist Gottfried Michael Koenig’s work.

Gottfried is a contemporary composer and learnt both music theories and music representations. His work is drastically different from traditional composer’s work. In his presentation in the link above, the music is very suitable for a sci-fi movie background. I admire him for using this avant-garde method to make music in the 1950s, which is a very early stage for even computer and network development. I believe his style and working method had a big impact on the later electronic music. Even though electronic music is not my personal favorite music style, I can still see the art expression in it. This music trend, again as I mentioned before, is very modern and very distinct from all the previous music trends.

I can not guess the algothism and method used in this piece of music, but by guessing, I think he made the basic music elements into variables and borrowed randomness into it. 

Basically, I think every Epoch-making work is precious.

Project-10-Sonic-Story

I was browsing on freesound.org and found the splash sound that I thought was pretty versatile in terms of story telling and after I picked out a few more sounds I cam up with the story of watching a man skydive into the ocean.

sketch>

// Xander Fann xmf Section B
// it is a nice day out as a plane is flying into the air. You feel the size and heft of the play as it flys by. A man sky dives from that plane into the ocean.
var count = 0;
var airplanex = 0;
var airplaney = 100;
var airplanebx = 500;

var noiseParam = 0;
var noiseStep = .03;
var y = 0;
var wy = 250;

function preload() {
    //images
    airplane = loadImage("https://i.imgur.com/bnGrcCO.png")
    airplanebelly = loadImage("https://i.imgur.com/g6yOr9u.png")
    pman = loadImage("https://i.imgur.com/IQzArq5.png")
    ocean = loadImage("https://i.imgur.com/PZiDoUi.png")

    //sounds
    planeengine = loadSound("http://courses.ideate.cmu.edu/15-104/f2020/wp-content/uploads/2020/11/airplane-flying.wav")
    door = loadSound("http://courses.ideate.cmu.edu/15-104/f2020/wp-content/uploads/2020/11/creaking-door-04.wav")
    falling = loadSound("http://courses.ideate.cmu.edu/15-104/f2020/wp-content/uploads/2020/11/falling.wav")
    splash = loadSound("http://courses.ideate.cmu.edu/15-104/f2020/wp-content/uploads/2020/11/_splash-jumnping-a.wav")
}
function setup() {
    createCanvas(400, 200);
    frameRate(20);
    useSound();
}
function soundSetup() {
    planeengine.setVolume(.4);
    door.setVolume(.4);
    splash.setVolume(.5);
    falling.setVolume(.5);
    planeengine.play();
}

function draw() {
    print(count)
    background(200,250,255); //sky
    count++;
    if (count >= 0){
        image(airplane,airplanex,airplaney,100,100);
        airplanex+=3;
        airplaney-=1;
        noStroke();
        for (opac = 50; opac>0; opac-=5){ // sun opacity ot create gradient
            for (dia = 100; dia < 200; dia+=10){ // expanding diameter
                fill(255,255,200,opac);
                ellipse(0,0,dia,dia);
            }
        }
    }
    if (airplanex >= width){
        background(200,250,255);
        image(airplanebelly,airplanebx,-270,500,500); // bottom of big plane
        airplanebx-=3;
        planeengine.play();
     }
     if(count=460){ // door opens
         door.play();
     }
     if(count=500){ // starts falling
         falling.play();
     }
     if(count=500){ // hits water
         splash.play();
     }
     if (count>=475&count<=650){ // man falls and water comes up
         planeengine.stop();
         var n = noise(noiseParam);
         var x = map(n,0,1,0,width/2);
         noiseParam+=noiseStep;
         image(pman,x,y,70,70); //parachute man
         y++;
         image(ocean,0,wy,400,200);
         wy-=1;
     }
     else if (count==650) { // ned
         background(0);
          falling.stop();
          splash.stop();
          noLoop();
     }
}

Looking Outwards 10: Computer Music

The staircase to the staircase from the ground floor to the basement of Hunt Library here at Carnegie Mellon University has an installation designed to be interactive between those who use the stairwell. The light installation creates a noise with different frequencies and tones based on the location of the person. Then, in the end, there is a chime to signify a goal met.

This project is taking an everyday task and filling it with fun and excitement. The student secured permission to place the installation and started working on how to track movement. He was able to use the OpenPose library from the CMU Perceptual Computing lab and the Unity 3D game engine to find positions. I admired how the developer had an idea and kept working at it and acknowledged that it is not complete. He batted with a lot of creative choices like whether he wanted it to be noticeably interactive or a hidden display.

The code and more information can be found here.

Stairs Of Hunt Library

Looking Outwards – 10

For this week’s Looking Outwards, I decided to dive deeper into the Drum Machine used in Steely Dan’s 1980 album Gaucho. By this time the band was quite popular and had access to the best studio musicians in the country to assist in their recordings, but found that often even they weren’t capable of the specificity that the band desired. In 1978 while recording, they contracted Roger Nichols to create their own high quality digital sampling drum machine, Wendel, for recordings on the album. This happened a whole two years before the release of the groundbreaking Roland TR-808 and 909, and the 1978 recordings set an example of what was to come in the next decade.

Project 10 – Sonic Story

sketchDownload
//Carson Michaelis
//Section B

var frameCount = 0;
var rackTime = 0;
var pinsTime = 0;
var ballTime = 0;
var ballColor = 0;
var knockedTime = 0;
var pinsX = [100, 77, 100, 55, 32, 77, 133, 145, 158, 133];
var pinsY = [40, 30, 18, 18, 6, 6, 30, 18, 6, 6];
var pinsAngles = [];
var rollSound;
var strikeSound;
var backgroundSound;
var cheerSound;

function preload() {
//    NAME OF SOUND = loadSound("web address");
    rollSound = loadSound("http://courses.ideate.cmu.edu/15-104/f2020/wp-content/uploads/2020/11/CarsonRoll.wav");
    strikeSound = loadSound("http://courses.ideate.cmu.edu/15-104/f2020/wp-content/uploads/2020/11/CarsonStrike.wav");
    backgroundSound = loadSound("http://courses.ideate.cmu.edu/15-104/f2020/wp-content/uploads/2020/11/CarsonBackground.wav");
    cheerSound = loadSound("http://courses.ideate.cmu.edu/15-104/f2020/wp-content/uploads/2020/11/CarsonCheer.wav");


    //image loading
    bowlingLane = loadImage("https://i.imgur.com/58QdPGi.jpg");
}

function setup() {
    createCanvas(200, 400);
    frameRate(20);
    background(220);
    ballColor = color(random(100,200),75,75);
    for (let i = 0; i < 10; i ++) {
        pinsAngles[i] = random(360);
    }

    useSound();
}

function soundSetup() {
    rollSound.setVolume(1);
    strikeSound.setVolume(.5);
    backgroundSound.setVolume(.25);
    cheerSound.setVolume(.25);
}

function draw() {
    background(220);
    bowlingLane.resize(160,400);
    image(bowlingLane,20,0);

    rack(rackTime);
    bowlingPins(pinsTime);
    bowlingBall(ballTime);
    pinsKnocked(knockedTime);

    frameCount++;

    if (frameCount > 50 & frameCount < 175) {rackTime++; pinsTime++;}
    if (frameCount > 225) {rackTime = 0;}
    if (frameCount > 250) {ballTime -= 1;}
    if (frameCount > 330 & frameCount < 350) {knockedTime++; pinsTime = -100;}

    backgroundSound.play();
    if (frameCount > 250 & frameCount < 330) {rollSound.play();}
    if (frameCount > 330 & frameCount < 360) {strikeSound.play();}
    if (frameCount > 360 & frameCount < 500) {cheerSound.play();}
}

function rack(t) {
    push();
      noStroke();
      fill(100);
      rect(15,0+t,170,-10);
      fill(50);
      rect(15,-10+t,5,-100);
      rect(180,-10+t,5,-100);
    pop();
}

function bowlingBall (t) {
    push();
      noStroke();
      fill(ballColor);
      circle(100,height+20+(t*9),30);
    pop();

}

function bowlingPins(t) {
    push();
      fill(255);
      noStroke();
      circle(100,40-64+t,15);
      circle(77,30-64+t,15);
      circle(100,18-64+t,15);
      circle(55,18-64+t,15);
      circle(32,6-64+t,15);
      circle(77,6-64+t,15);
      circle(100+(100-77),30-64+t,15);
      circle(100+(100-100),18-64+t,15);
      circle(100+(100-55),18-64+t,15);
      circle(100+(100-32),6-64+t,15);
      circle(100+(100-77),6-64+t,15);
      strokeWeight(1);
      stroke(255,0,0);
      circle(100,40-64+t,9);
      circle(77,30-64+t,9);
      circle(100,18-64+t,9);
      circle(55,18-64+t,9);
      circle(32,6-64+t,9);
      circle(77,6-64+t,9);
      circle(100+(100-77),30-64+t,9);
      circle(100+(100-100),18-64+t,9);
      circle(100+(100-55),18-64+t,9);
      circle(100+(100-32),6-64+t,9);
      circle(100+(100-77),6-64+t,9);
    pop();
}

function bowlingGutter() {
    push();
    noStroke();
    fill();
    rect(0,0,20,height);
    rect(width-20,0,20,height);
}

function pinsKnocked(t) {
    if (t > 1) {
        for (let i = 0; i < 10; i++) {
            push();
              translate(pinsX[i],pinsY[i]);
              if (frameCount < 350) {
                  rotate(radians(random(360)));
              } else if (frameCount >= 350) {
                  rotate(radians(pinsAngles[i]));
              }
              pinSide();
            pop();

        }
    }
}

function pinSide() {
    push();
      noStroke();
      fill(255);
      ellipse(0,0,5,15);
      circle(0,-7,9);
      strokeWeight(3);
      stroke(255,0,0);
      line(-4,-7,4,-7);
    pop();
}

In my short story I decided to create a sonic scene of a bowling alley, since this week I watched The Big Lebowski to relieve some election stress.

Looking Outwards 10

Coin Switch – Fedde ten Berge

Video of installation experience in the perspective of a visitor.

Coin Switch is an installation that plays different sounds and alters lighting based on movement within the room. It is interactive art that reacts differently based on the visitor’s unique sequence of movements. This installation was inspired by old coin switches, which was used to count coins. Berge incorporates this old principle by making the visitor flip a coin switch in order to start the sound and light.

I admire how the visitor’s movements reflect different sounds that can evoke different emotions. For example, if the visitor moves quickly, the sounds and lights are more brisk and high pitched, suggesting a sense of urgency. If a visitor moves slowly, the lights flicker more slowly and the sound pitch is lower. I admire how the sounds and lighting is not random, but deliberately affected by the speed and types of movement of the visitor.

Coin Switch uses context-sensitive electronic sound synthesis and sound design to play the sound and change the lights synchronously. The installation has a variety of algorithms that can create a range of different sound and light operations.

schermafbeelding2013-02-18om23.39.25
photo of Coin Switch installation that projects the light

LO-10

For this week’s LO, I decided to look into Imogen Heap’s “Mi Mu Gloves”, an idea of hers that was originally conceived in 2010 but only recently was able to be fabricated and prototyped for public consumption. Heap, originally only a musician, wanted to create the product to bring electronic music to another level, allowing artists to step away from their immobile instruments and connect with the audience. The gloves themselves have a mass amount of flex sensors, buttons, and vibrators that come together to simulate the feeling and sounds of real instruments. The gloves correspond over wifi with a dedicated software and algorithm that reads the movements of the wearer and translates them into sounds, depending on what the user records as inputs. 

It was interesting to see how technology has come as far to allow a musician to play instruments without having the physical instrument in front of them. I admire Heap’s ability to bring her dreams, which she dreamt up in 2010, to reality, even with barriers that existed, and the flexibility that the gloves could provide even to people with physical disabilities that don’t allow them to play instruments. This is demonstrated by Kris Halpen, whose life as a musician has been dramatically affected as a result of the Mi Mu gloves.