pakt26
Built with p5.js and SuperCollider. See /f0blog/pact-februari/
//pakt26
let index
let rx, ry
let nx, ny
let cols, rows
function setup() {
const div = select('#sketch')
const cnv = createCanvas(div.width, div.height)
cnv.parent('sketch')
frameRate(60)
noStroke()
nx = 45
ny = 9
index = 0
rows = ny
ry = height / rows
}
function draw() {
cols = (sin(index * 0.001 + sin(index * 0.0001) * 10) * 0.445 + 0.5) * (nx - 1)
rx = width / cols
fill(color(0, 0, 0, 15))
rect(0, 0, width, height)
for (let x = 0; x < cols; x++) {
for (let y = 0; y < rows; y++) {
const c = sin((index + x * rows + y) * cos(index * 0.0012) * (sin(index * 0.00006) * 0.5)) * 0.5 + 0.5
const g = c * (sin(index * 0.002 + (x / nx) * TWO_PI) * cos(index * 0.0018 + (y / ny) * TWO_PI)) * 12 + 9
fill(255, c * 255, c * 255, c * 255)
rect(x * rx + g, y * ry + g, rx - g * 2, ry - g * 2)
}
}
index++
}
Ndef(\grid).play
(
Ndef(\grid, {var n= 8; Mix({|i|
var t= i/n;
var z= LeakDC.ar(VarSaw.ar(SinOsc.ar(VarSaw.ar(i+1*VarSaw.ar(0.048, 0, 0.5, 25, 150), t, 1/3, 150), VarSaw.ar(100+i, t, VarSaw.ar(0.024, t, 0.25, 0.475, 0.5))*pi, VarSaw.ar(0.012, t, 0.75, VarSaw.ar(0.064, t, 0.5, 25, 50), 200), VarSaw.ar(0.16, t, 2/3, VarSaw.ar(0.02, t, 0.5, 7.5).abs, 300)), t));
Pan2.ar(z, VarSaw.ar(0.02, t, 0.5), 1/n);
}!n)});
)
Ndef(\grid).stop