//Promise, Tracy Chapman

size(400, 400);
background(200);
          

smooth();    //2nd thick black line
noFill();
stroke(100);
strokeWeight(20);
beginShape();
vertex(220, 0);
bezierVertex(250, 150, 0, 150, 0, 300);
endShape();
 smooth();   //2nd thick black
 noFill();
 stroke(150);
 strokeWeight(10);
 beginShape();
 vertex(260, 0);
 bezierVertex(290, 150, 0, 150, 0, 250);
 endShape();
 
     smooth();  //skinny light gray
     noFill();
     strokeWeight(3);
     stroke(210);
     beginShape();
     vertex(300, 0);
     bezierVertex(330, 250, 0, 100, 0, 200);
     endShape();
     
      smooth();  //skinny white
           noFill();
           strokeWeight(2);
           stroke(255);
           beginShape();
           vertex(280, 0);
           bezierVertex(300, 180, 0, 150, 0, 210);
           endShape(); 
   
      
       
         
         
         
    
         
           
smooth();    //3rd thick black line
noFill();
stroke(20);
strokeWeight(8);
beginShape();
vertex(400, 10);
bezierVertex(350, 350, 0, 50, 0, 200);
endShape();
   smooth();   //2nd thick black
   noFill();
   stroke(150);
   strokeWeight(5);
   beginShape();
   vertex(400, 10);
   bezierVertex(370, 360, 0, 40, 0, 190);
   endShape();
 
     smooth();  //skinny light gray
     noFill();
     strokeWeight(1);
     stroke(1, 60);
     beginShape();
     vertex(400, 50);
     bezierVertex(380, 400, 40, 30, 0, 170);
     endShape();
     
     
     
     
     
 
 smooth();   //4th thick black
 stroke(180);
 strokeWeight(20);
 noFill();
 beginShape();
 vertex(400, 280);
 bezierVertex(40, 430, 200, 100, 0, 60);
 endShape();
 
      
     smooth();    //4th thick black line
noFill();
stroke(100);
strokeWeight(10);
beginShape();
vertex(400, 330);
bezierVertex(130, 390, 100, 15, 0, 90);
endShape();
 

 
  
   smooth();    //first thick black line
noFill();
stroke(90);
strokeWeight(10);
beginShape();
vertex(10, 0);
bezierVertex(200, 100, 15, 300, 40, 400);
endShape();
 smooth();   //first thick black
 noFill();
 beginShape();
 vertex(20, 0);
 bezierVertex(200, 100, 15, 300, 30, 400);
 endShape();
 
     smooth();  //thick light gray
     noFill();
     stroke(1, 60);
     beginShape();
     vertex(50, 0);
     bezierVertex(200, 100, 15, 300, 60, 400);
     endShape();
     
       smooth();  //skinny gray
       noFill();
       strokeWeight(1);
       beginShape();
       vertex(50, 0);
       bezierVertex(200, 100, 15, 300, 60, 400);
       endShape(); 
      
           smooth();  //2nd skinny light gray
           noFill();
           stroke(1, 50);
           beginShape();
           vertex(80, 0);
           bezierVertex(200, 150, 10, 300, 120, 400);
           endShape();   
           
         
           

               
Exercise 03: Using only grayscale values, develop an abstract pattern reflecting the structure of one of your favorite songs