September 13, 2021No Comments

Music IxD: Framework + First Ableton Demo

Bill Verplank's IxD Framework (Link)

Based on my last post's interactive concept of a room's music and visuals controlled by a single user, I have rethought that idea within this framework.

Idea: Motion sensor and type of music affects lasers, interface controls music

Metaphor: Motion affects atmosphere

Display: Room, foggy with light set up

Error: Light in room is too dim to detect motion

Scenario: In size of room (at-home or in larger venue space)

Task: Controlling music and lights

Control: Screen interface, Motion sensor

Composing a demo with Ableton Live

With being already unfamiliar with Ableton Live and in general creating music - I had to experiment a lot with timing and types of sounds. I watched several YouTube tutorials on creating Techno-oriented songs.


Interaction: User appears, arms down, hasn't touched inteface

Response: Bassline starts


Interaction: User raises arms, two synths start.

Response: Synths play


Interaction: Move right arm

Response: BPM of track changes


Interaction: Move left arm

Response: Synths play


May 6, 2021No Comments

Machine Learning for PComp: Final Project Proposal

Dance to the rhythm using your own webcam.

For my final project I am combining this with my Music Interaction Design final project.

In this rhythm game, PoseNet is utilized to hit repetitive beats while playing a drum kit. Players use their bodies as a controller to hit upcoming shapes laid out on the live video capture screen on beat with their wrists. The score is computed by how well they time their dance to the beats being presented. The players explore the relationship between the movements of their bodies, sound, and rhythm. Augmented reality with a webcam creates an accessible way to explore all of these. The project is the start of a game of which has hopes of having more song choices, various levels, and more intricate functionality. 

My first step was to create the interface with sounds. Then with PoseNet using the Left and Right Wrist.

https://editor.p5js.org/natayie/present/E_IQ4p14O

I then coded the Arduino LED lights according to each side and when the side is 'hit'. I came to initial problems with the p5 code as the outByte was sending too much information too fast, and I solved it with frameCount.

int ledPinDown = 2;
int ledPinRight = 3;
int ledPinLeft = 4;
int ledPinUp = 5;

void setup() {
  pinMode(ledPinDown, OUTPUT);  // sets the pin as output
  pinMode(ledPinRight, OUTPUT);
  pinMode(ledPinLeft, OUTPUT);
  pinMode(ledPinUp, OUTPUT);
  Serial.begin(9600);        // initialize serial communications
}
 
void loop() {
 if (Serial.available() > 0) { // if there's serial data available
   int inByte = Serial.read();   // read it
   if (inByte == 1) {
     digitalWrite(ledPinDown, HIGH);  // use it to turn on the LED DOWN
     digitalWrite(ledPinRight, LOW);
     digitalWrite(ledPinLeft, LOW);
     digitalWrite(ledPinUp, LOW);
   } else if (inByte == 2) {
     digitalWrite(ledPinRight, HIGH);  // use it to turn on the LED RIGHT
     digitalWrite(ledPinDown, LOW);
     digitalWrite(ledPinLeft, LOW);
     digitalWrite(ledPinUp, LOW);
   } else if (inByte == 3) {
     digitalWrite(ledPinLeft, HIGH);  // use it to turn on the LED LEFT
     digitalWrite(ledPinDown, LOW);
     digitalWrite(ledPinRight, LOW);
     digitalWrite(ledPinUp, LOW);
   } else if (inByte == 4) {
     digitalWrite(ledPinUp, HIGH); // use it to turn on the LED UP
     digitalWrite(ledPinRight, LOW);  
     digitalWrite(ledPinDown, LOW);
     digitalWrite(ledPinLeft, LOW);
   } else {
     digitalWrite(ledPinUp, LOW); // sets all LEDs OFF
     digitalWrite(ledPinRight, LOW);  
     digitalWrite(ledPinDown, LOW);
     digitalWrite(ledPinLeft, LOW);
   }
   delay(400);                // waits
 }
}

Next Steps:

  • Finish the rhythm game
  • Connect to larger, tube LEDs
  • Stylize interface

February 25, 2021No Comments

Music IxD: Introduction (Week 1)

Music Inspiration

Against Modern Ravers by Rephate

I only started recently getting interested into techno this past year. Although I was always fond of electronic music - I have never grew a liking for techno until my experience of the Basement in Brooklyn my first trip to NYC.

Not only the dark, heavy music caught me, but the experience itself. The lights pointing through the fog paired with the beats. I wanted to see more of this in Seattle. From then on, I was extremely inspired by light-based installations and experiences. (Ex: James Turrell, Printworks in London, TeamLabs, Shohei Fujimoto's Intangible Forms)

Artechouse intangible forms
Shohei Fujimoto's Intangible Forms at Artechouse NYC

Interactive experience concept poster

Based on Rephate's song, I hope to slowly layer on the various drum patterns and sounds all paired with the various lasers. An initial bass pattern will start once a user appears in the motion sesnsor. Each type of drum sound would appear with each laser and a type of motion, the motion may change with the speed. Once the music is decided through the interface, there is a sensor that will detect the position of the hands, then the user can control rotation of certain lasers and speed of strobes. This interaction gives the user full control of both the music and visuals easily, giving full control of the room also. As the user is utilizing the interface, other occupying the space can enjoy the visual in the larger room.

Learning about Ableton Live

  • no experience in creating music
  • beginner experience with music theory (playing the piano when i was younger)
  • ux is easy to learn (drop in beats and draw in when it plays)

say hello