frocessing with SoundMixer ただ眺めるだけっす・・・ mousepancyo forked:2favorite:18lines:153license : MIT License modified : 2010-10-04 17:48:22 Embed Tweet package { import flash.display.Sprite; import flash.display.BitmapData; import flash.display.Bitmap; import flash.events.Event; import flash.events.TimerEvent; import flash.filters.BlurFilter; import flash.geom.Point; import flash.geom.ColorTransform; import flash.utils.Timer; [SWF(width="465", height="465", backgroundColor="0", frameRate="60")] public class Main extends Sprite { private const WIDTH:Number = 465; private const HEIGHT:Number = 465; private const SOUNDPATH:String = "http://www.digifie.jp/files/100922.mp3" private var _canvas:Canvas; private var _bmd:BitmapData; private var _bm:Bitmap; private var _saveBmd:BitmapData; private var _container:Sprite = new Sprite(); private var _ctf:ColorTransform = new ColorTransform(0.7, 0.7, 0.7, 0.5); private var _timer:Timer public function Main(){ addChild(_container); _canvas = new Canvas(WIDTH, HEIGHT, SOUNDPATH); _bmd = new BitmapData(WIDTH, HEIGHT, true, 0); _container.addChild(_canvas); _container.addChild(_bm = new Bitmap(_bmd) as Bitmap); _bm.blendMode = "add"; // addEventListener(Event.ENTER_FRAME, update); _timer = new Timer(600); _timer.addEventListener(TimerEvent.TIMER, removedInterval); _timer.start(); } private function update(e:Event):void{ _bmd.draw(_canvas, null, _ctf, "add"); _bmd.applyFilter(_bmd, _bmd.rect, new Point(), new BlurFilter(8, 8, 3)); } private function removedInterval(e:TimerEvent):void{ _canvas.remove(); } } } import frocessing.display.*; import flash.geom.Point; import flash.utils.ByteArray; import flash.media.SoundMixer; class Canvas extends F5MovieClip2DBmp{ private var _w:Number; private var _h:Number; private var _t:Number = 0; private var _pastPos:Point; private var _px:Number = 0; private var _py:Number = 0; private var _r:Number = 0; private var _list:Array = new Array(); private var _soundPath:String; private var _waveBytes:ByteArray = new ByteArray(); private var _sound:SoundPlayStop; public function Canvas($w:Number, $h:Number, $soundPath:String) { _w = $w; _h = $h; _soundPath = $soundPath; super(); } public function setup():void { for(var i:uint=0; i<5; i++){ var p:Point = new Point(random(0 ,_w), random(0 ,_h)); _list.push(p); } size(_w, _h); background(0); noFill(); colorMode(HSV, 2, 1, 1); // _sound=new SoundPlayStop(); _sound.soundStart(_soundPath, 100); } public function draw():void{ var n:int; try{ SoundMixer.computeSpectrum(_waveBytes, true, 0); n = _waveBytes.readFloat() * 250; }catch(e:Error){ return; } // var rad:Number = _r * .3 * Math.PI / 180; var px:Number = _w * .5 + Math.cos(rad) * n; var py:Number = _h * .5 + Math.sin(rad) * n; // var p:Point; p = new Point(px, py); // if(p && _pastPos){ var distance:int = Point.distance(p, _pastPos); _pastPos = p; // var r:int = Math.random() * 8 for(var i:int; i<distance * .3 ;i++){ stroke(_t, 0.8, 1, 0.1); _px += (p.x + (Math.random() * distance-distance / 4) - _px) * Math.random() * 0.5; _py += (p.y + (Math.random() * distance-distance / 4) - _py) * Math.random() * 0.5; ellipse(_px, _py, r * distance / 4, r * distance / 4); } _pastPos = p; }else{ _pastPos = new Point(px, py); } _t += 0.1; _r += 30; } public function remove():void{ background(0, 1); _t = 0; } } //Sound import flash.events.Event; import flash.events.EventDispatcher; import flash.media.Sound; import flash.media.SoundChannel; import flash.media.SoundTransform; import flash.media.SoundLoaderContext; import flash.net.URLRequest; import flash.system.Security; class SoundPlayStop extends EventDispatcher{ public var my_sc:SoundChannel; public var my_sound:Sound; public var _flg:Boolean = true; public function SoundPlayStop(){ Security.loadPolicyFile("http://www.digifie.jp/crossdomain.xml"); } public function soundStart(Url:String, ref:uint = 1, vol:Number = 1):void { if(_flg){ var trans:SoundTransform = new SoundTransform(vol,0); var context:SoundLoaderContext = new SoundLoaderContext(); context.checkPolicyFile = true; // if (my_sc != null) { my_sc.stop(); my_sc = null; } try{ my_sound = new Sound(new URLRequest(Url),context); my_sc = my_sound.play(0,ref); my_sc.soundTransform = trans; }catch(e:Error){ trace(e,Url); } } } public function soundStop():void { if (my_sc != null) { my_sc.stop(); my_sc = null; my_sound = null; } } } Code Fullscreen Preview Fullscreen Vladik developedAS jackfreak synxmax Ryogo_Qubere.. yabuchany tjoen jlbadrian tkinjo OKASUKE paq tesson kleinschmidt.. Susisu t_matsuda omari : sound clockmaker : 美しい・・・ ProjectNya : 奇麗! sound SoundLoaderContext checkPolicyFile Error trace URLRequest String uint Number sort new page view favorite forked pv0 forked from: frocessing with S.. Aksor.Al forked:0 favorite:0lines:153 (diff:1) pv0 forked from: frocessing with S.. Frank.Scahill forked:0 favorite:0lines:153 (diff:1)