How to generate different versions of a poem with 5 series of 3 pieces

edited October 2017 in How To...

(Before I start asking this, I would like to apologise for my English, it is not my first language).

Basically, I have been looking on the (vast and beautiful) Internet for some months now and have found great programming ideas done with words and language but none resembles what I am looking for and I feel lost and frustrated.

This is the poem I have been obsessing over for some time now: http://ecuadorliteratura.homestead.com/files/poesia/ejaraidrovo.htm

As one can see, there are 5 series of 3 developments/pieces. The author, Efraín Jara Idrovo, suggests that one can do different readings by combining the verses, inspired in aleatoric music and in Stockhausen's work.

This is series I of the poem in its original form:

I

1.1
1 el radiograma decía
2 "tu hijo nació. Cómo hemos de llamarlo"
3 yo andaba entonces por las islas
4 dispersa procesión del basalto
5 coágulos del estupor
6 secos ganglios de la eternidad
7 eslabones de piedra en la palma del océano
8 rostros esculpidos por el fuego sin edad
9 soledad
10 terquedad relampagueante de la duración
11 enconado olor seminal de los esteros
12 andaba
13 anduve
14 y dije
15 mientras vociferaban la sangre y las gaviotas
16 se llamará pedro
17 pedrohuesosdepedernal
18 pedrorrisadepiedra
19 piedra inflamada por la lumbre de meteoros de la vida

1.2
1 el radiograma decía
2 "tu hijo nació, envía su nombre"
3 yo andaba entonces por el archipiélago
4 renegrida osamenta del basalto
5 sílabas del silencio
6 sillares de la eternidad
7 guirnalda de piedra en el pecho del océano
8 coloquio de cíclopes sin edad
9 soledad
10 orfandad deslumbrante del espacio
11 desgarramiento de túnicas del viento
12 andaba
13 anduve
14 y dije
15 en tanto aullaban el sexo y las focas
16 te llamarás pedro
17 pedrovenasderroca
18 pedrollamadepiedra
19 piedra enardecida por el aliento de leones de la vida

1.3
1 el radiograma decía
2 "tu hijo nació. Cómo lo llamaremos"
3 yo andaba entonces por las galápagos
4 cetrinas encías del basalto
5 alvéolos del desamparo
6 dentadura de la eternidad
7 diadema de piedra en la testa del océano
8 mantos de lava sin edad
9 soledad
10 oquedad fulgurante del tiempo
11 hervor continuo de astros al pie de los acantilados
12 andaba
13 anduve
14 y dije
15 entre el bramido de los sueños y las olas
16 te llamaré pedro
17 pedroespinazodepeña
18 pedropiedrasinedad
19 piedra tenaz e incandescente que ha de sobrevivirme

For example, if one combines the verses from the 3 developments/pieces, one would get something like this:

1 el radiograma decía (this verse is common for all three)
1.2.2 "tu hijo nació, envía su nombre"
1.1.3 yo andaba entonces por las islas
1.1.4 dispersa procesión del basalto
1.3.5 alvéolos del desamparo
1.3.6 dentadura de la eternidad
etc.

So my question is, please, how can I code this so I can hit a button and get a different restricted random reading/version of the poem each time?

Thank you very much!

Tagged:

Answers

  • There are several ways to accomplish this.

    The simplest is something like the way that Gallimard published Queneau's Cent mille milliards de poèmes.

    Imagine each line number as a small stack of strips of paper (e.g. the line "17" stack) and then make a stack of stacks (the page).

    Let's leave aside for a moment the complicating factor that some poems in Sollozo por Pedro Jara are 19, 25, or 33 lines long, and just assume that the output is going to be 19.

    You need a 2D array of Strings.

    Then, for each sub-array, you need to randomly select a line.

  • edited October 2017 Answer ✓

    To see a very simplified version of what that would look like, here is a random 4-line poem generator based on lines 1-4.

    String[][] lines = {
      { "el radiograma decía",
        "el radiograma decía",
        "el radiograma decía",
        "¡hijo mío!"
      },
      { "'tu hijo nació. Cómo hemos de llamarlo'",
        "'tu hijo nació, envía su nombre'",
        "'tu hijo nació. Cómo lo llamaremos'",
        "mordido implacablemente por los nitratos de los días"
      },
      {
        "yo andaba entonces por las islas",
        "yo andaba entonces por el archipiélago",
        "yo andaba entonces por las galápagos",
        "parecías tallado en diamante"
      },
      { "dispersa procesión del basalto coágulos del estupor",
        "renegrida osamenta del basalto",
        "cetrinas encías del basalto",
        "hechoparaempiedradurar"
      }
    };
    
    int choice;
    for( int i = 0; i< lines.length; i++){
      print(i+1, ": ");
      choice = (int)random(lines[i].length);
      println(lines[i][choice]);
    }
    

    Output:

    1 : ¡hijo mío!
    2 : 'tu hijo nació, envía su nombre'
    3 : yo andaba entonces por las islas
    4 : cetrinas encías del basalto

Sign In or Register to comment.