sound = loadSound('./slopes.mp3');
createCanvas(850, windowHeight);
pg = createGraphics(850, windowHeight);
for(let i = 0;i<850;i+=0.5){
pg.stroke(random(62,72),116,random(93,103));
pg.stroke(60,168,122,150*noise(i*0.01));
for(let i = 0;i <= 80000;i++){
pg.strokeWeight(random(0.6));
pg.stroke(224,224,213,random(40,150));
pg.point(random(0,850),random(0,850));
pg.point(random(0,850),random(0,850));
pg.translate(width/2,height/2);
for(let h = 0;h <= 360;h+=60){
let controlPitch = (100)/80;
for(let i= 0;i<50;i+=0.1){
let controlX = i * controlPitch;
let mapi = map(i,0,25,0,100);
let mapi2 = map(i,25,50,100,0);
pg.stroke(208,207+10*noise(0.1*i),212,mapi2*noise(0.01*i)+10);
pg.stroke(192,203+10*noise(0.1*i),198,mapi*noise(0.01*i)+10);
pg.bezier(0,0,controlX-60,controlY ,controlX+ 60,controlY,0,0);
pg.translate(width/4,height/4);
pg.translate(width/2*1.5,height/2*1.5);
pg.translate(width/4,height/2*1.5);
pg.translate(width/2*1.5,height/4);
pg.ellipse(width/2,height/2,30,30);
myCircle(width/2,height/2,40 ,163,133,54,random(150,200),0.7);
pg.ellipse(width/4,height/4,15,15);
myCircle(width/4,height/4,25 ,163,133,54,random(150,200),0.4);
pg.ellipse(width/4,height/2*1.5,15,15);
myCircle(width/4,height/2*1.5,25 ,163,133,54,random(150,200),0.4);
pg.ellipse(width/2*1.5,height/4,15,15);
myCircle(width/2*1.5,height/4,25 ,163,133,54,random(150,200),0.4);
pg.ellipse(width/2*1.5,height/2*1.5,15,15);
myCircle(width/2*1.5,height/2*1.5,25 ,163,133,54,random(150,200),0.4);
for(let i = 0;i<100;i++){
pg.ellipse(width/2,height/2,400-4*i,400-4*i);
for(let i = 0;i<100;i+=2){
pg.ellipse(width/4,height/4,200-2*i,200-2*i);
pg.ellipse(width/4,height/2*1.5,200-2*i,200-2*i);
pg.ellipse(width/2*1.5,height/4,200-2*i,200-2*i);
pg.ellipse(width/2*1.5,height/2*1.5,200-2*i,200-2*i);
analyzer = new p5.Amplitude();
analyzer.setInput(sound);
colorArray = [color(36,57,127),color(197,210,203),color(158,206,193),color(223,225,228)];
let Msize = analyzer.getLevel()*50;
for(let i = 0;i<300;i+=10){
parray.push(new Particle(random(0,850),random(0,850)));
for(let i = 0;i<parray.length;i++){
parray[i].display(4+Msize/5);
function myCircle(centX, centY, diameter , R, G, B, T,num){
let radius = (diameter-10)/2;
for(let i = 0;i < count; i++){
let angle = random(TWO_PI);
let r = 1-random(random(random(1)));
let x = centX + r * radius * cos(angle);
let y = centY + r * radius * sin(angle);
for(let h = 0;h <= 360;h+=60){
let controlPitch = (100)/80;
for(let i= 0;i<50;i+=0.1){
let controlX = i * controlPitch;
let mapi = map(i,0,25,0,100);
let mapi2 = map(i,25,50,100,0);
pg.stroke(208,207+10*noise(0.1*i),212,mapi2*noise(0.01*i)/3);
pg.stroke(192,203+10*noise(0.1*i),198,mapi*noise(0.01*i)/3);
pg.bezier(0,0,controlX-50,controlY ,controlX+ 50,controlY,0,0);