XNA Creators Club Online
Page 1 of 1 (1 items)
Sort Posts: Previous Next

How does XAudio2's SRC work?

Last post 12/04/2009 21:24 by Pdimples. 0 replies.
  • 12/04/2009 21:24

    How does XAudio2's SRC work?

    Just a warning, this is kinda off topic, as it doesn't relate to using XAudio2 directly, but how XAudio2 acts behind the scenes.

    I'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's what I've gleaned thus far.

    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 "unneccessary" samples.

    According to http://src.infinitewave.ca/help.html, most SRC algorithms use the polyphase filter approach.

    How was XAudio2'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?

    Thanks,
    Patrick Dugan
Page 1 of 1 (1 items) Previous Next