Cue the violins

This week, Michael, Patricia, Poram and I edited the footage from last week’s shoot in Final Cut Pro and completed our movie, 15 East 84th Street.

Once the footage was edited, we exported the audio as an AIFF to Soundtrack Pro to reduce noise and add sound effects (kitchen timer, cell phone ring) and intro/outro music – cheery Gershwin for the opening titles preceding what looks like a modestly happy family Thanksgiving, and intense Rachmaninoff for the heartwrenching and poignant final scene in which — SPOILER ALERT!!! — a long, lingering shot through the Lewis family photo album reveals that the characters were, in fact, celebrating Thanksgiving at different times, decades apart.

15 East 84th Street from katherine keane on Vimeo.

Also, I came across this guide to Final Cut Pro from UC Berkeley’s Knight Digital Media Center that I thought was worth sharing – it seems like a pretty handy reference for anyone who’s getting started with Final Cut Pro.

Sound assignment (the record deal is forthcoming)

In response to recent thefts from the Clif Bar locker, Patricia Adler and I showcased our feelings towards the guilty party in a veritable masterpiece created for the Comm Lab sound assignment. We recorded the rap vocals in the sound booth using a USB Snowball mic, used the Propellerheads’ A Number of Microphones as the background track, and inserted a line from Billy Joel’s Honesty as a rather melodramatic reminder that we need to be good to each other around here.

Clif Bar Robbery! (beware of explicit lyrics and subpar rapping skills that might hurt your ears)

PComp Lab: HBridge

In this lab, we learned to control the direction of a DC motor, i.e. reverse the direction of the current in the motor, using a H-Bridge circuit. I’d previously learned while doing the transistor lab that the motor I was using operated on between 3.3-5V, so I connected the motor to 5V in this lab instead of 12V – and as expected, the motor worked perfectly.

When the circuit is powered, the motor spins in one direction – and when the switch is pressed, it spins in the reverse direction.

H-Bridge lab from katherine keane on Vimeo.

Code

  const int switchPin = 2;    // switch input
  const int motor1Pin = 3;    // H-bridge leg 1 (pin 2, 1A)
  const int motor2Pin = 4;    // H-bridge leg 2 (pin 7, 2A)
  const int enablePin = 9;    // H-bridge enable pin
  const int ledPin = 13;      // LED 

  void setup() {
    // set the switch as an input:
    pinMode(switchPin, INPUT);

    // set all the other pins you're using as outputs:
    pinMode(motor1Pin, OUTPUT);
    pinMode(motor2Pin, OUTPUT);
    pinMode(enablePin, OUTPUT);
    pinMode(ledPin, OUTPUT);

    // set enablePin high so that motor can turn on:
    digitalWrite(enablePin, HIGH);

    // blink the LED 3 times. This should happen only once.
    // if you see the LED blink three times, it means that the module
    // reset itself,. probably because the motor caused a brownout
    // or a short.
    blink(ledPin, 3, 100);
  }

  void loop() {
    // if the switch is high, motor will turn on one direction:
    if (digitalRead(switchPin) == HIGH) {
      digitalWrite(motor1Pin, LOW);   // set leg 1 of the H-bridge low
      digitalWrite(motor2Pin, HIGH);  // set leg 2 of the H-bridge high
    }
    // if the switch is low, motor will turn in the other direction:
    else {
      digitalWrite(motor1Pin, HIGH);  // set leg 1 of the H-bridge high
      digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low
    }
  }

  /*
    blinks an LED
   */
  void blink(int whatPin, int howManyTimes, int milliSecs) {
    int i = 0;
    for ( i = 0; i < howManyTimes; i++) {
      digitalWrite(whatPin, HIGH);
      delay(milliSecs/2);
      digitalWrite(whatPin, LOW);
      delay(milliSecs/2);
    }
  }

EL DJ: The best jukebox on the planet?

This morning while doing a bit of blog housekeeping, I realized that I’d accidentally left the PComp observation assignment in unpublished draft form on WordPress. However, instead of immediately hitting the Publish button to avoid further delay, I decided to do a bit of additional digging regarding the origins of the interactive technology that I chose to observe.

With camera and notebook in hand, I stationed myself on a barstool at Hi Fi in the East Village – a good ol’ divey kind of place, within walking distance from my apartment, with a decent selection of beers on draught – and what’s more, Hi-Fi  happens to be the home of EL DJ (Extra Large Digital Jukebox), the best jukebox in the city, as far as I’m aware (full tracklist can be viewed here). What better place to watch people interact with technology while investigating from a user interface perspective the accuracy of Hi Fi’s claim that theirs is “the best jukebox on the planet”?

EL DJ was custom-built “from a refurbished PC and some off-the-shelf additions,” and houses tens of thousands of songs in MP3 format – many of which were manually uploaded from the owner’s CD collection back in 2002.

Users spend the longest amount of time perusing all the choices that the jukebox presents to them. From personal experience, I doubt that this perusal time poses a problem to the majority of jukebox users, as many people seem to enjoy scanning the music at their leisure. On several occasions, users were approached by other people they didn’t seem to know, who were curious/interested to see what music they were considering playing on the jukebox – so it could be said that the jukebox is a good way to meet new people through common interests – or at least spark conversation.

The EL DJ user interface consists of a trackball/mouse to scroll through the music on the display, and a keypad on which the user must key in the number of the song as displayed on the screen. Patrons seemed to experience the following problems with the user interface:

  1. Scrolling through albums using the trackball-mouse is rather unwieldy, as the movement doesn’t always seem to be accurate. Also, the user must remove their hand from the trackball in order to key in the number of the song they want to hear.
  2. Many users seemed to have a bit of trouble entering their song choices into the jukebox – not only because they had to remove their hand from the trackball, but due to the length of the numbers that correspond to each song. As the night went on, some patrons seemed to have a bit of trouble remembering these five-digit numbers – and more than once, I heard users telling the person next to them to remember the song number as they keyed it in.
  3. Upon entering her song choices into EL DJ, one woman realized a moment too late that she’d misread a song number – perhaps an indication that the screen is too far away from the physical interface, or perhaps suggesting that the mapping isn’t quite right. Upon observing this, the following quote came to mind from Norman’s The Design of Everyday Things: “If  an error is possible. someone will make it. The designer must assume that all possible errors will occur and design so as to minimize the chance of the error in the first place, or its effects once it gets made. Errors should be easy to detect, they should have minimal consequences, and, if possible. their effects should be reversible.”

Hi Fi’s jukebox houses a staggering selection of sweet tunes, but the interface leaves room for improvement. Devices located in bars should be so easy, even a cavemen could do it.

CIMG0002

Bar patron experiences confusion with EL DJ's user interface

Using the trackball/mouse to browse the jukebox selection

Using the trackball/mouse to browse the jukebox selection

The bartender successfully completed her song choices on EL DJ. Familiarity helps.

The bartender successfully completed her song choices on EL DJ. Familiarity helps.

Lights, camera, action – and trying to keep a straight face

On Friday, Michael, Patricia, Poram and I headed up to the UES, armed with a Panasonic HD camera, tripod, lighting kit, microphones, props and other equipment for our movie shoot.

Lighting and camera setup took longer than anticipated, but went pretty smoothly overall. The large, echo-filled space proved challenging in terms of audio setup and required quite a bit of troubleshooting. For me, though, the biggest struggle was keeping a straight face in front of the camera.

Our guest star Lucas, who played the role of the great-grandfather, managed to remain patient and wonderful as always – and was undoubtedly the best actor of all. Thank you, Luke!

E.M. Forster's 'The Machine Stops'

“Men made [the machine], do not forget that. Great men, but men. The Machine is much, but it is not everything. I see something like you in this plate, but I do not see you. I hear something like you through this telephone, but I do not hear you.”

“Cover the window, please. These mountains give me no ideas.”

First published 100 years ago in the context of the Industrial Revolution, E.M. Forster’s ‘The Machine Stops’ foreshadows currently relevant issues arising from increased dependence on, and trust in, technology.

Forster depicts a world in which humans live in isolation beneath Earth’s crust, have lost touch with their souls and senses. The parameters of their lives are defined by the Machine Book, and most residents are oblivious to anything that exists outside of the Book. For them, “machinery” has gone beyond functioning as an enabler of human communication, to the point where it functions as an intentional barrier to physical human interaction.

I was struck by the stark meaninglessness of Vashti’s life. A music professor, she cuts herself off from the outside world and surrounds herself with switches that control every movement. The music is worked by “machinery;” no musical instrument is ever mentioned; and it seems that the lack of interaction within her profession, combined with the loss of the human soul, has led to the “defect” that she identifies in the music. While Vashti knows “several thousand people,” it’s evident that she seldom, if ever, physically interacts with any of them. Moreover, she is shocked when her son requests to physically meet with her. A rather sad existence, no?

The Machine Stops highlights the difference that exists between technology enhancing the quality of life, and inhibiting human interaction – a difference that we must not lose sight of while at ITP. While we can geek out on new technologies to our hearts’ content, we must remember that ultimately, the human experience we create is the meaningful part. Or, as Forster puts it, “man is the measure.”

ICM Final Proposal: Utterances

There’s no fridge in this joint. For my final ICM project, I plan to expand upon the Drag & Drop Utterances project I began for the ICM midterm. This project will harness the power of Processing, the ITP vocabulary and computer displays to create interactive utterances.

Feedback from the midterm presentation generated a number of ideas I may explore with this project:

  • Changing up the words over time – by parsing from “The List,” news sources, StreamITP.com, Twitter, M-W Word of the Day, SMS text messages, words submitted through online form, or from ITPedia.
  • Creating an ITPpoetry Twitter feed – after this week’s applications presentation, perhaps feed the Utterances to StreamITP?
  • The project could be used for project management/brainstorming sessions – if the appropriate words are used. This could be cool!
Drag & Drop Utterances
Utterances

Step 1: Create one magnet on a plain background: http://itp.nyu.edu/~kjk311/ICM2009/poetry/
Step 2: Create array of magnets, with word on them (such as KAT)… and make the width of the magnet correspond to the length of the word.  http://itp.nyu.edu/~kjk311/ICM2009/ICMfinal/iteration1/
Step 2: Figure out how to drag and drop the word from one location to another.
Step 3: Create a list of ITP/poetry words to use… or figure out how to parse a limited number of words from multiple sources.
Step 4: Create array of word objects from list.
Step 5: Place the array of words in random order in the “word bin.” Figure out how to select, drag and drop them without screwing up anything. Have words shake when another word is removed from the bin.
Step 6: Create background – possibly a brick wall, possibly a Processing window (void setup, void draw, etc.).

Instant party

Finals are upon us, and it’s the most wonderful time of the year (almost). What better time to encourage stress-busting through partying? For the Pcomp final, I’m hoping to create a device that enables the user to get the party started, or at least host a 5-minute stress-busting mini party. The device should be portable, and possibly wearable, thus enabling the user to take, and start, the party anywhere.

Matt Ganucheau made the excellent suggestion of using this guy dancing on a hillside at the Sasquatch Festival as inspiration for the project. He dances around by himself for quite a while, another guy joins him after about 20 seconds, then another at 0:53, and around 1:10, a steady stream of others joins in. By the end of the three-minute clip, the lone dancer guy has created quite the dance party.

Watching the Sasquatch guy, we realized that a good way to tackle the potential annoying-ness of the device – for example, if used by the wrong hands, in the wrong social situation, or amidst an unwilling crowd - would be to adjust the party intensity depending on the amount of interaction/interest that the user receives upon activating the device. For instance, the music could become incrementally louder as others join in.

What are the essential ingredients to get everyone in the mood to party? Music, lights, disco ball, confetti and physical movement are some of the factors we’ll explore in the next week or so…

PComp Lab: Using a transistor to control high current loads

The purpose of this lab was to learn to control a high-current DC load – in this case, a DC motor – from a microcontroller. I used the DC motor and 12V DC adapter that came in our PComp kit.

Once I’d put together the circuit, it made clicking sounds but didn’t move… and so the troubleshooting began: I triple-checked the wiring, used a multimeter to record the voltage between various points, changed out all the components one by one, and switched out the 10K ohm resistor for the 1K ohm.

The video clip embedded below depicts three different attempts to make this circuit work as the lab intended.

  • Take 1: The motor moves somewhat erratically, and the Arduino seems to be resetting itself.
  • Take 2: The motor moves at a SLOW constant, and emits a high-pitched buzz that sounds like bagpipes (easily my least favorite musical instrument in the world).
  • Take 3: Finally, we unplugged the 14V DC adapter and used 3.3V from the Arduino to power the DC motor, adjusting the speed with the pot. This worked perfectly – but defeated the purpose of the lab, which was to use a high current load.