Go to the Converging Stanzas Generator!

I put this together over a year ago as a coding exercise and then just forgot about it. Since I first got Jackson Mac Low’s collection of new and selected poems Thing of Beauty in 2008, the poem “Converging Stanzas” has fascinated me. I think it’s the entropy at it’s core, the slow decay, like William Basinksi’s Disintegration Loops in poem form.

The materials and method used for the poem were detailed in the following note by Mac Low that was included in Thing of Beauty:

“Converging Stanzas” was composed by chance operations utilizing the random-digit table A Million Random Digits with 100,000 Normal Deviates (Glencoe, IL: The Free Press, 1955) and The Basic English Word List. …

In composing “Converging Stanzas” I used random digits to determine a stanza structure consisting of eight lines comprising successively five, three, one, eight, four, two, two, and seven words. When composing the first stanza, I filled this 32-word 53184227 structure with words drawn from the Basic English list by chance operations using random digits. The 32 places of the second stanza were filled with words from the first stanza by random-digit chance operations, those of the third stanza with words from the second, and so on. The method used worked in such a way that the number of different words in successive stanzas gradually declined. The poem ended with the sixtieth stanza, in which the number of different words had “converged” to one word, which occupies all 32 places of that stanza. (236)

It was all pretty straightforward and very fun to figure out. Much easier to do with code than manually consulting a random number table. I was able to download a copy of Ogden and Richard’s The Basic English Word List, and then it was just a matter of coding in a variable stanza pattern for the stanzas and letting random selection do the rest. I decided for each generation of the program to randomly choose a stanza length of between 6 and 10 lines, then create a unique stanza pattern for the lines of word lengths between 1 and the stanza length. 

I opted to use a slider to move through the stanzas because I like the visual impact of moving quickly through the stanzas and seeing the word diversity drop down to the remaining single word. Try it for yourself, it’s fun!

I hope you enjoy this little novelty program. I plan to make more little generative / interactive poetry programs in the future.

Creative Writing to Creative Coding

This year I have finally started to take on and complete some serious creative coding projects. For about a decade I have been satisfied to write with software created by others — mchain, Gnoetry, etc. Now I am working to creating digital poetry, digital arts and interactive writing systems of my own, customized for new writing projects. I’ve settled on the Processing generative arts language/environment to begin with, and have worked mostly in Java at this point. I am just starting to work with p5.js too, which is a javascript variant of Processing using pretty much the same syntax.

Earlier this year I completed my first complete sketch, or program, which I had drafted almost two years ago. You can read about that program here: LINEmaker v. 0.2. That project is text-based but also incorporates user interaction to create simple visual poems.

I’ll be writing more on my work with digital poetry and Processing soon, either here or at a new website, as my work progresses.

Collaborating on No Blame with Poet Tyler Carter

Beginning in July of this year, I began working with my friend and fellow poet/writer Tyler Carter to implement a writing system he had used several years before as a computer program. I was still learning basic coding skills with Processing, so I chose to continue using it even though this project would only really be sorting text and using I Ching casting methods to put together a book of 64 poems — i.e. there would be no interaction or anything drawn to the screen. I felt that Java and Processing would work well for this even though the project would not take advantage of any of the special features of the Processing language/environment.

The No Blame project has been complete now (the book, at least) for about a month, and I feel it has been a very successful collaboration. The permutations of the 256 lines of text, set by the program into 4 sets of 16 poems of 16 lines each, are kaleidoscopic and regularly engaging — something that does not always happen with conceptual computational systems like this. The four sets are arranged as: (1) the original 16 poems written from the 256 lines, (2) the same lines rearranged into 16 lists of 16 lines each according to linguistic/other characteristics, (3) the original poems “remixed” according to a set of unique (as in non-repeating and comprehensive) stanza patterns, and (4) the linguistic lists “remixed” in the same fashion.

The I Ching plays a significant role in the work, and it brings a sense of wholeness to the work as well as connecting to a longer tradition of using the I Ching in process poetry (Jackson Mac Low and John Cage, for example). The work does not connect thematically with the I Ching, nor should it be thought to have any oracular use; instead, it seeks to mirror/reproduce the architecture or structure of the mystical system. All of the poems are ordered and titled according to the unique I Ching hexagram cast by the program at its final stage of assembling the book, so the four sets mentioned above are not discrete, but are all interwoven together through the book. All 64 hexagrams are represented in the book, hinting to the representation of the whole person through the parallel systems of the hexagram titles and the assembled (and reassembled) statements of the poems.

Tyler and I are sending the manuscript out to presses soon for publication, but you can view the code, which I have commented heavily, at GitHub (see link below). If you are a publisher interested in works of computational or process poetry, I’d be glad to hear from you (see the Contact Me page for contact).

This project has helped me to grow as a programmer quite a bit, and I am proud of some of the solutions I made to rather complex problems, like how to create a set of 16 non-repeating four-line stanza patterns from the numbers 1-16 using all numbers exactly 4 times in each of the four stanza slots (each line in the pattern is a “slot”). That was quite tricky. Creating a simple alphanumeric system for representing I Ching hexagrams took some thought as well. Collaborating with another poet to construct a computation poetry program has been very rewarding as well, and I hope for more collaborations in the future as programmer and poet/programmer.


Code for No Blame at GitHub