User:Lbattich/Retrograde Chapbooks

From XPUB & Lens-Based wiki

Retrograde Chapbooks

Retrograde Chapbooks is a series of chapbook publications.

Retrograde:

adj.: directed or moving backwards.

verb: revert to an earlier and inferior condition.

The Oxford Dictionary


In Arnold Schoenberg’s 12-tone system, retrograde refers to the operation of time-reversing the tones in a musical series, while maintaining the original pitches and rhythms on the sequence. As a literary counterpart to Schoenberg’s retrogression technique, the Retrograde Chapbooks present existing texts from the history of modernism and the avant-garde, where all sentences have been re-arranged in the inverse order. The immediate meaning and readability of each sentence is maintained, but the overall sense is displaced within the text as a whole.

Retrograde Chapbooks aims to celebrate the original texts, while at the same time proposes to inquiry into the supposed linearity of historical development in culture, by performing an all too literal “going back” movement to modernist paradigms.

Retrograde Chapbook #3: Dada Manifesto by Tristan Tzara



The retrogression process was facilitated by making a simple javascript app to retrograde (and randomize) sentences in a text. It separates senteces only by using periods [.], so the text has to be properly edited and prepared beforehand with this in mind (for example by adding a period to other punctuations, like question marks).

Source code:

<!DOCTYPE html>
<html>
  <head>
    <meta name="author" content="Lucas Battich">
    <meta name="description" content="Retrogression of sentences from a text">
    <meta content="text/html; charset=UTF-8" http-equiv="content-type">
    <style>
    body {background-color:#FFF;}
    </style>
    <title>Retrogression of sentences from a text</title>
  </head>
  <body>
  <p></p>
  <p>Retrogression of sentences from a text</p>
    <textarea id="input" rows="20" cols="100">input</textarea>
  <p></p>
    <button id="but" onclick="convert()">retrograde</button>
    <button id="but" onclick="randomize()">randomize</button>
    <p id="d1"></p>
     <textarea id="output" rows="20" cols="100">output</textarea>
    <p id="d2"></p>
    <p id="d3"></p>
  </body>
</html>
<script language="javascript">
    
    var rawinput = document.getElementById("input");
    
    function convert(){
      var raw1 = rawinput.value.split(".");
      raw1.pop(); // remove last item of array: it is empty!
      raw1[0] = " " + raw1[0]; //add a space before first sentence
      raw1.reverse();
      print(raw1);
    }
     
    function randomize(){
      var raw1 = rawinput.value.split(".");
      raw1.pop(); // remove last item of array: it is empty!
      raw1[0] = " " + raw1[0]; //add a space before first sentence
      shuffle(raw1);
      print(raw1);
    }

    function print(row){
      var retro = row[0] + ".";
      for (var i=1; i<(row.length); i++)
         {retro = retro + row[i] + ".";}
      document.getElementById("output").value = retro;
    }
	
    function shuffle(row){
         for (var i = row.length-1; i >=0; i--) {  
         var index = Math.floor(Math.random()*(i+1)); 
         var tempvalue = row[index]; 
         row[index] = row[i]; 
         row[i] = tempvalue;
        }
      return row;
     }
</script>