<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.xna.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Audio/XACT</title><link>http://forums.xna.com/forums/33.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 0.0)</generator><item><title>How does XAudio2's SRC work?</title><link>http://forums.xna.com/forums/thread/163140.aspx</link><pubDate>Sun, 12 Apr 2009 21:24:38 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:163140</guid><dc:creator>Pdimples</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/163140.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=33&amp;PostID=163140</wfw:commentRss><description>Just a warning, this is kinda off topic, as it doesn&amp;#39;t relate to using XAudio2 directly, but how XAudio2 acts behind the scenes.&lt;br /&gt;
&lt;br /&gt;
I&amp;#39;m in the process of learning how Sample Rate Conversion actually works, and am interested in rolling my own SRC library, just for the experience. Here&amp;#39;s what I&amp;#39;ve gleaned thus far.&lt;br /&gt;
&lt;br /&gt;
There are several ways of converting sample rates. The simplest is linear interpolation, which degrades the signal quite a bit. Another way involves Polyphase Filters, which deconstruct a multirate filter into several polynomials applied to each tap in the incoming signal. Still another way is to upsample and then downsample a signal by two integers (repeatedly if neccessary) to change sample rates. Additionally, before downsampling, a lowpass filter must be applied to prevent aliasing. Upsampling involves inserting zeros between each sample. Downsampling involves removing &amp;quot;unneccessary&amp;quot; samples. &lt;br /&gt;
&lt;br /&gt;
According to &lt;a href="http://src.infinitewave.ca/help.html"&gt;http://src.infinitewave.ca/help.html&lt;/a&gt;, most SRC algorithms use the polyphase filter approach.&lt;br /&gt;
&lt;br /&gt;
How was XAudio2&amp;#39;s SRC work? Does it use any of these methods (in combination perhaps)? From what I understand, XAudio2 is purely software, so how optimized are these routines (assembly)? Are there any books you recommend for learning more about SRC?&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Patrick Dugan&lt;br /&gt;</description></item></channel></rss>