« Accessibility | Main | Listen Far, Listen Close »

MicroPoet 200

The MicroPoet 200 is a creative tool for transforming texts. The applet, source code, and instructions for use are available here.

control panel small
MicroPoet 200 Control Panel (Prototype): click for larger image

Example output (click for full-size images):


Instant surrealist poetry

Abstract language poetry

Nonsense and gobbledygook

This video shows the screen-based component MicroPoet 200 in action (512x384 QuickTime, ~2MB).

Overview

What relationships lie hidden in a text? At what point does a text stop being unintelligible and begin being meaningful? Is it possible to create abstract, illegible text that nonetheless have a means of mediation with the reader? The MicroPoet 200 is designed to explore these questions.

The MicroPoet 200 parses a given text into three kinds of units: lines, words, and letters within a word. These units are individually susceptible to three types of transformation:

  • visibility: whether a unit appears or not;
  • order in sequence, such as the order of letters within a word;
  • identity: whether a unit is expressed by itself or by a related stand-in, such as another word or letter with the same width (in pixels)

These transformations are applied randomly across the text. The MicroPoet 200's interface controls the extent to which the transformation applies. For example, if the "letter visibility" control is set to 0, all letters will be visible; at 50%, each letter has 50% chance of appearing; at 100%, all letters are invisible.

Code

The PC-based component of the MicroPoet 200 is a Processing applet. The applet loads a set of prepared texts, parses them into objects, then waits for input from either the physical interface or from the keyboard. (The web applet linked above uses the latter interface exclusively.)

Words are subject to two kinds of translations worthy of note here. The first is a "spatial swap," meaning that the word is replaced by another word of the same pixel width. Possible words are drawn from a file in the data directory of the applet named words. (The applet above uses a list of words randomly drawn from OS X's built-in word list, which can normally be found at /usr/dict/words.)

The second is a "language swap," in which each word is replaced by its direct, word-for-word translation in French according to Google Translation. The translations are gathered ahead of time using this Python script, which screen-scrapes the result of a series of Google Translation requests using Beautiful Soup.

Interface Design and Construction

control panel underbelly small
The Control Panel's underbelly (click for larger image)

The physical interface consists of ten potentiometers, two switches, a breadboard, an Arduino, and a MC14067BCP multiplexer. The Ardunio reads values from the potentiometers in turn by selecting an input on the multiplexer; these values are then sent back via serial communication to the Processing applet. Here's the source code for the Arduino sketch.

The interface was designed to encourage playful interaction, along the lines of using an audio mixer or synthesizer. The knobs provide instant feedback about the state of the device, and two knobs can easily be manipulated simultaneously. Although the applet works fine without the physical interface, the software interface is a bit less intuitive and has a higher learning curve.

Inspirations

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)