import ddf.minim.spi.*; import ddf.minim.signals.*; import ddf.minim.*; import ddf.minim.analysis.*; import ddf.minim.ugens.*; import ddf.minim.effects.*; float spinSpeed = 4.f; float spinStep = 0.f; int numDots = 24; float spinRad = 20.f; float spinRadOsc = 2.f; float spinRadOscAmt = 160.f; float spinRadOscStep = -PI/2; float spinRadOscMod = 0.1f; float spinRadOscModAmt = 15.f; float spinRadOscModStep = -PI/2; float numDotsOsc = 1.5f; float numDotsOscAmt = 6; float numDotsOscStep = -PI/2; float spinSpeedOsc = 0.1f; float spinSpeedOscAmt = 30.f; float spinSpeedOscStep = -PI/2; Minim minim; AudioPlayer song; void setup() { size( 700, 700 ); smooth(); colorMode( HSB, 1.0 ); rectMode( RADIUS ); minim = new Minim( this ); song = minim.loadFile( "aspic.mp3" ); song.play(); } void draw( ) { float dt = song.mix.level() * 0.05; spinSpeedOscStep += spinSpeedOsc * ( dt ); if ( spinSpeedOscStep > TWO_PI ) { spinSpeedOscStep -= TWO_PI; } float spinSpeedMod = sin( spinSpeedOscStep ) * spinSpeedOscAmt + spinSpeedOscAmt; spinStep += (spinSpeed+spinSpeedMod) * ( dt ); if ( spinStep > TWO_PI ) { spinStep -= TWO_PI; } spinRadOscModStep += spinRadOscMod * ( dt ); if ( spinRadOscModStep > TWO_PI ) { spinRadOscModStep -= TWO_PI; } float radOscMod = sin( spinRadOscModStep ) * spinRadOscModAmt + spinRadOscModAmt; spinRadOscStep += (spinRadOsc+radOscMod) * ( dt ); if ( spinRadOscStep > TWO_PI ) { spinRadOscStep -= TWO_PI; } numDotsOscStep += numDotsOsc * ( dt ); if ( numDotsOscStep > TWO_PI ) { numDotsOscStep -= TWO_PI; } float radMod = sin( spinRadOscStep ) * spinRadOscAmt + spinRadOscAmt; int dots = numDots; // + (int)(sin( numDotsOscStep ) * numDotsOscAmt + numDotsOscAmt); fill( 0.02, 0.2 ); noStroke(); rect( 0, 0, width, height ); float h = map( spinRad+radMod, spinRad, spinRad + 2*spinRadOscAmt, 0, 1 ); fill( h, 1, 0.2 ); stroke( h, 1, 1 ); for( int i = 0; i < dots; ++i ) { float r = spinStep + i*(TWO_PI/dots); float x = width/2 + (spinRad+radMod)*sin( r ); float y = height/2 + (spinRad+radMod)*cos( r ); pushMatrix(); translate( x, y ); rotate( r ); rect( 0, 0, 6, 6 ); popMatrix(); } }