<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: More Music Visualisations</title>
	<atom:link href="http://blog.soulwire.co.uk/art-design/portfolio/more-bandcamp-music-visualisations/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.soulwire.co.uk/art-design/portfolio/more-bandcamp-music-visualisations</link>
	<description>Art + Technology</description>
	<lastBuildDate>Thu, 06 Oct 2011 13:58:55 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: xero</title>
		<link>http://blog.soulwire.co.uk/art-design/portfolio/more-bandcamp-music-visualisations/comment-page-2#comment-9390</link>
		<dc:creator>xero</dc:creator>
		<pubDate>Thu, 06 Jan 2011 16:51:37 +0000</pubDate>
		<guid isPermaLink="false">http://blog.soulwire.co.uk/?p=322#comment-9390</guid>
		<description>are you still planning on releasing the code for your as3 audio visualization engine? i&#039;v been waiting to check it out for a while now.</description>
		<content:encoded><![CDATA[<p>are you still planning on releasing the code for your as3 audio visualization engine? i&#8217;v been waiting to check it out for a while now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Prakash</title>
		<link>http://blog.soulwire.co.uk/art-design/portfolio/more-bandcamp-music-visualisations/comment-page-1#comment-9337</link>
		<dc:creator>Prakash</dc:creator>
		<pubDate>Thu, 09 Dec 2010 02:01:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.soulwire.co.uk/?p=322#comment-9337</guid>
		<description>Fantastic collection which make me stunned with the designs.  I really love this collection where the designs were catchy &amp; looks great with the clean design.  Thanks for sharing.</description>
		<content:encoded><![CDATA[<p>Fantastic collection which make me stunned with the designs.  I really love this collection where the designs were catchy &amp; looks great with the clean design.  Thanks for sharing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cloudesign</title>
		<link>http://blog.soulwire.co.uk/art-design/portfolio/more-bandcamp-music-visualisations/comment-page-1#comment-8965</link>
		<dc:creator>cloudesign</dc:creator>
		<pubDate>Thu, 20 May 2010 17:25:34 +0000</pubDate>
		<guid isPermaLink="false">http://blog.soulwire.co.uk/?p=322#comment-8965</guid>
		<description>WOW. I&#039;ve recently been diving into audio visualizations (like 4 years late here...) and I&#039;m incredibly excited to mess with this stuff.

I recently finished a site for the Black Angels (theblackangels.com) and used some interactive kaledidescope elements, (look on links, contact page etc.) and now I&#039;ve got the opportunity to work with some other musicians, looking to really do some really wild implementations of audio driven viuals. I&#039;ve got your site bookmarked.</description>
		<content:encoded><![CDATA[<p>WOW. I&#8217;ve recently been diving into audio visualizations (like 4 years late here&#8230;) and I&#8217;m incredibly excited to mess with this stuff.</p>
<p>I recently finished a site for the Black Angels (theblackangels.com) and used some interactive kaledidescope elements, (look on links, contact page etc.) and now I&#8217;ve got the opportunity to work with some other musicians, looking to really do some really wild implementations of audio driven viuals. I&#8217;ve got your site bookmarked.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: araid</title>
		<link>http://blog.soulwire.co.uk/art-design/portfolio/more-bandcamp-music-visualisations/comment-page-1#comment-965</link>
		<dc:creator>araid</dc:creator>
		<pubDate>Mon, 30 Nov 2009 14:49:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.soulwire.co.uk/?p=322#comment-965</guid>
		<description>Hi, I&#039;m quite newbie in this area of AS3. I&#039;d like to ask for some advice about how to start building an audio reactive application.

I mean, what are the main classes where you extract sound data, such as tempo, etc? Is it enough with basic AS3 or do I need some other libraries?

Thanks!</description>
		<content:encoded><![CDATA[<p>Hi, I&#8217;m quite newbie in this area of AS3. I&#8217;d like to ask for some advice about how to start building an audio reactive application.</p>
<p>I mean, what are the main classes where you extract sound data, such as tempo, etc? Is it enough with basic AS3 or do I need some other libraries?</p>
<p>Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kobi6810</title>
		<link>http://blog.soulwire.co.uk/art-design/portfolio/more-bandcamp-music-visualisations/comment-page-1#comment-964</link>
		<dc:creator>kobi6810</dc:creator>
		<pubDate>Fri, 21 Aug 2009 13:49:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.soulwire.co.uk/?p=322#comment-964</guid>
		<description>Great job.

Where do you find all the small animated pattern you use ? personnal job or find somewhere on the net.

Thanks.</description>
		<content:encoded><![CDATA[<p>Great job.</p>
<p>Where do you find all the small animated pattern you use ? personnal job or find somewhere on the net.</p>
<p>Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bjorn</title>
		<link>http://blog.soulwire.co.uk/art-design/portfolio/more-bandcamp-music-visualisations/comment-page-1#comment-963</link>
		<dc:creator>Bjorn</dc:creator>
		<pubDate>Fri, 17 Apr 2009 10:03:45 +0000</pubDate>
		<guid isPermaLink="false">http://blog.soulwire.co.uk/?p=322#comment-963</guid>
		<description>Hey man! Stumbled upon your site a while back, before I came to London, and was very impressed. Today when I followed your link on LinkedIn I put two and two together! Man, I knew you were good, but not this good! Very cool stuff. Definitely gonna pull some source code and play around with!

Cheers
Bjorn</description>
		<content:encoded><![CDATA[<p>Hey man! Stumbled upon your site a while back, before I came to London, and was very impressed. Today when I followed your link on LinkedIn I put two and two together! Man, I knew you were good, but not this good! Very cool stuff. Definitely gonna pull some source code and play around with!</p>
<p>Cheers<br />
Bjorn</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christian</title>
		<link>http://blog.soulwire.co.uk/art-design/portfolio/more-bandcamp-music-visualisations/comment-page-1#comment-962</link>
		<dc:creator>Christian</dc:creator>
		<pubDate>Fri, 20 Mar 2009 20:24:27 +0000</pubDate>
		<guid isPermaLink="false">http://blog.soulwire.co.uk/?p=322#comment-962</guid>
		<description>Ok, test results...

Added the lines you wrote, with the obvious question: when and how to apply, so tried:
in the set front of PaperSprite
&lt;code&gt;&lt;pre lang=&quot;actionscript&quot;&gt;
...
_front = addChild( value );
var filterArray:Array = new Array();
filterArray.push(blur);
_front.filters = filterArray;
&lt;/pre&gt;&lt;/code&gt;
no go... (i mean, no blur applied, as expected)

added to update function in PaperSprite
&lt;code&gt;&lt;pre lang=&quot;actionscript&quot;&gt;
...
var filterArray:Array = new Array();
filterArray.push(blur);
_front.filters = _back.filters = filterArray;
&lt;/pre&gt;&lt;/code&gt;

this last turned out in the well known CTRL+ENTER = CRASH :)
tried applyFilter() method, but as _front and _back aren&#039;t BitmapData... well you get the point.

I mean, the idea is great, only one filter instance is continuously applied as the values of the filter are changing... just couldn&#039;t get it done... so far.
The values applied are from 3-4 to a maximum of 11 (i&#039;m multiplying by .04 and bitwise shifting as told). I went on google looking for some similar situation, but AS3 posts and tuts aren&#039;t as popular as i&#039;d like&#039;em to be. I&#039;ll keep trying.

I was writing this and your site went offline :( so now i have updates:
Went back to my original intention: not touching your class. So i created the blurFilter and added to each paperSprite (i add them with a for loop)
&lt;code&gt;&lt;pre lang=&quot;actionscript&quot;&gt;
paperSprites[i].filters = new Array(blur);
&lt;/pre&gt;&lt;/code&gt;
and in the ENTER_FRAME event i used:
&lt;code&gt;&lt;pre lang=&quot;actionscript&quot;&gt;
blur.blurX = blur.blurY = a; //the value from &quot;z&quot; position
e.target.filters = new Array(blur);
&lt;/pre&gt;&lt;/code&gt;
Ok, i know i&#039;m re-registering the blur effect on each frame. I couldn&#039;t find how to do as you told. This way had some strange behaviour: crashed on CS4 environment-player. Worked just fine on standalone player (17mb processing, 20mb swapping, 7 - 15% cpu usage)... so, i&#039;m quite happy with it. I would love to understand some more about class/object to assign the blur as you told me. I&#039;m happy also about not touching your class, i like how it works and &quot;extra&quot; effects as this one should go outside, IMHO.
So... if you feel like it, any advise would be, as usual, very appreciated. If not :) THANKS A LOT, i wouldn&#039;t have come this far without your guidance. Thanks, really.</description>
		<content:encoded><![CDATA[<p>Ok, test results&#8230;</p>
<p>Added the lines you wrote, with the obvious question: when and how to apply, so tried:<br />
in the set front of PaperSprite<br />
<code>
<pre lang="actionscript">
...
_front = addChild( value );
var filterArray:Array = new Array();
filterArray.push(blur);
_front.filters = filterArray;
</pre>
<p></code><br />
no go&#8230; (i mean, no blur applied, as expected)</p>
<p>added to update function in PaperSprite<br />
<code>
<pre lang="actionscript">
...
var filterArray:Array = new Array();
filterArray.push(blur);
_front.filters = _back.filters = filterArray;
</pre>
<p></code></p>
<p>this last turned out in the well known CTRL+ENTER = CRASH :)<br />
tried applyFilter() method, but as _front and _back aren&#8217;t BitmapData&#8230; well you get the point.</p>
<p>I mean, the idea is great, only one filter instance is continuously applied as the values of the filter are changing&#8230; just couldn&#8217;t get it done&#8230; so far.<br />
The values applied are from 3-4 to a maximum of 11 (i&#8217;m multiplying by .04 and bitwise shifting as told). I went on google looking for some similar situation, but AS3 posts and tuts aren&#8217;t as popular as i&#8217;d like&#8217;em to be. I&#8217;ll keep trying.</p>
<p>I was writing this and your site went offline :( so now i have updates:<br />
Went back to my original intention: not touching your class. So i created the blurFilter and added to each paperSprite (i add them with a for loop)<br />
<code>
<pre lang="actionscript">
paperSprites[i].filters = new Array(blur);
</pre>
<p></code><br />
and in the ENTER_FRAME event i used:<br />
<code>
<pre lang="actionscript">
blur.blurX = blur.blurY = a; //the value from "z" position
e.target.filters = new Array(blur);
</pre>
<p></code><br />
Ok, i know i&#8217;m re-registering the blur effect on each frame. I couldn&#8217;t find how to do as you told. This way had some strange behaviour: crashed on CS4 environment-player. Worked just fine on standalone player (17mb processing, 20mb swapping, 7 &#8211; 15% cpu usage)&#8230; so, i&#8217;m quite happy with it. I would love to understand some more about class/object to assign the blur as you told me. I&#8217;m happy also about not touching your class, i like how it works and &#8220;extra&#8221; effects as this one should go outside, IMHO.<br />
So&#8230; if you feel like it, any advise would be, as usual, very appreciated. If not :) THANKS A LOT, i wouldn&#8217;t have come this far without your guidance. Thanks, really.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Soulwire</title>
		<link>http://blog.soulwire.co.uk/art-design/portfolio/more-bandcamp-music-visualisations/comment-page-1#comment-961</link>
		<dc:creator>Soulwire</dc:creator>
		<pubDate>Thu, 19 Mar 2009 09:44:14 +0000</pubDate>
		<guid isPermaLink="false">http://blog.soulwire.co.uk/?p=322#comment-961</guid>
		<description>Hi Christian,

For a start, you&#039;re creating a new BlurFilter every update, which is a bad idea for memory usage, among other things. You should reuse just one.

Also, you can use a bitwise operator to do Math.floor() and its much faster.

So try this:

Register a public blur property on the PaperSprite:
&lt;code&gt;&lt;pre lang=&quot;actionscript&quot;&gt;
// In the PaperSprite class
public var blur:BlurFilter = new BlurFilter(0,0,2);
&lt;/pre&gt;&lt;/code&gt;

Target this from your enterFrame event:

&lt;code&gt;&lt;pre lang=&quot;actionscript&quot;&gt;
function rotationEvent(e:Event):void
{
	e.target.rotationY -= 0.5;
	e.target.rotationX -= 0.5;
	var p:Point = holder.localToGlobal(new Point(e.target.z,e.target.x));
	e.target.blur.blurX = e.target.blurY = p.x * 0.1 &lt;&lt; 0;
}
&lt;/pre&gt;&lt;/code&gt;

I&#039;ll just explain the statement &lt;strong&gt;p.x * 0.1 &lt;&lt; 0&lt;/strong&gt;. Multiplication is faster than division, so to divide by 2 its best to use myNumber *= 0.5 instead of myNumber /= 2.

&lt;&lt; 0 is performing a left bitwise shift and will return an integer, just like Math.floor() but loads faster.

If you&#039;re still having problems, trace out the value being assigned to the blur  - you probably want to limit it to a maximum, say 24, otherwise Flash will struggle to render the bitmap filter.

Hope that helps.</description>
		<content:encoded><![CDATA[<p>Hi Christian,</p>
<p>For a start, you&#8217;re creating a new BlurFilter every update, which is a bad idea for memory usage, among other things. You should reuse just one.</p>
<p>Also, you can use a bitwise operator to do Math.floor() and its much faster.</p>
<p>So try this:</p>
<p>Register a public blur property on the PaperSprite:<br />
<code>
<pre lang="actionscript">
// In the PaperSprite class
public var blur:BlurFilter = new BlurFilter(0,0,2);
</pre>
<p></code></p>
<p>Target this from your enterFrame event:</p>
<p><code>
<pre lang="actionscript">
function rotationEvent(e:Event):void
{
	e.target.rotationY -= 0.5;
	e.target.rotationX -= 0.5;
	var p:Point = holder.localToGlobal(new Point(e.target.z,e.target.x));
	e.target.blur.blurX = e.target.blurY = p.x * 0.1 < < 0;
}
</pre>
</pre>
<p></code></p>
<p>I'll just explain the statement <strong>p.x * 0.1 < < 0</strong>. Multiplication is faster than division, so to divide by 2 its best to use myNumber *= 0.5 instead of myNumber /= 2.</p>
<p><< 0 is performing a left bitwise shift and will return an integer, just like Math.floor() but loads faster.</p>
<p>If you're still having problems, trace out the value being assigned to the blur  - you probably want to limit it to a maximum, say 24, otherwise Flash will struggle to render the bitmap filter.</p>
<p>Hope that helps.</strong></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christian</title>
		<link>http://blog.soulwire.co.uk/art-design/portfolio/more-bandcamp-music-visualisations/comment-page-1#comment-960</link>
		<dc:creator>Christian</dc:creator>
		<pubDate>Thu, 19 Mar 2009 03:51:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.soulwire.co.uk/?p=322#comment-960</guid>
		<description>well... here it goes:

This is registered on ENTER_FRAME event for every PaperSprite (20 at the time, tried with 10 and 3... always the same), they float very gently and all.
&lt;code&gt;&lt;pre lang=&quot;actionscript&quot;&gt;
function rotationEvent(e:Event):void
{
	e.target.rotationY -= 0.5;
	e.target.rotationX -= 0.5;
	var p:Point = holder.localToGlobal(new Point(e.target.z,e.target.x));
	//holder is container, which will be spinned on stage&#039;s ENTER_FRAME
	e.target.filters = getBlurFilter(p.x); //X here is the representation of Z
}
&lt;/pre&gt;&lt;/code&gt;
Using localToGlobal taking Z intead of X, feed the next function returning the array.
If you&#039;re gonna try this, please save any file you&#039;re working on... i would hate to be responsible of you losing any ongoing project xD (the &quot;80&quot; division is just to get a small number, tried with Quality set to MEDIUM... same result)
&lt;code&gt;&lt;pre lang=&quot;actionscript&quot;&gt;
function getBlurFilter(p:int):Array
{
	var myFilter:BlurFilter = new BlurFilter(Math.floor(p / 80),Math.floor(p / 80),BitmapFilterQuality.HIGH);
	var filtersArray = new Array();
	filtersArray.push(myFilter);
	return filtersArray;
}
&lt;/pre&gt;&lt;/code&gt;
Not to mention i&#039;m not even setting the proper order (on Z value) for the sprites, which will add another step on ENTER_FRAME.

Any hint? (i&#039;m gonna feel so embarrassed when you solve this with 2 lines of code xD )</description>
		<content:encoded><![CDATA[<p>well&#8230; here it goes:</p>
<p>This is registered on ENTER_FRAME event for every PaperSprite (20 at the time, tried with 10 and 3&#8230; always the same), they float very gently and all.<br />
<code>
<pre lang="actionscript">
function rotationEvent(e:Event):void
{
	e.target.rotationY -= 0.5;
	e.target.rotationX -= 0.5;
	var p:Point = holder.localToGlobal(new Point(e.target.z,e.target.x));
	//holder is container, which will be spinned on stage's ENTER_FRAME
	e.target.filters = getBlurFilter(p.x); //X here is the representation of Z
}
</pre>
<p></code><br />
Using localToGlobal taking Z intead of X, feed the next function returning the array.<br />
If you&#8217;re gonna try this, please save any file you&#8217;re working on&#8230; i would hate to be responsible of you losing any ongoing project xD (the &#8220;80&#8243; division is just to get a small number, tried with Quality set to MEDIUM&#8230; same result)<br />
<code>
<pre lang="actionscript">
function getBlurFilter(p:int):Array
{
	var myFilter:BlurFilter = new BlurFilter(Math.floor(p / 80),Math.floor(p / 80),BitmapFilterQuality.HIGH);
	var filtersArray = new Array();
	filtersArray.push(myFilter);
	return filtersArray;
}
</pre>
<p></code><br />
Not to mention i&#8217;m not even setting the proper order (on Z value) for the sprites, which will add another step on ENTER_FRAME.</p>
<p>Any hint? (i&#8217;m gonna feel so embarrassed when you solve this with 2 lines of code xD )</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Soulwire</title>
		<link>http://blog.soulwire.co.uk/art-design/portfolio/more-bandcamp-music-visualisations/comment-page-1#comment-959</link>
		<dc:creator>Soulwire</dc:creator>
		<pubDate>Wed, 18 Mar 2009 23:48:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.soulwire.co.uk/?p=322#comment-959</guid>
		<description>Hey Christian,

Yeah, feel free to post some code. Maybe the problems you&#039;re having are because you&#039;re not limiting the blur to a maximum amount? Also using integers helps.

Glad you like the visualisations - I&#039;m pretty pleased with how they turned out. It&#039;s a great project to work on and the next batch should be good!</description>
		<content:encoded><![CDATA[<p>Hey Christian,</p>
<p>Yeah, feel free to post some code. Maybe the problems you&#8217;re having are because you&#8217;re not limiting the blur to a maximum amount? Also using integers helps.</p>
<p>Glad you like the visualisations &#8211; I&#8217;m pretty pleased with how they turned out. It&#8217;s a great project to work on and the next batch should be good!</p>
]]></content:encoded>
	</item>
</channel>
</rss>

