Week 4: fundamentals of music composition

This week was a mini-breakthrough for interactive music. I am definitely starting to understand more about the code and music. I spent a lot of time the past week just going over the in class examples, reading “Javascript: The Good Parts” and asking a lot of questions to understand class, methods, and prototypes. It also helped to visit The Active Space for our field trip in Bushwick. That was incredibly inspiring, and made me want to just go home and work.┬áIt was nice to hear people outside of a school environment talk about interactive music and to learn more about the work of Yotam. I felt like I left with a better grasp of what interactive music is, and how we can contribute to it.

Our assignment this week was to encapsulate our notes in a Function Object and give our object an expressive interface that we can use. What I decided to do was have a motif of “conflict + resolution”. My Function object is Resolution and my public methods are the types of ways in which people fight in order to come to a resolution.

I decided to represent this visually with lego men faces. Each facial expression represents notes that convey the personality of the person fighting. For example, the angry face is only given 3 notes that are lower and have a longer duration, whereas the scared-looking face has 12, which start low and go very high. While the “calm” smiling one has about half that amount of notes that sound more balanced and calm.

Once I got all of the notes to emulate the emotions of angry/aggressive, scared, and calm, I wanted to give the user the opportunity to play with the pitch of all three. I thought this would be a nice addition to simulate a type of argument that escalades and then eventually calms down to resolution. Often when we argue, depending on our mood, our voices get higher or lower, which is usually related to how irrational or logical we are being. I thought this would be a nice interaction for a user to experience.

Screen Shot 2016-03-01 at 7.45.53 AM

In order to do this I created a method inside of the constructor function that raises or lowers the octave. Then when I called this method inside of the button, I added a counter variable that would increase or decrease.

Screen Shot 2016-03-03 at 9.19.43 AM

Below is the final version.

Screen Shot 2016-03-03 at 9.15.08 AM