<?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"
	>
<channel>
	<title>Comments on: Simple 3-band EQ with Flash Player 10</title>
	<atom:link href="http://www.blixtsystems.com/2008/05/simple-3-band-eq-with-flash-player-10/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blixtsystems.com/2008/05/simple-3-band-eq-with-flash-player-10/</link>
	<description>BlixtSystems Flash Actionscript development</description>
	<pubDate>Wed, 10 Mar 2010 20:58:05 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Weekly Digest for February 23rd</title>
		<link>http://www.blixtsystems.com/2008/05/simple-3-band-eq-with-flash-player-10/#comment-35190</link>
		<dc:creator>Weekly Digest for February 23rd</dc:creator>
		<pubDate>Tue, 23 Feb 2010 12:26:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.blixtsystems.com/?p=41#comment-35190</guid>
		<description>[...] 3-band EQ with Flash Player 10 (Astro) &#124; blixtsystems.com [...]</description>
		<content:encoded><![CDATA[<p>[...] 3-band EQ with Flash Player 10 (Astro) | blixtsystems.com [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: andre</title>
		<link>http://www.blixtsystems.com/2008/05/simple-3-band-eq-with-flash-player-10/#comment-34474</link>
		<dc:creator>andre</dc:creator>
		<pubDate>Mon, 25 Jan 2010 12:14:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.blixtsystems.com/?p=41#comment-34474</guid>
		<description>hi, 

great work. especially by using the extract function.
but i ve some problem with the SamplesCallbackEvent (is not a compile-time constant). Can someone tell me how can u fix it so that i can run it?</description>
		<content:encoded><![CDATA[<p>hi, </p>
<p>great work. especially by using the extract function.<br />
but i ve some problem with the SamplesCallbackEvent (is not a compile-time constant). Can someone tell me how can u fix it so that i can run it?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Lamping</title>
		<link>http://www.blixtsystems.com/2008/05/simple-3-band-eq-with-flash-player-10/#comment-29718</link>
		<dc:creator>Kevin Lamping</dc:creator>
		<pubDate>Sat, 29 Aug 2009 19:21:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.blixtsystems.com/?p=41#comment-29718</guid>
		<description>Using your original script, I modified your script to run in Flex using the latest version of Flash 10. I also updated it to allow for 5-bands instead of only three. You can read &lt;a href="http://ciboloweb.com/website-resources/website-design-articles/2009/08/flex-soundgraphic-equalizer-5-band/" rel="nofollow"&gt;my post about it&lt;/a&gt; for more information.

Thanks so much for putting this out there. I looked for weeks for an answer on this, but had such a hard time with the math of it all. It's been years since college and my math skills just aren't what they used to be.</description>
		<content:encoded><![CDATA[<p>Using your original script, I modified your script to run in Flex using the latest version of Flash 10. I also updated it to allow for 5-bands instead of only three. You can read <a href="http://ciboloweb.com/website-resources/website-design-articles/2009/08/flex-soundgraphic-equalizer-5-band/" onclick="javascript:pageTracker._trackPageview('/outbound/comment/http://ciboloweb.com/website-resources/website-design-articles/2009/08/flex-soundgraphic-equalizer-5-band/');" rel="nofollow">my post about it</a> for more information.</p>
<p>Thanks so much for putting this out there. I looked for weeks for an answer on this, but had such a hard time with the math of it all. It&#8217;s been years since college and my math skills just aren&#8217;t what they used to be.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Flex Sound/Graphic Equalizer (5-band) &#124; Cibolo Media Services</title>
		<link>http://www.blixtsystems.com/2008/05/simple-3-band-eq-with-flash-player-10/#comment-29716</link>
		<dc:creator>Flex Sound/Graphic Equalizer (5-band) &#124; Cibolo Media Services</dc:creator>
		<pubDate>Sat, 29 Aug 2009 19:09:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.blixtsystems.com/?p=41#comment-29716</guid>
		<description>[...] along my path I ran across a tutorial about a 3-band equalizer in flash using the sound.extract function of AS3/Flash [...]</description>
		<content:encoded><![CDATA[<p>[...] along my path I ran across a tutorial about a 3-band equalizer in flash using the sound.extract function of AS3/Flash [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: VHAIN</title>
		<link>http://www.blixtsystems.com/2008/05/simple-3-band-eq-with-flash-player-10/#comment-23833</link>
		<dc:creator>VHAIN</dc:creator>
		<pubDate>Tue, 19 May 2009 08:38:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.blixtsystems.com/?p=41#comment-23833</guid>
		<description>How can I make multi-band equalizer (like 5 band or 10 band or so on)  ... ? Somebody Please help me ..!!!</description>
		<content:encoded><![CDATA[<p>How can I make multi-band equalizer (like 5 band or 10 band or so on)  &#8230; ? Somebody Please help me ..!!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adampasz</title>
		<link>http://www.blixtsystems.com/2008/05/simple-3-band-eq-with-flash-player-10/#comment-22796</link>
		<dc:creator>adampasz</dc:creator>
		<pubDate>Sun, 26 Apr 2009 00:45:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.blixtsystems.com/?p=41#comment-22796</guid>
		<description>VerifyError: Error #1014: Class flash.events::SamplesCallbackEvent could not be found.

	at global$init()


:(</description>
		<content:encoded><![CDATA[<p>VerifyError: Error #1014: Class flash.events::SamplesCallbackEvent could not be found.</p>
<p>	at global$init()</p>
<p> <img src='http://www.blixtsystems.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tweaking the samplesCallbackEvent loop &#124; blixtsystems.com</title>
		<link>http://www.blixtsystems.com/2008/05/simple-3-band-eq-with-flash-player-10/#comment-211</link>
		<dc:creator>Tweaking the samplesCallbackEvent loop &#124; blixtsystems.com</dc:creator>
		<pubDate>Fri, 30 May 2008 00:19:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.blixtsystems.com/?p=41#comment-211</guid>
		<description>[...] One would think then that the conclusion is that the best approach when processing audio if one like to avoid placing the code inside the samplesCallbackEvent loop seems to be calling the processing code once and then iterate over the size of the buffer in the class for the effect. This is exactly what I was suggested by Spender when I posted a 3-band EQ example. [...]</description>
		<content:encoded><![CDATA[<p>[...] One would think then that the conclusion is that the best approach when processing audio if one like to avoid placing the code inside the samplesCallbackEvent loop seems to be calling the processing code once and then iterate over the size of the buffer in the class for the effect. This is exactly what I was suggested by Spender when I posted a 3-band EQ example. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: {Code}Trip &#187; Astro - FileReference + Sound API</title>
		<link>http://www.blixtsystems.com/2008/05/simple-3-band-eq-with-flash-player-10/#comment-98</link>
		<dc:creator>{Code}Trip &#187; Astro - FileReference + Sound API</dc:creator>
		<pubDate>Sat, 24 May 2008 03:47:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.blixtsystems.com/?p=41#comment-98</guid>
		<description>[...] Simple 3-Band EQ with Flash Player 10, por Leo Bergman [...]</description>
		<content:encoded><![CDATA[<p>[...] Simple 3-Band EQ with Flash Player 10, por Leo Bergman [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: spender</title>
		<link>http://www.blixtsystems.com/2008/05/simple-3-band-eq-with-flash-player-10/#comment-69</link>
		<dc:creator>spender</dc:creator>
		<pubDate>Thu, 22 May 2008 21:21:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.blixtsystems.com/?p=41#comment-69</guid>
		<description>ah well. maybe the improvement was more pronounced with me because of the way I am chaining several fx together... method calls really slowed things down.</description>
		<content:encoded><![CDATA[<p>ah well. maybe the improvement was more pronounced with me because of the way I am chaining several fx together&#8230; method calls really slowed things down.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leo</title>
		<link>http://www.blixtsystems.com/2008/05/simple-3-band-eq-with-flash-player-10/#comment-68</link>
		<dc:creator>Leo</dc:creator>
		<pubDate>Thu, 22 May 2008 12:39:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.blixtsystems.com/?p=41#comment-68</guid>
		<description>Ok, I did some testing and I don't manage to improve the performance by removing the function calls inside the loop for filling the buffer.
In fact it's even marginally slower.

Basically What I did was this:
&lt;pre language="as"&gt;
while (i &lt; BUFFER_SIZE) {
	_sampleBufferL[i] = _samples.readFloat();
	_sampleBufferR[i] = _samples.readFloat();
	i  ;
}
			
_eqL.compute(_sampleBufferL);
_eqR.compute(_sampleBufferR);
			
i = 0;
while (i &lt; BUFFER_SIZE) {
	l = _sampleBufferL[i];
	r = _sampleBufferR[i];
	_out_snd.samplesCallbackData.writeFloat(l);
	_out_snd.samplesCallbackData.writeFloat(r);
	i  ;
}&lt;/pre&gt;

In the EQ class I then loop through the _sampleBuffer and write over the sample with the modified value.

I did use an extra loop to split up the values from the _samples into separate vectors for the left and right channels, but I also tested by processing the two channels as one so I did not need that loop, and still the method of calling the EQ.compute function for each iteration is still somewhat faster.

I have updated the source in the the original link to process the channels independently, which made an audible improvement, as well as having it display the average time it takes for each samplesCallbackEvent to process.

If you are interested in the modified source I used for testing the approach suggested by spender (as I understood it at least) you can &lt;a href="http://www.blixtsystems.com/dl/EQExample2.zip" rel="nofollow"&gt;grab it here&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p>Ok, I did some testing and I don&#8217;t manage to improve the performance by removing the function calls inside the loop for filling the buffer.<br />
In fact it&#8217;s even marginally slower.</p>
<p>Basically What I did was this:</p>
<pre language="as">
while (i < BUFFER_SIZE) {
	_sampleBufferL[i] = _samples.readFloat();
	_sampleBufferR[i] = _samples.readFloat();
	i  ;
}

_eqL.compute(_sampleBufferL);
_eqR.compute(_sampleBufferR);

i = 0;
while (i < BUFFER_SIZE) {
	l = _sampleBufferL[i];
	r = _sampleBufferR[i];
	_out_snd.samplesCallbackData.writeFloat(l);
	_out_snd.samplesCallbackData.writeFloat(r);
	i  ;
}</pre>
<p>In the EQ class I then loop through the _sampleBuffer and write over the sample with the modified value.</p>
<p>I did use an extra loop to split up the values from the _samples into separate vectors for the left and right channels, but I also tested by processing the two channels as one so I did not need that loop, and still the method of calling the EQ.compute function for each iteration is still somewhat faster.</p>
<p>I have updated the source in the the original link to process the channels independently, which made an audible improvement, as well as having it display the average time it takes for each samplesCallbackEvent to process.</p>
<p>If you are interested in the modified source I used for testing the approach suggested by spender (as I understood it at least) you can <a href="http://www.blixtsystems.com/dl/EQExample2.zip" onclick="javascript:pageTracker._trackPageview('/downloads/dl/EQExample2.zip');" rel="nofollow">grab it here</a>.</pre>
]]></content:encoded>
	</item>
</channel>
</rss>
