My first papervision spectrum analisys experiment
pretty simple but i figured it out
music by ModdJobbs, my brother, its an mc chris remix of “Older Croud”
http://www.myspace.com/moddjobs
Go get the newest flash player if you dont have it please.
http://www.adobe.com/products/flashplayer/
Heres the example.
And heres the code
WAY over imported, but its an experiment.
get TweenMax and the version of GreatWhite thats current with this post. both links are posted somewhere on this site.
the MP3 should be in the same folder as the SWF. its named OC.mp3 at the moment.
import flash.display.Sprite; import flash.events.Event; import flash.system.Security; import flash.text.TextField; import flash.text.TextFormat; import flash.events.Event; import flash.ui.Mouse; import flash.display.DisplayObject; import flash.display.Shape; import gs.*; import gs.easing.*; import gs.TweenMax;import org.papervision3d.objects.DisplayObject3D; import org.papervision3d.core.utils.Mouse3D; import org.papervision3d.events.InteractiveScene3DEvent; import org.papervision3d.lights.PointLight3D; import org.papervision3d.scenes.*; import org.papervision3d.cameras.*; import org.papervision3d.cameras.Camera3D; import org.papervision3d.objects.*; import org.papervision3d.objects.special.*; import org.papervision3d.objects.primitives.*; import org.papervision3d.materials.*; import org.papervision3d.materials.special.*; import org.papervision3d.materials.shaders.*; import org.papervision3d.materials.shadematerials.*; import org.papervision3d.materials.utils.*; import org.papervision3d.lights.*; import org.papervision3d.render.*; import org.papervision3d.view.*; import org.papervision3d.view.BasicView; import org.papervision3d.events.*; import org.papervision3d.core.utils.*; import org.papervision3d.core.utils.virtualmouse.VirtualMouse; import org.papervision3d.events.InteractiveScene3DEvent; import org.papervision3d.core.effects.*;var sp:Sprite = new Sprite(); addChild(sp); var viewport:Viewport3D = new Viewport3D(0, 0, true, true); sp.addChild(viewport); viewport.buttonMode = true; var renderer:BasicRenderEngine = new BasicRenderEngine(); var scene:Scene3D = new Scene3D(); var camera:Camera3D = new Camera3D(); camera.zoom = 11; camera.focus = 100; //Spectrum Analisys/////////////////////////// var s:Sound = new Sound(new URLRequest("OC.mp3")); s.play(1, 0); var pointArray:Array = new Array(); var ba:ByteArray = new ByteArray(); for(var i:uint=0; i<255; i++) { var randomColor:Number = Math.random() * 0xffffff; var shape:Shape = new Shape(); with(shape) { graphics.beginFill(randomColor); graphics.drawRect(0, 0, 2, 2); graphics.endFill(); } var material:MovieMaterial = new MovieMaterial(shape); //animated needs to be true to tween the color material.animated = true; material.doubleSided = true; material.interactive = false; var plane:Plane = new Plane(material, 3, 3); plane.x = i * 3.75 - stage.width/2 +5; plane.y = 0; plane.name = "plane"+i; scene.addChild(plane); pointArray[i] = scene.getChildByName("plane"+i); //trace(pointArray); } addEventListener(Event.ENTER_FRAME, enterFrameHandler); function enterFrameHandler(event:Event):void { SoundMixer.computeSpectrum(ba, false, 2); for(var i:uint=0; i<255; i++) { var num:Number = -ba.readFloat()*100; //trace(num); pointArray[i].scaleY = num; } camera.x -= (camera.x-(stage.stageWidth*0.5-mouseX)/(stage.stageWidth*0.5)*1600)*0.2; camera.y -= (camera.y-(stage.stageHeight*0.5-mouseY)/(stage.stageHeight*0.5)*800)*0.2; camera.y = Math.max(-300, camera.y); renderer.renderScene(scene, camera, viewport); }
