Kofi / Illestpreacha
Code is Poetry & Data is Poetry

Follow

Code is Poetry & Data is Poetry

Follow
Genuary2023_AsemicWriting

Genuary2023_AsemicWriting

Kofi / Illestpreacha's photo
Kofi / Illestpreacha
·Jan 14, 2023·

4 min read

Asemic Quine

The prompt for Genuary 2023 Day 14 is

Asemic Writing

Asemic Writing is described as

***"*a wordless open semantic form of writing.[1][2][3] The word asemic /eɪˈsiːmɪk/ means "having no specific semantic content", or "without the smallest unit of meaning".[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." - en.wikipedia.org/wiki/Asemic_writing

Inspired by this p5js sketch : https://openprocessing.org/sketch/1794432, I decided to make an Asemic Quine by using my font via FontStruct

Quine : " is a computer program which takes no input and produces a copy of its own source code as its only output." - 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 to have a poem appear in the font

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

//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

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


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])
 
Share this