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