/* Visuals for the song "The Years" (v2) Colors: darky The Years has two loops: 4-chord loop and 5-chord loop. With every loop a leaf/plant-stem appears With every new layer of sound, new elements appear on the leafs. resolutions: 720x576 (DVD progressive) 1024x768 (XGA) 1280x1024 (SXGA) 1600x1200 (UXGA) 1920x1080 (HDTV 1080i/50) 1280x720 (HDTV 720p) */ float looplen1=10500, looplen2=12700; // in ms float screenAspectRatio=4.0/3.0; float screenDiag=PI/2.0 + atan2(screenAspectRatio,1.0); float screenSize=600; void setup() { size(600,450,P3D); colorSetup(); initPlants(); } void draw() { background(murkybrown); updatePlants(30); } void keyPressed() { initPlants(); } ///////////////////////////////////////////////////////////////////////// ////////////////////////////// Plant Class ////////////////////////////// // vars: Plant[] plant; int nrOfPlant=0, nrOfMaxPlant=100; // routines: void initPlants() { plant=new Plant[nrOfMaxPlant]; for (int i=0;i plant end position x2=x1+len*cos(mainDirection); y2=y1-len*sin(mainDirection); } void initFragments() { frag1_x=new float[nrOfFragments]; frag1_y=new float[nrOfFragments]; frag2_x=new float[nrOfFragments]; frag2_y=new float[nrOfFragments]; deviate2MaxLen=random(0.01,0.04)*(random(1)<0.5?-1:1); deviate3MaxLen=0.3*(random(1)<0.5?-1:1); phase3=random(TWO_PI); circLen3=random(0.5,1.5); offdeg1=-PI/2.0-mainDirection; COS1=cos(offdeg1); SIN1=sin(offdeg1); offdeg2=PI/2.0-mainDirection; COS2=cos(offdeg2); SIN2=sin(offdeg2); moveSpeed1=random(0.4,0.6); phase1=random(TWO_PI); } void newPositions(float _frq) { for (int i=0;i