<?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 for iq¹²</title>
	<atom:link href="http://iq12.com/blog/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://iq12.com/blog</link>
	<description>The drooling company</description>
	<lastBuildDate>Tue, 08 Dec 2009 20:45:03 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Come &amp; play with my hairy balls &#8230; by jay</title>
		<link>http://iq12.com/blog/2009/07/10/come-play-with-my-hairy-balls/comment-page-1/#comment-200</link>
		<dc:creator>jay</dc:creator>
		<pubDate>Tue, 08 Dec 2009 20:45:03 +0000</pubDate>
		<guid isPermaLink="false">http://iq12.com/blog/?p=320#comment-200</guid>
		<description>i&#039;ll play with your hairy balls if you play with mine!!!!!!!!!!!</description>
		<content:encoded><![CDATA[<p>i&#8217;ll play with your hairy balls if you play with mine!!!!!!!!!!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Employee of the Month by seb</title>
		<link>http://iq12.com/blog/2009/11/19/employee_of_the_month/comment-page-1/#comment-198</link>
		<dc:creator>seb</dc:creator>
		<pubDate>Mon, 30 Nov 2009 14:32:41 +0000</pubDate>
		<guid isPermaLink="false">http://iq12.com/blog/?p=384#comment-198</guid>
		<description>ooouuaaah trop geek ;)</description>
		<content:encoded><![CDATA[<p>ooouuaaah trop geek <img src='http://iq12.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Clip interactif, suite&#8230; by Quand l&#8217;émergence se généralise&#8230; &#124; iq¹²</title>
		<link>http://iq12.com/blog/2008/12/06/clip-interactif-suite/comment-page-1/#comment-169</link>
		<dc:creator>Quand l&#8217;émergence se généralise&#8230; &#124; iq¹²</dc:creator>
		<pubDate>Fri, 25 Sep 2009 11:37:38 +0000</pubDate>
		<guid isPermaLink="false">http://iq12.com/blog/?p=133#comment-169</guid>
		<description>[...] que depuis mon billet “De l’émergence du clip interactif”, et sa suite sommaire, l&#8217;idée fait son chemin et on voit régulièrement réapparaitre des exemples du genre, [...]</description>
		<content:encoded><![CDATA[<p>[...] que depuis mon billet “De l’émergence du clip interactif”, et sa suite sommaire, l&#8217;idée fait son chemin et on voit régulièrement réapparaitre des exemples du genre, [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on &#8220;De l&#8217;émergence du clip interactif&#8221; by Quand l&#8217;émergence se généralise&#8230; &#124; iq¹²</title>
		<link>http://iq12.com/blog/2008/09/17/de-lemergence-du-clip-interactif/comment-page-1/#comment-168</link>
		<dc:creator>Quand l&#8217;émergence se généralise&#8230; &#124; iq¹²</dc:creator>
		<pubDate>Fri, 25 Sep 2009 11:35:22 +0000</pubDate>
		<guid isPermaLink="false">http://iq12.com/blog/?p=42#comment-168</guid>
		<description>[...] que depuis mon billet “De l’émergence du clip interactif”, et sa suite sommaire, l&#8217;idée fait son chemin et on voit régulièrement réapparaitre [...]</description>
		<content:encoded><![CDATA[<p>[...] que depuis mon billet “De l’émergence du clip interactif”, et sa suite sommaire, l&#8217;idée fait son chemin et on voit régulièrement réapparaitre [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Petite introduction aux plaisirs de la Bave&#8230; by Tepat</title>
		<link>http://iq12.com/blog/2009/07/06/petite-introduction-aux-plaisirs-de-la-bave/comment-page-1/#comment-144</link>
		<dc:creator>Tepat</dc:creator>
		<pubDate>Mon, 14 Sep 2009 12:05:30 +0000</pubDate>
		<guid isPermaLink="false">http://iq12.com/blog/?p=283#comment-144</guid>
		<description>oué allez rendez public votre bave !</description>
		<content:encoded><![CDATA[<p>oué allez rendez public votre bave !</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Real-time pitch shifting (without change of duration) by Umit</title>
		<link>http://iq12.com/blog/2009/08/25/real-time-pitch-shifting/comment-page-1/#comment-140</link>
		<dc:creator>Umit</dc:creator>
		<pubDate>Sat, 05 Sep 2009 11:44:38 +0000</pubDate>
		<guid isPermaLink="false">http://iq12.com/blog/?p=356#comment-140</guid>
		<description>Nice work. The volume gradually decreases and increases back, how can we fix this?</description>
		<content:encoded><![CDATA[<p>Nice work. The volume gradually decreases and increases back, how can we fix this?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Real-time pitch shifting (without change of duration) by fu</title>
		<link>http://iq12.com/blog/2009/08/25/real-time-pitch-shifting/comment-page-1/#comment-136</link>
		<dc:creator>fu</dc:creator>
		<pubDate>Tue, 25 Aug 2009 20:32:07 +0000</pubDate>
		<guid isPermaLink="false">http://iq12.com/blog/?p=356#comment-136</guid>
		<description>I&#039;ve looked into PB and as far as I know there&#039;s no way to get this working because it would require too much loop unrolling. Correct me if I&#039;m wrong.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve looked into PB and as far as I know there&#8217;s no way to get this working because it would require too much loop unrolling. Correct me if I&#8217;m wrong.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on iq¹² creative session #1 by fu</title>
		<link>http://iq12.com/blog/2009/07/02/iq%c2%b9%c2%b2-creative-session-1/comment-page-1/#comment-135</link>
		<dc:creator>fu</dc:creator>
		<pubDate>Tue, 25 Aug 2009 20:25:17 +0000</pubDate>
		<guid isPermaLink="false">http://iq12.com/blog/?p=256#comment-135</guid>
		<description>yes it&#039;s realtime. The algorithm is quite easy if you understand &lt;a href=&quot;http://en.wikipedia.org/wiki/UV_mapping&quot; rel=&quot;nofollow&quot;&gt;UV mapping&lt;/a&gt;

The code is too ugly to post but here&#039;s the important part:
&lt;code&gt;
// this is the indices of the vertices used to draw the triangles: see drawTriangles documentation
private var indices:Vector.&lt;int&gt; = new Vector.&lt;int&gt;([7, 5, 17, 5, 4, 19, 6, 7, 20, 4, 6, 20, 4, 20, 21, 20, 7, 22, 0, 13, 23, 13, 14, 23, 14, 15, 24, 23, 14, 24, 15, 1, 24, 19, 3, 25, 18, 5, 25, 5, 19, 25, 2, 17, 26, 17, 5, 26, 5, 18, 26, 18, 25, 26, 17, 2, 27, 1, 15, 29, 16, 28, 29, 3, 19, 30, 11, 12, 31, 13, 0, 32, 31, 12, 32, 11, 21, 33, 21, 10, 33, 11, 33, 34, 33, 10, 35, 34, 33, 35, 12, 11, 36, 32, 12, 36, 9, 22, 37, 22, 8, 37, 37, 8, 38, 9, 37, 38, 9, 38, 39, 15, 14, 39, 8, 16, 40, 16, 29, 40, 29, 15, 40, 14, 13, 41, 35, 14, 41, 34, 35, 41, 13, 32, 41, 32, 36, 41, 11, 34, 41, 36, 11, 41, 15, 39, 42, 39, 38, 42, 38, 8, 42, 8, 40, 42, 40, 15, 42, 16, 8, 43, 8, 22, 43, 7, 17, 43, 17, 27, 43, 28, 16, 43, 22, 7, 43, 27, 28, 43, 19, 4, 44, 30, 19, 44, 21, 11, 44, 11, 31, 44, 4, 21, 44, 31, 30, 44, 10, 21, 45, 21, 20, 45, 22, 9, 45, 20, 22, 45, 9, 39, 45, 35, 10, 45, 14, 35, 45, 39, 14, 45, 4, 5, 46, 6, 4, 46, 5, 7, 46, 7, 6, 46]);
	
private function render(src1:Face, src2:Face, morphRatio:Number)
{
	var inverseMorphRatio:Number = 1 - morphRatio;
	
	// Face.vertices contains triangles summits coordinates (vertices) in the bitmapData space: use them to compute the target coordinates
	// Face.uvtData contains the same coordinates within a [0.0,1.0] x,y space: use them as source coordinates
	
	// the target vertices are a mix between the two faces
	var vertices:Vector.&lt;Number&gt; = new Vector.&lt;Number&gt;;
	for (var i:int = 0; i &lt; src1.vertices.length; i++)
		vertices.push ( src1.vertices[i] * inverseMorphRatio + src2.vertices[i] * morphRatio);
		
	// draw the first face with 1-alpha
	r1.alpha = inverseMorphRatio;
	r1.graphics.clear();
	r1.graphics.beginBitmapFill(src1.bmd);
	r1.graphics.drawTriangles(vertices, indices , src1.uvtData);
	
	// draw the second face
	r2.alpha = morphRatio;
	r2.graphics.clear();
	r2.graphics.beginBitmapFill(src2.bmd);
	r2.graphics.drawTriangles(vertices, indices , src2.uvtData);
}
&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>yes it&#8217;s realtime. The algorithm is quite easy if you understand <a href="http://en.wikipedia.org/wiki/UV_mapping" rel="nofollow">UV mapping</a></p>
<p>The code is too ugly to post but here&#8217;s the important part:<br />
<code><br />
// this is the indices of the vertices used to draw the triangles: see drawTriangles documentation<br />
private var indices:Vector.<int> = new Vector.</int><int>([7, 5, 17, 5, 4, 19, 6, 7, 20, 4, 6, 20, 4, 20, 21, 20, 7, 22, 0, 13, 23, 13, 14, 23, 14, 15, 24, 23, 14, 24, 15, 1, 24, 19, 3, 25, 18, 5, 25, 5, 19, 25, 2, 17, 26, 17, 5, 26, 5, 18, 26, 18, 25, 26, 17, 2, 27, 1, 15, 29, 16, 28, 29, 3, 19, 30, 11, 12, 31, 13, 0, 32, 31, 12, 32, 11, 21, 33, 21, 10, 33, 11, 33, 34, 33, 10, 35, 34, 33, 35, 12, 11, 36, 32, 12, 36, 9, 22, 37, 22, 8, 37, 37, 8, 38, 9, 37, 38, 9, 38, 39, 15, 14, 39, 8, 16, 40, 16, 29, 40, 29, 15, 40, 14, 13, 41, 35, 14, 41, 34, 35, 41, 13, 32, 41, 32, 36, 41, 11, 34, 41, 36, 11, 41, 15, 39, 42, 39, 38, 42, 38, 8, 42, 8, 40, 42, 40, 15, 42, 16, 8, 43, 8, 22, 43, 7, 17, 43, 17, 27, 43, 28, 16, 43, 22, 7, 43, 27, 28, 43, 19, 4, 44, 30, 19, 44, 21, 11, 44, 11, 31, 44, 4, 21, 44, 31, 30, 44, 10, 21, 45, 21, 20, 45, 22, 9, 45, 20, 22, 45, 9, 39, 45, 35, 10, 45, 14, 35, 45, 39, 14, 45, 4, 5, 46, 6, 4, 46, 5, 7, 46, 7, 6, 46]);</p>
<p>private function render(src1:Face, src2:Face, morphRatio:Number)<br />
{<br />
	var inverseMorphRatio:Number = 1 - morphRatio;</p>
<p>	// Face.vertices contains triangles summits coordinates (vertices) in the bitmapData space: use them to compute the target coordinates<br />
	// Face.uvtData contains the same coordinates within a [0.0,1.0] x,y space: use them as source coordinates</p>
<p>	// the target vertices are a mix between the two faces<br />
	var vertices:Vector.<number> = new Vector.</number><number>;<br />
	for (var i:int = 0; i < src1.vertices.length; i++)<br />
		vertices.push ( src1.vertices[i] * inverseMorphRatio + src2.vertices[i] * morphRatio);</p>
<p>	// draw the first face with 1-alpha<br />
	r1.alpha = inverseMorphRatio;<br />
	r1.graphics.clear();<br />
	r1.graphics.beginBitmapFill(src1.bmd);<br />
	r1.graphics.drawTriangles(vertices, indices , src1.uvtData);</p>
<p>	// draw the second face<br />
	r2.alpha = morphRatio;<br />
	r2.graphics.clear();<br />
	r2.graphics.beginBitmapFill(src2.bmd);<br />
	r2.graphics.drawTriangles(vertices, indices , src2.uvtData);<br />
}<br />
</code></number></int></code></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on iq¹² creative session #1 by Og2t</title>
		<link>http://iq12.com/blog/2009/07/02/iq%c2%b9%c2%b2-creative-session-1/comment-page-1/#comment-134</link>
		<dc:creator>Og2t</dc:creator>
		<pubDate>Tue, 25 Aug 2009 19:15:21 +0000</pubDate>
		<guid isPermaLink="false">http://iq12.com/blog/?p=256#comment-134</guid>
		<description>RIP Michael! Is the morphing realtime? What algorithm are you using? It&#039;s very fast!</description>
		<content:encoded><![CDATA[<p>RIP Michael! Is the morphing realtime? What algorithm are you using? It&#8217;s very fast!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Real-time pitch shifting (without change of duration) by Og2t</title>
		<link>http://iq12.com/blog/2009/08/25/real-time-pitch-shifting/comment-page-1/#comment-133</link>
		<dc:creator>Og2t</dc:creator>
		<pubDate>Tue, 25 Aug 2009 19:01:16 +0000</pubDate>
		<guid isPermaLink="false">http://iq12.com/blog/?p=356#comment-133</guid>
		<description>Very nice, I wish Flash had support for microphone recording already. I wonder how fast it would run in PixelBender – I might try that, the C++ code seems to be portable and it might be even easier to port it to PB than AS3 ;-)</description>
		<content:encoded><![CDATA[<p>Very nice, I wish Flash had support for microphone recording already. I wonder how fast it would run in PixelBender – I might try that, the C++ code seems to be portable and it might be even easier to port it to PB than AS3 <img src='http://iq12.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
