views:

1071

answers:

2

Hello all,

My problem is this:

I'm developing a reasonably small application (which needs to be able to grow in the future, but for now, limited functionality will suffice) which recieves audio (16bit mono @ 44.1kHz) and performs fourier transforms and filtering on the data. My experience with all the fields you can imagine this involves is limited, but i've been researching it a fair bit lately and have some understanding. My funding is limited, and I am unable to use any libraries which are under the GPL or similar licences (I need to be able to distruibute this app). For the signal processing I've settled on MathNet libraries, and this seems as though it can handle the bulk of the processing (and I'll write the necessary filters).

The real problem is finding the sound library to use - I was hoping for something in C#, and while it seemed directSound was the best option, I'm reluctant to use it given microsoft has pretty much abandoned it (the company I work for will be upgrading its gear in the near future; I just want to increase the app.'s lifespan as best I can). Do I use XAudio2? I need to be able to record the raw pcm data from a USB device and process it (+write it out to .wav files), and read the data straight from .wav files.

Any help is appreciated

A: 

It's never easy to predict if Microsoft is going to abandon the products they currently push. As for XAudio 2 vs DirectSound, I'd definitely go with XAudio 2. Not only because it is intended to replace DS, but also because the API seems more flexible.

However, you may take a look at how NAudio do their playback.

Cecil Has a Name
I think NAudio is the best option - given that the app. should be running on computers with vista or windows 7. (will use WASAPI). If i wanted to use XAudio2, I'd either have to make C# wrappers, or use SlimDX. tbh that looks like (in either case) a learning curve I'd rather avoid, especially given the relative shortage of tutorials.
Roderick