# Genuary2023_AsemicWriting

Asemic Quine

### **The prompt for Genuary 2023 Day 14 is**

## Asemic Writing

Asemic Writing is described as

\*\*\*"\**a wordless open* [*semantic*](https://en.wikipedia.org/wiki/Semantics) *form of* [*writing*](https://en.wikipedia.org/wiki/Writing)*.*[*<sup>[1]</sup>*](https://en.wikipedia.org/wiki/Asemic_writing#cite_note-auto-1)[*<sup>[2]</sup>*](https://en.wikipedia.org/wiki/Asemic_writing#cite_note-2)[*<sup>[3]</sup>*](https://en.wikipedia.org/wiki/Asemic_writing#cite_note-3) *The word asemic* [*/eɪˈsiːmɪk/*](https://en.wikipedia.org/wiki/Help:IPA/English) *means "having no specific semantic content", or "without the smallest unit of meaning".*[*<sup>[4]</sup>*](https://en.wikipedia.org/wiki/Asemic_writing#cite_note-4) *With the non-specificity of asemic writing there comes a vacuum of meaning, which is left for the reader to fill in and interpret." -* [*https://en.wikipedia.org/wiki/Asemic\_writing*](https://en.wikipedia.org/wiki/Asemic_writing)

Inspired by this p5js sketch : [https://openprocessing.org/sketch/1794432](https://openprocessing.org/sketch/1794432), I decided to make an Asemic Quine by using my font via [***FontStruct***](https://fontstruct.com/fontstructions/show/2231848/asemicwriting2)

Quine : *" is a* [*computer program*](https://en.wikipedia.org/wiki/Computer_program) *which takes no input and produces a copy of its own* [*source code*](https://en.wikipedia.org/wiki/Source_code) *as its only output." -* [https://en.wikipedia.org/wiki/Quine\_(computing)](https://en.wikipedia.org/wiki/Quine_(computing))

To follow this rule, I decided to have the text layered over each other and have it jittery while making components appear at random. In the second usage of asemic writing, I used a conlang (constructed language) in conjunction with a remixed version of a previously coded p5js sketch :

[https://blog.illestpreacha.com/what-is-that-pattern-trying-to-say-part-1](https://blog.illestpreacha.com/what-is-that-pattern-trying-to-say-part-1) to have a poem appear in the font

### **Quine Asemic (Aided with LivecodingYoutube)-** [https://openprocessing.org/sketch/1794444](https://openprocessing.org/sketch/1794444)

<iframe width="560" height="315" src="https://www.youtube.com/embed/KO_uxNe24EM"></iframe>

```javascript
//Forked from https://openprocessing.org/sketch/1794432
//Using the Quine Format and my a font, I made to do an AsemicQuine

let myFont;
function preload() {
  myFont = loadFont('asemicwriting2.ttf');
}

function setup() {      // hello quine
	createCanvas(800, 800);
	textFont(myFont);
	textSize(35);
	textAlign(LEFT, TOP);
	fill(0, second() % 10 * 20 + 5, 0);
	const code = window.setup.toString(); // calls the setup function
	text(code, 4, 69);
	

}

function draw() 
{
	fill(random(100,150),random(100,150),random(100,150));
const drawing = window.draw.toString();
//frameRate(15);
filter(THRESHOLD); // different photo filters
rect1()
textSize(35);
text(drawing,10+ second() % 15 +  1,25 - second() % 10);
}


function rect1()
{

	filter(ERODE);
	fill(random(100,250),random(0,150),random(100,200));
	const code = window.setup.toString();
	text(code, random(second() % 10 * 9 + 1), 69);
	fill(100,abs(120 - second() % 40 * 40),200);
	const code2 = window.rect1.toString();
	text(code2,250- second() % 15 * 7, 400 - second() % 30);
	fill(100,abs(120 - second() % 40 * 40),abs(200 - second() % 40 * 10));
	const code3 = window.keyPressed.toString();
	text(code3,450- second() % 15 * 7, 680- second() % 30);
}

function keyPressed()
{
 if(key === 'a')
    {
    
      filter(BLUR, int(random(1,3))); // different photo filters
    }

    if(key === 's')
    {
      filter(ERODE); // different photo filters
    }
  if(key === "d")
    {
      filter(DILATE)
    }
}
```

### **AsemicConLang-** [https://editor.p5js.org/illestknock/full/mddMA\_bhu](https://editor.p5js.org/illestknock/full/mddMA_bhu)

<iframe width="560" height="315" src="https://www.youtube.com/embed/S003uGxlkQ8"></iframe>

```javascript
var mood;
var Poem;

let myFont;
function preload() {
  myFont = loadFont('asemicwriting2.ttf');
}

var bgcolor = 'white';

function setup() {
  textFont(myFont);
  createCanvas(1000,1000)
  mood = createRadio();
  mood.position(0,0)
  mood.option('Frozen');
  mood.option('Impatient');
  mood.option('Intense');
  mood.option('Sleepy');
  mood.option('Love');
  mood.option('Turbulence');
  mood.style('width', '400px');
  textAlign(CENTER);
  fill(100, 100, 100); 
  textSize(50)
  text('What mood are you in?', width / 2, height / 2);
  
    console.log(mood)
  
}

//textLeading idea was inspired by important e.poetry by allison.parish

function draw() {
  var poem = mood.value();
  
  textFont(myFont);
  
switch (poem) {
    case 'Sleepy':
      background('red')
     Poem = "2:4<2+< 3<5{ 3+:2>20:? >2<6: 231< 8 2*? :<9> 1*?8=2?3< 30?1> 3<1<2+< 607<7+?5<2>1{3(:1+?3<2+< 1$<3< 7> 9 8?1+<> 4:>2?3+? 3<2< 41? 3<3< 1+01} {5<{5<"
    textSize(30)
    fill('black')
  textAlign(CENTER);
  textLeading((frameCount * 0.04) * 0.8);
  //textLeading(-24);
 text(Poem, 0, 100, 1000, 1000);
      break;
    case 'Love':
     background('red')
      Poem = " WANDERING outrageous good pleasant BLUSHING GLORIOUS 3>1?6?4<1<5<1)??>4< <3<2<< : filthy sillyworried DULL ENTHUSIASTIC enchanting 8 giftedDEPRESSED 3>1?6?4<1<5<1)??>4< <3<2<< : SMILING 9 thoughtless 44 ENCOURAGING 2+:?3>  ?5>>> : 5< >2< 1< 4>7:< :8> :2:: TENSE 47 vivaciousvivacious embarrassed LONELYLONELY"
    fill('white')
    textSize(30)
  textAlign(CENTER);
  //textLeading(-24);
 text(Poem, 0, 100, 1000, 800);
      break;
    case 'Intense':
      background('orange')
      Poem = " 2+:?3>  ?5>>> : 5< >2< 1< 4>7:< :8> :2::? 1>4<0>101:1>1<:8}:3= 3<6><2> 3*?5<<4:2< 1-<2{ >6=<8? 8=2?3< 2>:2>: 1?3=> 4<1>>>{4<1>>>{ "
    let r = random(30,35);
    fill('black')
     textSize(r)
  textAlign(CENTER);
  textLeading((frameCount * 0.25) % 360);
  //textLeading(-24);
 text(Poem, 0, 100, 1000, 1000);
      break;
    case 'Impatient':
    background(bgcolor)
    Poem = " 3)1> 2<1>2<1+?2-? 3{}3>2={4{ 3<} 7:34>?6< 3>204< 1?6-? 3>1?6?4<1<5<1)??>4< <3<2<< : 8:>< 12(:9?1?1> 6<6<8-:? 5: :3:2)< 7>7> 1>5^< 3^<1<3^<1<"
    textSize(30)
  textAlign(CENTER);
  textLeading((frameCount * 0.54)% 120);
  //textLeading(-24);
 text(Poem, 0, 100, 1000, 1000);
      break;
      case 'Frozen':
    background('violet')
    Poem = '>3> 1+01} 2>2=>3> }5):"8(? 7> > 1<2< 3-:5<5<2< 1(< 1-< 3+:2>20:? 21 5*:2=?><1>? > 47 4{5{ 36 2>2<<1+{1)?3?1<<5: 41 :<9>:<9> {1+<1? 4<7}4<7}'
    let r2 = random(2);
     textSize(30)
    fill('blue')
  textAlign(CENTER);
  textLeading((frameCount * 0.019) );
  //textLeading(-24);
 text(Poem, 0, 100+r2, 1000-r2, 1000);
    break;
         case 'Turbulence':
    background('grey')
    Poem =  'FAMOUS dead vivacious embarrassed EAGER BAD repulsive innocentattractive 2>2<<1+{1)?3?1<<5: 41 :<9>:<9> {1+<1? 4<7}4<7}  OLD-FASHIONED OBEDIENT arrogantselfishgoodEAGER ODD precious vivacious smoggy GENTLE SHINY fierce v41 :<9>:<9> {1+<1? 4<7}4<7} vivaciousvivacious upset SLEEPYSLEEPY'
    let r3 = random(30);
     textSize(30)
    fill('orange')
  textAlign(CENTER);
  //textLeading((frameCount * sin(0.15) ));
  //textLeading(-24);
 text(Poem, 0+sin(r3), 100-sin(r3), 1000+sin(r3), 1000- sin(r3));
    break;
}
}
```

### **SonicPi Code for Quine Asemic**

```ruby

def modic (looping,synthing,notes)
  live_loop looping do
    with_fx :ixi_techno, mix: 0.6 do
      with_fx :krush, mix: rrand(0.1,0.9) do
        use_synth synthing
        play notes.choose,
          pan: rrand(-0.7,0.7),sustain: 3 ,release: dice(6) ,amp: 0.2, pitch: dice(3)
        sleep [0.25,0.5,1,2,4].choose
      end
    end
  end
end

modic(:yendor,:mod_saw,[:Es2,:C1,:A4,:As3])
modic(:yendor2,:piano,[:Es2,:E1,:C4,:Bs3])
modic(:yendor3,:chipbass,[:Ds2,:A1,:B4,:Cs3])
```
