Christine Seo – Looking Outwards 12

I was very inspired by the ideas of Real Slow, a project that visualizes music, as well as AV Clash, a project that involves audiovisual compositions through audio and sound effects. Throughout the course, my favorite parts were when we had to incorporate the camera and when we had to allow music in our assignments. Thus, I decided to look for inspirations that interacts with these two topics. First, these both have very interesting visuals that react to sounds and music. For Real Slow, there is face detection that allows the components of the face to react to the music and volume, which I found was very fascinating. This interactive project was originally inspired by the music experience for an Australian indie-electronic band, “Miami Horror”. The artist wanted to create a program to fit the mood & tone of their electro music “Real Slow”. As I researched, I found out that the first prototype was developed on OpenFrameworks and then implemented the idea on the web using JavaScript libraries for face tracking called ClmTrackr and p5.js for creating sound visualization. For AV Clash, I though that it was interesting how there is interaction between the objects that responded to the sounds. The project allows the creation of audiovisual compositions, consisting of combinations of sound and audio-reactive animation loops. Objects can be dragged and thrown, creating interactions (clashes) between them. Both of these projects not only have some sort of interaction with music and the program, but also an interaction with the audience as well, whether it is through face detection, or mouse detection.

Caption: Video documentation of Real Slow (2015), a Face Sound Visualization with music by Nithi Prasanpanich

http://prasanpanich.com/2016/01/01/real-slow/

Caption: Video representation of AV Clash (2010), a project by Video Jack, that creates audiovisual compositions, consisting of combinations of sound and audio-reactive animation loops

https://www.creativeapplications.net/flash/av-clash-flash-webapp-sound/

 

Kevin Thies – Project Proposal

An example room with enemies

My proposal for a final project would be a top-down view dungeon crawler game. I found that I was interested in using keyboard inputs as controls, and the natural development from there is a game.

The white circle is a stand-in for the character, and the red circle is where the mouse is aiming

Players would be a wizard, armed with a staff firing magic missiles (I think turtles would be good for a meandering projectile) going room to room vanquishing skeletons. I think rooms would all be square, but could spawn with doors. I could possibly make a system to make rooms and store their data, and start with a random numbers of doors that would decrease until rooms could no longer spawn with doors linking to new rooms. In this last room would be something that would be the goal, possibly a pile of treasure. If time becomes an issue, then the scope of the project could shrink to become a single room with waves of enemies, the goal being to last as long as you can.

The main inspiration was a Scratch project a friend and I built in our early high school days.

Joanne Lee – Final Project Proposal

I want to create an educational Rube Goldberg game geared towards children ages 5-9. I think that Rube Goldberg games are very helpful in learning cause and effect. I would like to use my virtual Rube Goldberg machine to complete ‘green’ tasks such as watering a plant, turning off the lights, recycling, etc. The purpose of the game is to teach children to understand cause and effect better and also understand the impact we can make when we go green!

In terms of functionality, I’ll have a virtual Rube Goldberg machine with certain parts that are broken. Through trial and error, they will have to pass three stages — each stage dedicated to a green task. I’m still juggling between what tasks I want to do. Once they pass each level, they’ll be shown a blurb about the environmental impact that the stage’s task makes on the environment. Below is a rough mock-up of what a level could look like.

In the actual one, I will include images to replace some aspects. I just used rectangles and circles to roughly represent a stage.

Justin Yook – Project Proposal

General idea of project

In the world of dance, concepts and formations are very important because they heavily influence how detailed choreography looks and feels as a whole. But, this part of the choreography process can be difficult because there are many factors involved. My final project is called Stage Master, a tool that choreographers can use to make various formations and staging ideas in an organized manner. Specifically, users will first drag and drop an audio file into the program. Then, the program will break down the audio into sets of eight counts after computing the BPM or tempo. Next, users can add as many dancers on the canvas by clicking the mouse, and move each dancer around by dragging them with the mouse. Every formation will be linked to a corresponding frame of counts within a set of eight counts. The convenient feature is that users can play the music while they arrange dancers. After finishing all the staging ideas, the program has the ability to export all screenshots of the formations in a compiled pdf file.

Justin Yook – Looking Outwards 12

Osu gameplay
Example from Playbook.dance

The two projects that are relevant to my project are Osu by Dean Herbert, and Playbook.dance by Greg Lee. Osu is a rhythm game, where players press on the keyboard or click the mouse to the song they are listening to in the game. I admire the game because it has grown to be one of the biggest of its genre, and it has never lost any player engagement; the idea of interacting with music is interesting. Playbook.dance is an application for the iPhone, that allows choreographers to arrange dancers, represented by circles, to create concepts for staging and formations. I like this application because it is easy to use, and pretty flexible. The only negative side of it is that it is becoming outdated, because the author does not update it anymore.

Sources:

https://osu.ppy.sh/home

https://itunes.apple.com/us/app/playbook-dance/id572038933?mt=8

Robert Oh- Project 11- Composition

version2

//Robert Oh
//Section C
//rhoh@andrew.cmu.edu
//Project-11-Composition

var turtle;
var fx = 240;
var fy = 240;
var diffX = 100;
var diffY = 100;

function setup() {
    createCanvas(480, 480);
    frameRate(30);
    noStroke();
}
 
function draw() {
    background(130, 255, 246);
    fishDisplay(fx, fy);

    diffX = mouseX - fx;
    diffY = mouseY - fy;

    if (diffX > 1 || diffX < -1){
        fx = fx + (diffX)/30;
    }
    
    if (diffY > 1 || diffY < -1){
        fy = fy + (diffY)/30
    }
}

// drawing each fish
function fishDisplay(x, y) {
    turtle = makeTurtle(x, y);
    turtle.penDown();
    turtle.face(270);
    turtle.setColor(100);
    turtle.setWeight(3);

    //body
    for (var i = 0; i < 360; i ++){
    turtle.forward(.7);
    turtle.right(1);
    }

    turtle.face(0);
    turtle.penUp();
    turtle.forward(80);

    //tail
    turtle.penDown();
    turtle.face(30);
    turtle.forward(40);
    turtle.face(270);
    turtle.forward(40);
    turtle.face(150);
    turtle.forward(40);

    turtle.penUp()
    turtle.face(180);
    turtle.forward(60);
    turtle.face(270);
    turtle.forward(25);

    //eye
    turtle.penDown();
    turtle.face(0);
    for (var i = 0; i < 180; i ++){
        turtle.forward(.2);
        turtle.right(2);
    }
}

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 went back to data exam 1 once again and borrowed the fish design we had drawn. I wanted to revisit the data exam and had the fish follow the mouse cursor. Overall, I had a lot of fun recreating the fish (but with turtle-style drawing).

 

Robert Oh- Looking Outwards- 11

Caption: “Star Wars- Imperial March on Eight Floppy Drives”

For this week’s looking outwards post, I decided to talk about this interesting YouTube video made by user MrSolidSnake745 (whose YouTube channel contains other technology-based music). I really admire this project because the whole set-up is very unique. Using 8 different floppy drives to alternate between tones and pitches to create a universally famous theme is a cool idea!

I have no idea how the creator actually got to create this music, but if I had to guess, the creator probably set up each individual floppy drive to play a certain tone and timed each floppy drive perfectly to play the “Imperial March” theme perfectly. All in all, I thought this was a very cool project!

Hannah Cai—Project 11—Composition

click to generate a new tree!

/* Hannah Cai
Section C
hycai@andrew.cmu.edu
Project-11-Composition
*/

//turtle code
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(0),
                  weight: strokeWeight(w),
                  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;
}

/////my code

var angle;
var x;
var y;
var w = 5;
var minAngle = 1;
var maxAngle = 30;
var minRatio = .6;
var maxRatio = .9;

function setup() {
    createCanvas(480, 480);
    background(250);
    strokeJoin(MITER);
    strokeCap(PROJECT);
    frameRate(1);
}

function tree(length, turtle, w, r, l) {
  if (length > 10) { //create recursive branches
    ratio = random(minRatio, maxRatio)
    turtle.forward(length);
    turtle.setWeight(w * ratio)
    turtle.right(r);
    tree(length * ratio, turtle, w*ratio, random(minAngle,maxAngle), random(minAngle, maxAngle));
    turtle.left(r+l);
    tree(length * ratio, turtle, w*ratio, random(minAngle, maxAngle), random(minAngle, maxAngle));
    turtle.right(l);
    turtle.setWeight(w / ratio)
    turtle.back(length);
  } else { //draw flowers!
    turtle.setColor("Pink");
    turtle.setWeight(10);
    turtle.forward(10);
    turtle.setColor(0);
    turtle.setWeight(w);
    turtle.back(10);
  }
  noLoop();
}

function draw() {
    var turtle = makeTurtle(width / 2, height);
    //trunk
    turtle.penDown();
    turtle.right(270);
    turtle.forward(length);
    //branches
    tree(100, turtle, w, random(minAngle,maxAngle), random(minAngle,maxAngle))
}

//refresh the canvas when mouse is clicked
function mouseClicked() {
  setup();
  draw();
}

For this project, I was inspired by recursive trees, and I wanted to see if I could make one with turtle. Although it took a long time to figure out, I’m really proud of the end result! In the future, I’d want to try and animate the tree or make it interactive, although it might turn out to be too computationally expensive. Overall, I feel like I learned a lot about turtles and recursive functions, and I had a lot of fun!

Joanne Lee – Looking Outward 11

Alan Walker’s 2015 hit single, ‘Faded’.

When I realized this week’s theme was computational music, I immediately thought of Alan Walker specifically. He is a music producer and he creates his music (EDM type of music) using a computer program that allows him to combine synthetic instruments and sounds. He is also able to edit the sound waves in the program to tweak it any which way he wants and add effects such as echo or reverb to name a few. The song that I chose specifically is ‘Faded’ which is one of his most popular songs. When I first came across this song, it really piqued my interest in computer music and I actually felt motivated to learn about computer music.

Walker obviously begins with an artistic vision and then he tinkers with the program to make sure every beat and sound is placed exactly where he wants it to be. Provided below is a video of one of this studio sessions and he has other studio sessions on his channel. I am thankful to live in a generation where computer music allows someone to create music with all sorts of synthetic instruments on their own from the comforts of their own home / studio!

 

Alan Walker in his studio session for ‘Faded’, showing snippets of the thought process behind his hit song.

Sophie Chen – Looking Outwards 11

Laetitia Sonami

Laetitia Sonami is a sound artist, performer, and composer of interactive electronic music based in San Francisco. What initially drew my attention is “The Lady’s Glove”, an instrument she developed herself, which triggers and manipulates sound in live performance. This instrument is worn on her right hand, and is a black glove made of mesh integrated with a lot of different sensors such as micro-switches, pressure pads, ultrasonic receivers, and light sensors, just to name a few. The signals the glove receive are connected to a hardware named Sensorlab, which is then mapped onto MAX MSP running on a computer, which connects it to pre-stored sounds.

Sonami performing in her glove instrument

Sonami said that through creating this instrument, she was trying to figure out at which point does a controller become an instrument. I found what she said to be very insightful and thought provoking, especially applicable today when there are so many tools around us that we can just use to generate things without even putting much thought into it. Sonami concludes that when a software starts adapting to the controller, it becomes more of a symbiosis between the controller, the code, and the software. I think her glove does successfully embody that and qualify as an instrument, not just a controller/generator.

(jump to 10:34 for Sonami performing with the glove)