‹ pakt26pakt28 ›

pakt27


pact27sweep, 01:00, 1.84MB

Built with p5.js and SuperCollider. See /f0blog/pact-februari/

//pakt27
let index, n;
function setup() {
  let div= select('#sketch');
  let cnv= createCanvas(div.width, div.height);
  cnv.parent('sketch');
  frameRate(60);
  colorMode(HSB, 255);
  noStroke();
  index= 0;
  n= 80;
  background(0);
}
function draw() {
  fill(color(0, 0, 0, 51));
  rect(0, 0, width, height);
  for(let i= 0; i<n; i++) {
    let t= i/n*TWO_PI;
    fill(color((sin(t)*0.15+0.15)*255, 255, 255, 102));
    let c= (sin(index*0.036+t)+cos(index*0.022-t))*0.01;
    let d= (cos(index*0.033+t)+sin(index*0.020-t))*0.01;
    let r= (sin(t)*25+30);
    ellipse(width*0.5+(sin((index*(d*0.05))+c+t)*(width*0.4)), height*0.5+(cos((index*(c*0.05))+d+t)*(height*0.35)), r*2, r*2);
  }
  index++;
}

Ndef(\sweep).play
(
Ndef(\sweep, {var n= 9; GVerb.ar(Mix({|i|
  var t= i/n;
  var t2pi= t*2pi;
  var f= 2**i*10+100;
  var z= LeakDC.ar(VarSaw.ar(SinOsc.ar(i+1*0.005, SinOsc.ar(i+1*SinOsc.ar(0.05, t2pi, 0.2, 0.4), 0, 2pi), f*SinOsc.ar(0.002, t2pi, 0.3, 0.5), f), t, SinOsc.ar(i+1*0.006, t2pi, 0.4, 0.5), i.linlin(0, n-1, 0.4, 0.1)));
  Pan2.ar(z, SinOsc.ar(0.015, t2pi, i.linlin(0, n-1, 0.99, 0.2)), 1/n);
}!n), 30, 5, 0.3, 0.8, 10)});
)
Ndef(\sweep).stop