{"id":281,"date":"2010-10-04T18:18:11","date_gmt":"2010-10-04T09:18:11","guid":{"rendered":"http:\/\/www.digifie.jp\/blog\/?p=281"},"modified":"2010-10-07T16:57:32","modified_gmt":"2010-10-07T07:57:32","slug":"frocessing-with-soundmixer","status":"publish","type":"post","link":"https:\/\/www.digifie.jp\/blog\/archives\/281","title":{"rendered":"frocessing with SoundMixer"},"content":{"rendered":"<div class='wp_social_bookmarking_light'>        <div class=\"wsbl_facebook\"><a href='http:\/\/www.facebook.com\/share.php?u=https%3A%2F%2Fwww.digifie.jp%2Fblog%2Farchives%2F281&t=frocessing%20with%20SoundMixer' title='Facebook \u306b\u30b7\u30a7\u30a2' rel=nofollow class='wp_social_bookmarking_light_a' target=_blank><img src='https:\/\/www.digifie.jp\/blog\/wp-content\/plugins\/wp-social-bookmarking-light\/public\/images\/facebook.png' alt='Facebook \u306b\u30b7\u30a7\u30a2' title='Facebook \u306b\u30b7\u30a7\u30a2' width='16' height='16' class='wp_social_bookmarking_light_img' \/><\/a><\/div>        <div class=\"wsbl_twitter\"><a href=\"https:\/\/twitter.com\/share\" class=\"twitter-share-button\" data-url=\"https:\/\/www.digifie.jp\/blog\/archives\/281\" data-text=\"frocessing with SoundMixer\" data-via=\"LLC DigiFie\" data-lang=\"ja\">Tweet<\/a><\/div><\/div>\n<br class='wp_social_bookmarking_light_clear' \/>\n<p>\u30b5\u30a6\u30f3\u30c9\u304b\u3089\u751f\u6210\u3059\u308b\u30d0\u30a4\u30c8\u914d\u5217\u3092\u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066froccessing\u3067\u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u63cf\u753b\u3059\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u3059\u3002<br \/>\n\u5165\u529b\u30c7\u30d0\u30a4\u30b9\u304b\u3089\u306e\u30a4\u30f3\u30bf\u30e9\u30af\u30b7\u30e7\u30f3\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u305f\u3060\u773a\u3081\u308b\u3060\u3051\u3063\u3059\u3002<\/p>\n<p><script type=\"text\/javascript\" src=\"http:\/\/wonderfl.net\/blogparts\/uHoR\/js\"><\/script><\/p>\n<p class=\"ttlBpWonderfl\" style=\"width: 465px; margin: 0; text-align: right; font-size: 11px;\"><a href=\"http:\/\/wonderfl.net\/c\/uHoR\" title=\"frocessing with SoundMixer\">frocessing with SoundMixer &#8211; wonderfl build flash online<\/a><\/p>\n<p>\u4ee5\u4e0b\u3001\u3061\u3087\u3063\u3068\u3057\u305f\u89e3\u8aac\u3002<br \/>\n\u8a73\u3057\u304f\u306fwonderfl\u306e\u30b3\u30fc\u30c9\u3092\u898b\u305f\u307b\u3046\u304c\u5206\u304b\u308a\u3084\u3059\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u304c\u30fb\u30fb\u30fb<\/p>\n<p>frocessing\u3067\u306e\u63cf\u753b\u51e6\u7406\u90e8\u5206\u306e\u30b3\u30fc\u30c9<\/p>\n<pre class=\"brush: as3; title: ; notranslate\" title=\"\">import frocessing.display.*;\r\nimport flash.geom.Point;\r\nimport flash.utils.ByteArray;\r\nimport flash.media.SoundMixer;\r\n  \r\nclass Canvas extends F5MovieClip2DBmp{ \r\n\tprivate var _w:Number;\r\n\tprivate var _h:Number;\r\n\tprivate var _t:Number = 0;\r\n\tprivate var _pastPos:Point;\r\n\tprivate var _px:Number = 0;\r\n\tprivate var _py:Number = 0;\r\n\tprivate var _r:Number = 0;\r\n\tprivate var _list:Array = new Array();\r\n\tprivate var _soundPath:String;\r\n\tprivate var _waveBytes:ByteArray = new ByteArray();\r\n\tprivate var _sound:SoundPlayStop;\r\n    \r\n\tpublic function Canvas($w:Number, $h:Number, $soundPath:String) {\r\n\t\t_w = $w;\r\n\t\t_h = $h;\r\n\t\t_soundPath = $soundPath;\r\n\t\tsuper();\r\n\t}\r\n    \r\n    \/\/ \u521d\u671f\u5316\r\n\tpublic function setup():void {\r\n\t\tfor(var i:uint=0; i&lt;5; i++){\r\n\t\t\tvar p:Point = new Point(random(0 ,_w), random(0 ,_h));\r\n\t\t\t_list.push(p);\r\n\t\t}\r\n\t\tsize(_w, _h);\r\n\t\tbackground(0);\r\n\t\tnoFill();\r\n\t\tcolorMode(HSV, 2, 1, 1);\r\n\t\t\/\/\r\n\t\t_sound=new SoundPlayStop();\r\n        _sound.soundStart(_soundPath, 100);\r\n\t}\r\n\r\n\t\/\/ \u6bce\u30d5\u30ec\u30fc\u30e0\u63cf\u753b\r\n\tpublic function draw():void{\r\n\t\t\/\/ SoundMixer\u304b\u3089\u30d0\u30a4\u30c8\u914d\u5217\u3092\u53d6\u5f97\u3057\u3066\u73fe\u5b9f\u7684\u306a\u5024\u306b\u7f6e\u304d\u63db\u3048\u308b\r\n\t\tvar n:int;\r\n        try{\r\n        \tSoundMixer.computeSpectrum(_waveBytes, true, 0);\r\n        \tn = _waveBytes.readFloat() * 250;\r\n        }catch(e:Error){\r\n        \treturn;\r\n        }\r\n\t\t\/\/\r\n\t\tvar rad = _r * .3 * Math.PI \/ 180;\r\n\t\tvar px:Number = _w * .5 + Math.cos(rad) * n;\r\n\t\tvar py:Number = _h * .5 + Math.sin(rad) * n;\r\n\t\t\/\/\r\n\t\tvar p:Point;\r\n\t\tp = new Point(px, py);\r\n\t\t\r\n\t\t\/\/\u63cf\u753b\r\n\t\tif(p &amp;&amp; _pastPos){\r\n\t\t\tvar distance:int = Point.distance(p, _pastPos);\r\n\t\t\t_pastPos = p;\r\n            \/\/\r\n\t\t\tvar r:int = Math.random() * 10\r\n\t\t\tfor(var i:int; i&lt;distance * .5 ;i++){\r\n\t\t\t\tstroke(_t, 0.8, 1, 0.1);\r\n\t\t\t\t_px += (p.x + (Math.random() * distance-distance \/ 4) - _px) * Math.random() * 0.5;    \r\n\t\t\t\t_py += (p.y + (Math.random() * distance-distance \/ 4) - _py) * Math.random() * 0.5;\r\n\t\t\t\tellipse(_px, _py, r * distance \/ 4, r * distance \/ 4);\r\n\t\t\t}\r\n\t\t\t_pastPos = p;\r\n\t\t}else{\r\n\t\t\t_pastPos = new Point(px, py);\r\n\t\t}\r\n\t\t_t += 0.1;\r\n\t\t_r += 30;\r\n\t}\r\n\t\r\n\t\/\/ \u6d88\u3059\r\n\tpublic function remove():void{\r\n\t\tbackground(0, 1);\r\n\t\t_t = 0;\r\n\t}\r\n}\r\n <\/pre>\n<p>\u30e1\u30a4\u30f3\u30af\u30e9\u30b9\u3067\u306e\u30a8\u30d5\u30a7\u30af\u30c8\u90e8\u5206\u306e\u30b3\u30fc\u30c9<\/p>\n<pre class=\"brush: as3; title: ; notranslate\" title=\"\"> public function Main(){\r\n\taddChild(_container); \/\/ \u30eb\u30fc\u30c8\u8868\u793a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\r\n\t_canvas = new Canvas(WIDTH, HEIGHT, SOUNDPATH); \/\/ frocessing\u306e\u8868\u793a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\r\n\t_bmd = new BitmapData(WIDTH, HEIGHT, true, 0); \/\/ \u30a8\u30d5\u30a7\u30af\u30c8\u7528Bmd\r\n\t_container.addChild(_canvas);\r\n\t_container.addChild(_bm = new Bitmap(_bmd) as Bitmap);\r\n\t_bm.blendMode = &quot;add&quot;;\r\n\t\/\/\r\n\taddEventListener(Event.ENTER_FRAME, update);\r\n\t\/\/ \u63cf\u753b\u30af\u30ea\u30a2\u7528\u30bf\u30a4\u30de\u30fc\r\n\t_timer = new Timer(500);\r\n\t_timer.addEventListener(TimerEvent.TIMER, removedInterval);\r\n\t_timer.start();\r\n}\r\n\t\t\r\nprivate function update(e:Event):void{\r\n\t\/\/ ColorTransform\u3067\u8272\u3092\u6697\u304f\u3057\u306a\u304c\u3089\u30a8\u30d5\u30a7\u30af\u30c8\u7528Bmd\u306bCanvas\u3092Draw\r\n\t_bmd.draw(_canvas, null, _ctf, &quot;add&quot;);\r\n\t\/\/ \u30a8\u30d5\u30a7\u30af\u30c8\u7528Bmd\u306b\u30d6\u30e9\u30fc\u30d5\u30a3\u30eb\u30bf\u3092\u9069\u7528\r\n\t_bmd.applyFilter(_bmd, _bmd.rect, new Point(), new BlurFilter(8, 8, 3));\r\n}\r\n\t\t\r\nprivate function removedInterval(e:TimerEvent):void{\r\n\t\/\/ Canvas\u3092\u30af\u30ea\u30a2\r\n\t_canvas.remove();\r\n} <\/pre>\n<div class='wp_social_bookmarking_light'>        <div class=\"wsbl_facebook\"><a href='http:\/\/www.facebook.com\/share.php?u=https%3A%2F%2Fwww.digifie.jp%2Fblog%2Farchives%2F281&t=frocessing%20with%20SoundMixer' title='Facebook \u306b\u30b7\u30a7\u30a2' rel=nofollow class='wp_social_bookmarking_light_a' target=_blank><img src='https:\/\/www.digifie.jp\/blog\/wp-content\/plugins\/wp-social-bookmarking-light\/public\/images\/facebook.png' alt='Facebook \u306b\u30b7\u30a7\u30a2' title='Facebook \u306b\u30b7\u30a7\u30a2' width='16' height='16' class='wp_social_bookmarking_light_img' \/><\/a><\/div>        <div class=\"wsbl_twitter\"><a href=\"https:\/\/twitter.com\/share\" class=\"twitter-share-button\" data-url=\"https:\/\/www.digifie.jp\/blog\/archives\/281\" data-text=\"frocessing with SoundMixer\" data-via=\"LLC DigiFie\" data-lang=\"ja\">Tweet<\/a><\/div><\/div>\n<br class='wp_social_bookmarking_light_clear' \/>\n","protected":false},"excerpt":{"rendered":"<p>\u30b5\u30a6\u30f3\u30c9\u304b\u3089\u751f\u6210\u3059\u308b\u30d0\u30a4\u30c8\u914d\u5217\u3092\u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066froccessing\u3067\u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u63cf\u753b\u3059\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u3059\u3002 \u5165\u529b\u30c7\u30d0\u30a4\u30b9\u304b\u3089\u306e\u30a4\u30f3\u30bf\u30e9\u30af\u30b7\u30e7\u30f3\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u305f\u3060\u773a\u3081\u308b\u3060\u3051\u3063\u3059\u3002 frocessing with  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[10,9,21],"_links":{"self":[{"href":"https:\/\/www.digifie.jp\/blog\/wp-json\/wp\/v2\/posts\/281"}],"collection":[{"href":"https:\/\/www.digifie.jp\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.digifie.jp\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.digifie.jp\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.digifie.jp\/blog\/wp-json\/wp\/v2\/comments?post=281"}],"version-history":[{"count":5,"href":"https:\/\/www.digifie.jp\/blog\/wp-json\/wp\/v2\/posts\/281\/revisions"}],"predecessor-version":[{"id":302,"href":"https:\/\/www.digifie.jp\/blog\/wp-json\/wp\/v2\/posts\/281\/revisions\/302"}],"wp:attachment":[{"href":"https:\/\/www.digifie.jp\/blog\/wp-json\/wp\/v2\/media?parent=281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.digifie.jp\/blog\/wp-json\/wp\/v2\/categories?post=281"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.digifie.jp\/blog\/wp-json\/wp\/v2\/tags?post=281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}