In the Blink of an Eye
In the Blink of an Eye is a study for a sound installation. The installation consists of a six channel surround sound setup. Each speaker represents a player in a semi-autonomous musical piece. The players "speak" snippets of text pulled from the daily news in real-time. The score is modeled on Terry Riley's seminal minimalist composition In C.
The artist presenting the installation during a critique.Each player adheres to one of 53 different rhythmic patterns. Each pattern is approximately one measure long. The first performer plays a text snippet as the "pulse", on the beat, for the duration of the performance. The others repeat their snippets a few times and then request a new snippet from the system. Each player determines how long it will play its snippet and then moves on to the next patter/snippet whenever it feels like it. Thus, the players move out of sync with each other over time forming various interlocking polyrhythms.
The software consists of four major components:
- A web page crawler/classifier which explores and analyzes analyzes web pages.
- A text-to-speech program which synthesizes words and phrases into sound files.
- A sound synthesis program which "plays" the words and phrases according to a rhythmic score.
- A Java applet which controls the whole thing.
Crawler/Classifier
The crawler/classifier is built using Nutch and the Carrot2 clustering libraries. Nutch is instructed to do a depth-1 crawl of Google News. It pulls down the front page of Google News and then crawls each of the news articles linked to from the front page. Pages are post-processed by the Carrot2 libraries using the Lingo clustering algorithm. Clustering is a machine learning technique that takes a bunch of text as input and tries to find patterns in the text that represent what the text is about. It's useful to think of clustering algorithms as automated categorizers. They reead the page and try to sum it up in a few different categories.
Another (oddly similar) view of the installation in the Mechatronics warehouse at Fremont.Speech Synthesis
The list of words and phrases produced by the crawler/classifier is passed on to the Festival Speech Synthesis System for text-to-speech synthesis. Using a random voice for each word/phrase, Festival generates a sound file which is stored on disk.
Sound Synthesis
A ChucK script is used to "play" the synthesized speech files into the installation space. The script has a MIDI-like score representing the 53 different rythmic patterns. It requests sound files from the Java applet using OSC messages. Each player runs on a separate thread and decides how many times to play its pattern. When the player is done playing a pattern, it requests a new sound file from the Java applet and begins the next pattern using the new file.
Java Applet
The Java applet is built using the Processing framework. It acts as the glue that binds all the pieces together. The applet kicks off the crawler/classifier process as well as the Chuck script. It also feeds the ChucK script new sound files whenever it requests them.
momentan: in this instant
Momentgeist: spirit of an instant
Augenblick: in the blink of an eye
