Java or C# library for signal analysis on the sound card

3.5k views Asked by At

Is there any Java or C# library for signal analysis using the sound card of a PC? I'm not interested in music mixing, rather in general purpose signal analysis - take a look at SIGVIEW - I'm interested in a Java or C# library that can do that. Another example is the scEEG project, striving to build a sound card electroencephalograph, by analyzing brain-wave signal captured by the sound card.

6

There are 6 answers

4
jarnbjo On BEST ANSWER

You can access audio inputs in Java using the JavaSound API (classes in javax.sound.sampled). The last time I used .NET for this, you had to use the managed DirectX API, which was not so easy to use, but newer .NET frameworks may have an easier API for this.

When it comes to signal processing, I guess you have to be a little bit more accurate about your requirements. It's a very broad field and it may or may not be available libraries to perform the analysis or processing you need, but no one can guess what you're up to.

1
George On

It depends on what kind of signal processing you'd like, there are sound libraries out there like irrklang (http://www.ambiera.com/irrklang/features.html) that will do plenty of manipulation etc, and there are also ones that will just change basic things like tempo/pitch (http://www.surina.net/soundtouch/).

I've personally used BASS (http://www.un4seen.com/) before and it's awesome however it does have a license fee for non-commercial use, so you might want to look around a bit more if you're using it for a commercial project. It makes use of the DirectSound API which uses the hardware, so it's basically an abstraction API.

0
mvaz On

I'm only familiar with the java stuff. Sadly, I don't know of any nice, free, easy to use signal processing library. I've always been using a bit of this and that.

Capture:

  • JavaSound API (http: // java.sun.com/docs/books/tutorial/sound/capturing.html) to capture the sound from the soundcard.

  • Sphinx4 (http: // cmusphinx.sourceforge.net/sphinx4/) does implement the capture and much more... it is, however, a big project with a complex structure

DSP:

  • http: // www.webkitchen.com/brainathlon is used for EEG analysis and has implemented some signal processing routines (filters)

  • http: // www.falstad.com/mathphysics.html has lots of applet examples, namely with signal processing. the code is not always very understandable, but it has helped me in the past

Hope it helps

0
Dewb On

MATLAB has some powerful signal analysis tools that work well on audio. Not sure if you can feed it real-time streams out of the box, but it should be straightforward to hack. MATLAB is best known as an interactive app, but there's also an embedded version.

2
rama-jka toti On

Dependening on what you're looking to do Exocortex.DSP went into Math.NET attempt and so on.. Worth investigating if it is sufficient or performing well.

Alternatively, use what pros use and interop into it, Intel DSP and Math kernel packages have some work done and plenty of decent attempts out there to easily interface with it.. And to add, neither Java or C# does a good job on primitive arrays, and their implementation is usually outperformed by an order of magnitude for any decent size data set.

[piece to against-interop managed world ]

1
Rad On

Check out NAudio. Looks pretty functional in terms of extracting data from audio